OmegaChartスレ ver.10 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
会則
@OmegaChartはサポートを終了しています。
ご自身でコンパイルできない方は、他のソフトを利用して下さい。
A連投で初歩的な質問をする人やクレクレ君は、立ち入り禁止。
●公式サイト
OmegaChart公式HP(閉鎖)
ttp://www.omegachart.org/
OmegaChart公式HPのアーカイブ(消滅)
ttp://web.archive.org/web/20131010105520/http://www.omegachart.org/
メーリングリスト(2014年5月28日で終了)
ttp://groups.yahoo.co.jp/group/omegachart/
作者Blog(サポート終了)
ttp://okajima.air-nifty.com/
●有志による維持活動
panacoran氏のサイト
ttp://sourceforge.jp/users/panacoran/pf/OmegaChart/wiki/FrontPage
●前スレ
OmegaChartスレ ver.9
http://potato.2ch.net/test/read.cgi/software/1423093067.html >>653
SBIから情報取れなくなるので、上場廃止された銘柄の再作成は無理でした。プログラムでゼロ埋めされた分を削除するしかないですね。
どうしてこういう風になるのかというと、上場廃止銘柄とその日に出来高がなかった銘柄は、ヤフーファイナンス的に反応が同じでした。これは区別がつかないですね。 そうですね、テクニカルチャートの観点上は値幅分析と日柄分析ですから、
適切な0値埋めは大事で。 上場廃止や出来高少ない銘柄の、テクニカルもくそもないでしょ。 問題点整理。
・上場前IPOをindex.txtに登録するとゼロ埋めレコードが作られる
・上場廃止された銘柄をindex.txtにOBS設定せずに放置するとゼロ埋めレコードが作られ続ける
対処方法
・IPOに関しては、>>620
・OBSに関しては、index.txtにOBS設定するしかない
・ゼロ埋めレコード不要な人は、該当記述をコメントアウトすればよいと思う 過去の暴落パターンを検証するという特殊な場面に限り、廃止銘柄のDATAはとても貴重。
廃止銘柄DATAの保存は必須ながら、廃止銘柄なので不要な0値追記されても常用範囲外ではありますね。
ですが、私のプレイスタイルでは廃止銘柄DATAは利用しており重要です。
出来高の少ない銘柄というのは、その定量の解釈などからしてそもそも各自の問題でしかないです。
薄商い銘柄だろうとDATAの正確性を無視できるはずもありません。
そもそも商いが薄いというのは各銘柄の長い歴史のほんの一部の期間の状態でしかないのです。
テクニカル検証で、価格分析のみで試行するロジックやストラテジ検証などでの利用では、
むしろ出来高DATAは無視する傾向にあるくらいですね。
とにかく入手可能な全銘柄DATAの一貫した正確性必須。 自分も全銘柄のデータが取得できているかどうかが大事で、0埋めでもオメガチャートでデータを扱う場合であればあまり関係ないのかな、とは思う Options.confでコントロールする手もある。デフォルトがFalseなので、ゼロ埋め不要だよという人はTrueに変えてもらう。 Investing.comから情報収集できなくなってた。直に見に行くとログインを促されるメッセージが追加されてる。 >>664
プログラムをタスクスケジューラで止めてただけだった。引退します。 相場が立った日に出来高が無いのはそれ自体が重要で不可欠な情報。
相場が立ってない休市日は明確にして然るべき。
特定企業に関する報道内容の確認などを理由とした取引所売買停止措置の例。
連日大騒ぎの銘柄が、ある日だけぽっかり出来高の無い日が示現します。
2017年も数件の実例が有ったかと記憶してます。
これを的確に0値埋めで明確にチャート描画することは相場履歴としても重要不可欠です。
Yahooモード現状では複数日前から過去DATAをダウンロードすれば誤った0値埋め頻発。
OmegaChartデフォとして、その一部の機能であるYahooモード固有の必須改善点です。
とはいえ。
チャート攻略としては、ティックの薄い時間枠ではテクニカルラインが潰れるので時間枠縮小するのが普通ですから、
売買の無い歯抜け日足チャートならば週足チャートなどへ短縮して使いますけどね。 >>663
あと、コンパイルシンボルでコントロールもできる。
手順1:yahoo.csの最後のほうを次のように変更。
#if UNZEROFILL
#else
foreach (var date in dates)
{
if(!dict.ContainKey(date))
dict[date] = new NewDailyDate();
}
#endif
手順2:
Visula Studioのプロジェクト-プロパティ-ビルドを開き、条件付きコンパイルシンボルに「UNZEROFILL」の文字列を記入(文字は何でもいい。「」は不要)
記入後、コンパイルして実行すると今までゼロ埋めしてた部分がスキップされる。
戻したかったら、コンパイルシンボルから「UNZEROFILL」の文字記述を削除する。 チャート表示日固定機能っていうのはあったら便利そう デフォルトの価格区切り線を消して、任意の価格で引き直すことはできないんでしょうか?
100円、300円、1000円、2500円・・・とか。 例えば、バブル崩壊前後の複数銘柄の値動きをみたいとするとき、1990年までチャートをいちいち戻すのがめんどくさい。
週足に切り替えたりしても、また最新日からやり直し。 価格区切り線は、ChartDrawing.cs DrawScaleLinesの中で引かれてて、ここを書き直せば引けると思う。
その100円、300円・・・・を 配列に入れてグルグル回して、その区切り価格が_lowPriceよりも大きかったら描画とする。 >>680
上半分はコメントアウトする既存行で、foreach文の中の数字はテキトーに変更。
/*
while(price >= _lowPrice) {
y = _priceTrans.TransValue((double)price);
Win32.MoveToEx(hdc, 0, (int)y, out _dummyPoint);
Win32.LineTo(hdc, right, (int)y);
ChartUtil.DrawText(hdc, right, (int)y-5, price.ToString());
price -= _priceScaleStep;
}
*/
foreach(int k in new int[]{ 100,300,100,2500,5000,10000,20000,30000,50000,100000})
{
if (k < _lowPrice) continue;
if (k > _highPrice) continue;
y = _priceTrans.TransValue((double)k);
Win32.MoveToEx(hdc, 0, (int)y, out _dummyPoint);
Win32.LineTo(hdc, right, (int)y);
ChartUtil.DrawText(hdc, right, (int)y - 5, k.ToString());
} >>681
ありがとうございます!思った通りにできました。完璧です。
区切り価格を見るに、要するに何をしたいかは多分わかっておられると思います。 無尽蔵さん、6573の市場が間違ってる…?マザーズだけど、東2にしないと更新されないな >>679
それ便利ですね
例えば、、ある銘柄で日足チャートの5年前の日付を見てるときにインジケータ表示を消したり切り替えたりとか。
切替えるたびに観察してた5年前のポイントまで戻るのは手間です。
日付固定して、日足→週足→月足などと変更してもズレないとかも可能なら嬉しいです。 日付固定のロジックは簡単なんですが、ユーザーが日付指定するためのスマートな仕組みや、日付指定モードであることを認識させる表現方法がよくわからないんですよね。 固定したい日付で右クリックして、日付固定の項目を選択。解除は終了若しくは再起動時とか? それ、良いですね。解除も右クリックの項目クリック、日付指定モードであるか否かもその項目を見れば分かるようにすれば良さげです。 日付を固定して表示する機能追加のサンプルコードです。
機能を使うときは>>686さんのアイデアを頂いて、固定したい日付の上で右クリックして、「日付固定表示」の項目をクリックすると固定されます。
解除したいときは任意のチャート画面上で右クリックして「日付固定表示中:yyyymmdd」の項目をクリックすれば解除されます。
注意点として、例えば2017/12/29を指定しても2018年の年足がない状態を期待してもそうなりません。
OmegaChart 日付固定表示 Preference.cs 追加修正ポイントには//☆FixedDisplayYMD
https://osdn.net/users/omegachartuser/pastebin/5802
OmegaChart 日付固定表示 MainFrame.cs 追加修正ポイントには//☆FixedDisplayYMD
https://osdn.net/users/omegachartuser/pastebin/5803
OmegaChart 日付固定表示 Command.cs 追加修正ポイントには//☆FixedDisplayYMD
https://osdn.net/users/omegachartuser/pastebin/5804
OmegaChart 日付固定表示 ChartDrawing.cs 追加修正ポイントには//☆FixedDisplayYMD
https://osdn.net/users/omegachartuser/pastebin/5805
OmegaChart 日付固定表示 ChartCanvas.cs 追加修正ポイントには//☆FixedDisplayYMD
https://osdn.net/users/omegachartuser/pastebin/5806 >>688
おかげさまで便利になりました ありがとうございました ありがとうございます。
過去には、多数の方々が多くの拡張キットを公開されてたはずですが。
現在はリンクをたどってもページが存在しません、こういうのも残念です。
Yahooのメーリングリストがサービス終了後、mixiとかでもOmegaChartのSNSがあったんですかね?
オメチャ関連ググると、そういう残骸もヒットすんですけどね。
どんなものだったのか一目見てみたかった、残念です。 このスレだったか、どなたかがアーカイブを残してくれてます。まだ拡張キットもダウンロード可能のようですよ。
http://web.archive.org/web/20130509215921/http://www.omegachart.org/dl_kit.html >>691
こういうサイト大変ありがたいんですが
組み込み方がわからない・・・
ソースの簡単な一部改変くらいならなんとかできることもあるけど
DLサイトの追加なんてどうやればいいのか・・・ >>694
機能をお試しする一番簡単な方法は
1.Panacoranさんのソースをダウンロードして解凍
2.解凍後できるフォルダ「OmegaChart-9cd2e32」の中にあるファイルがたくさんあるフォルダを見つける
3.>>691サイトにある「日付を固定して表示する機能」項目を見つける
4.修正すべきファイルが羅列されており、上から、Preference.cs、MainFrame.cs、Command.cs、ChartDrawing.cs、ChartCanvas.csの5ファイル
5.2で見つけたフォルダには4で羅列したファイルがあり、すべてのファイルを上書きする。
6.2で見つけたフォルダにある「zanetti.csprj」などをダブルクリックして、VisualStudioを起動する
あとはご存知の通りの手順でOmegaChartを起動して機能を試用してみるという流れになります。 >>695
一番大事なのは、今お使いの環境以外で試すことです。別のフォルダに別のOmegaChart環境を作って試すということです。 ついでにダウンロードサイトの追加は少しコツがあり、解説してみます。
コードを修正するだけではなくて、新規追加する手順と、ご自身でコード書き換えするという手順が必要になります。
たとえば、株探から株価取得を試してみるとします。
1.Panacoranさんのソースをダウンロードして解凍
2.解凍後できるフォルダ「OmegaChart-9cd2e32」の中にあるファイルがたくさんあるフォルダを見つける
3.2で見つけたフォルダにある「zanetti.csprj」などをダブルクリックして、VisualStudioを起動する
4.(たぶん)VisualStudio画面の右側にあるソリューションエクスプローラー内の「zanetti」を右クリックして「追加」−「新しい項目」をクリックします
5.「クラス」をクリックして「名前」を「Kabutan.cs」とし、「追加」ボタンを押下します
6.ソリューションエクスプローラーから今作った「Kabutan.cs」を探してダブルクリックすると編集可能になります
7.>>691サイトの「株探から株価取得」の項目を見つけます。
8.項目内のリンク先のテキスト内容をコピーします。
9.6で編集可能となった「Kabutan.cs」を消して、8の内容で上書きします。
10.ソリューションエクスプローラーから「DownloadOrder.cs」を見つけてコードを表示します
11.10のコードの一番あたりにあるpublic enum StockDataSourceを見つけます
12.「KdbCom」はもう使えませんから、「Kabutan」という文字に書き換えます
13.public CombinedDataSource ConvertToDataSource()を見つけます
14.その中に記述されている「case StockDataSource.KdbCom:」と書かれているところを見つけます
15.以下のように書き換えます。
case DataSource.Kabutan:
stock_ds = new Specialized.KabutanSource(_dateArray);
あとはご存知の通りの手順でOmegaChartを起動して機能を試用してみるという流れになります。
こちらもまた>>696と同じことに気を付けてご試用ください。 >>691
いつも有り難うございます 大変有用な試みですね 所でOmegachartでジグザグラインを引きたかったので
アップロードされた5738から5743を用いて試してみましたがビルドの際に以下の警告がでて困っています
何か手違いがあるのかどうか分かりません こういう場合にはどういう対処をすれば良いのでしょうか?
警告 1 フィールド 'Zanetti.UI.ChartCanvas._currentElliott' は割り当てられません。
常に既定値 null を使用します。\OmegaChart-9cd2e32\ChartCanvas.cs 487 26 zanetti >>698
こちらでも試しましたが、問題はなかったです。
'Zanetti.UI.ChartCanvas._currentElliott' は割り当てられません、ってことは、何かの記述が足りないってことだと思います。
ファイルの上書きで失敗するようなら、変更や追加したコードを一つずつ書き足していくと原因がわかるかもしれません。 OmegaChartの初期化ファイル(ZIP)更新しました。2018年3月末まで。
https://drive.google.com/open?id=1LLV3L2dy_PH-KVZagIcvtOiCz6v0Edz2
>>691のページの下のほうにデータファイルへのリンクを貼っておきます。
忘れなかったら四半期ごとに更新しようかと思います。 >>701
ChartDrawing.csにミスがありました。以下、修正版です。
OmegaChart Elliot波動 ChartDrawing.cs 追加修正ポイントには//☆Elliott 差し替え その1
https://osdn.net/users/omegachartuser/pastebin/5808
(ミスったのは222行目、223行目)(>>691のサイトは修正済み)
あと、このコピペをそのままリネームして使うと、エンコードがVisualStudioと異なることによりエラーになることもあるようです。
ダメ絶対→ファイルのコピー
推奨→文字列のコピペ いろいろ精力的に能力向上されて素晴らしい。
自分のOmegaChartソースには、ここ以外にも優秀なサンプル作者さんのを拝借しており。
なかなか簡単にファイルを書換えることもできず、コードをいじる度に成功するようお祈りします。
コードの見かけ上は、視覚的に同じしか見えないのにエラーになって、OS環境が違うサブPCからOmegaChartソースを引っ張り出してきたものを同じ手順で編集すると成功したり。
なにがどう違うのか全く理解できないことがたまにあるんですよね。
もしかして、もしかすると文字エンコードなんかがアレかな〜?とかよく知らないんですけど。
全然レベルの違う話で彷徨ってます、、、とか書いてるうちに、、、
>>702
ありがとうございます。 >>695
丁寧な解説ありがとうございます。嬉しいです。
一度挫折したのですが、時間を見つけてもう一度トライしてみます。 株価がなぜか置いてあるサイトに関してなのですが、
日によって行が株価コードから始まっているデータ
と
行が日付から始まっているデータとあります。
通常時は行が株価コードから始まっておりデータがダウンロードできるのですが、日付から始まっている場合ダウンロードできません。(たまに日付表示になっていることがある。2018/4/27)
仕様の変更なのでしょうか?よろしくお願いいたします。 調べた限りだと2018/1/5 2018/5/2も >>706
ご指摘ありがとうございます。バグってた部分とデータの修正もできました。 >>708 ご対応のほど、どうもありがとうございました 日付ルーラの縦軸に日付が表示できるようにするには
どうすればいいですか? ChartDrawing.csのDrawMouseTrackingLineの上のIF文が縦線描画の部分です。
Win32.LineTo(hdc, x, _owner.Height-_layout.FooterHeight);
この行の下で以下記述を追加
//ここから
if (!_brand.ReserveFarm().IsEmpty)
{
var date = _brand.ReserveFarm().GetByIndex(_dateLine._nextToBeDrawn).Date;
if(date > 0){
Win32.SetTextColor(hdc, Util.ToCOLORREF(_pref.MouseTrackingLinePen.Color));
ChartUtil.DrawText(hdc, x-30, _layout.HeaderHeight+15, string.Format("{0:D4}/{1:D2}/{2:D2}",date/10000,date%10000/100,date % 100));
_owner.Invalidate();
}
}
//ここまで
ChartUtil.DrawTextで、マイナス30してるのは、文字描画スタート位置調整で、横方向に左にズラすためです。
マイナス数字が増えると左へ、プラスにすると右へ移動します。
同じく、プラス15は、縦方向の調整で、プラスの数字が大きくなると下へ文字が移動します。数字は環境に応じて調整してください。 >>710 オメガチャートの右端に日付や価格表示されませんか?
>>711 いつもありがとうございます >>711
非常に便利な機能だと思います 試してみましたところ上部のオプションボタン?
インジケーターの表示などの切り替えの部分の表示が全部消えてしまいました >>713
このサンプル・コードはダメですね。_owner.Invalidate(); が画面更新するので、ボタンが表示されなくなるようです。
_owner.Invalidate();を取ると、日付がグダグダになります。どなたか、良いアイデアがあったら教えてください。 >>712
指標と凡例の表示ですね
表示するとチャートの範囲が狭くなるのと
目が悪く老眼も相まって
全体を俯瞰したときに目線を右にずらすのがきつくなってきまして・・
>>711
早速コンパイルしてやってみました
イメージ的には、まんまこの感じです!
ありがとうございます!
>>713-714
やはり画面表示時におかしくなりますね
プログラムはさっぱりなのでお役にたてませんが
どなたか、私からもよろしくお願いします! >>715
1割くらいの確率でボタンが消える症状が出ますが、新しいサンプルコードです。ボタンが消えてもカーソルを右の欄外に移動すると直ります。
変更箇所は、同じく、ChartDrawing.csのDrawMouseTrackingLine内の記述変更と新規内容追加です。
◎Win32.LineTo(hdc, x, _owner.Height-_layout.FooterHeight);
この行の直下から以下記述を追加
//ここから
if (!_brand.ReserveFarm().IsEmpty)
{
var date = _brand.ReserveFarm().GetByIndex(_dateLine._nextToBeDrawn).Date;
if(date > 0){
Win32.SetTextColor(hdc, Util.ToCOLORREF(_pref.MouseTrackingLinePen.Color));
ChartUtil.DrawText(hdc, x-30, _layout.HeaderHeight+15, string.Format("{0:D4}/{1:D2}/{2:D2}",date/10000,date%10000/100,date % 100));//ここまでは従来通り
Rectangle r = new Rectangle(Env.Layout.ChartBodyRect.X, Env.Layout.HeaderHeight+10, Env.Layout.ChartAreaWidth, Env.Layout.ChartAreaBottom - Env.Layout.OscillatorPaneHeightTotal - Env.Layout.VolumePaneHeight);//New! この行、新規追加
_owner.Invalidate(r, false);//New! この行はちょっと変更
}
}
//ここまで
New! DrawMouseTrackingLine内の一番上に以下内容を新規追加
_owner.SuspendLayout();
New! DrawMouseTrackingLine内の一番下に以下内容を新規追加
_owner.ResumeLayout(); >>716
ありがとうごさいました
しかし、お気に入りから銘柄を一つ一つ見に行くと自分の環境だけかもしれませんが
拡張キットを読み込み直すまでチャートの描画を停止します っと出てエラーになります
あとはカスタマイズから色変更しようとしてOKボタンを押すと固まりようです >>717
あっちを立てればこっちが立たず、みたいになるようなので非常に難しいみたいです。
今回は断念したいと思います。お役に立てず、すみません。 >>718 いえいえ、いつもありがとうございます。 >>718
お手数をおかけしました
ありがとうごさいました omegachartの株価データいただけないでしょうか?
4月分が抜けてしまい
日付を変更しても4月まで遡ってダウンロードできない状態に、、、
申し訳ないのですがデータをどこかのあぷろだにあげていただけないでしょうか?
よろしくおねがいいたします 間違えました。その前に、
パソコンの日付けを過去にしてやってみましたか?
日付を変えている間は、他のことはしないほうがいいですよ。 日付を変えてダウンロードする技がうまく使えないようで株価データをいただけたらなと思っております 今後もデータ抜けがあるたびに、アップロードお願いするつもりなの? >>732
ソースを書変えて、もっと前からダウンロードできるようにするのがいいですね。 どういう環境かわかりませんが、日付変えてダウンロードできないことあるんですね。
Win10は駄目とか?ダウンロード元が駄目なんですかね? コードを書き換えると4月2日からの足りない日付からのダウンロードもできるようになります。
Download.cs の private static int[] ListDates() この中のこの記述
DateTime start = ld.AddMonths(-2);
この数字を-2から-3に変更します。2か月遡って開始日日付を表示するところから、3か月に変更という意味です。 忘れてなかったら>>700さんが来月更新してくれるのでは。 >>732
今現在、Omegaにはいつからいつまでの株価データが入っているんですか。 データくれって言われたときに思うのは、渡した後、抜けや間違いがあったときにめんどくさいということ。
絶対に文句言わないって言っても、人間って言うんだよね。 たとえば別のパソコンで日付変えてダウンロードするのはダメなんでしょうか? 過去データを取るには736の方法がよいのでは 当方は-120にして10年分ダウンロード出来るようにした 勿論配列を確保しているけど
具体的には data.cs の _farm = new byte[RECORD_LENGTH * 500]; を以下の様に変更(10年から20年分は格納できそう)
_farm = new byte[RECORD_LENGTH * 5000]; ダウンロード開始日指定したら、上書きする仕様に変えれば、ピンポイントで補完できて、システム日付を変えなくても済むね。
DateTimePickerに変えて、指定した日付から2か月分を上書き。少々改造するだけでいけそうな気もする。 チャート上の直近高値・安値って消すことできないんですか? ChartDrawing.cs DrawFushiOrSplit
ここで節の数字と分割情報の描画がされていて、節描画の方をコメントアウトすれば消せます。 単元株数と表示期間の間に、貸借銘柄か信用銘柄か表示できないですか?
貸借銘柄等一覧(XLSXファイル)から取得できそうですが
http://www.taisyaku.jp/brand/ 自分でデータを用意すれば、表示したいモノ(貸借・信用)を取ってきて表示するのは可能です。
自分は時価総額の情報をindex.txtに書きこんで利用しています。 >>744
ありがとうございます。
難しそうですけどやってみます。 じっくりチャート観察してるとOmegaChartが突然終了してしまう件。
コード関係さっぱり分かりませんが、何かしらキャッシュの制限のような原因でしょうか?
日足、週足、月足などの時間枠切り替えや、ローソク足表示の縮尺切り替えなどを頻繁にやると、
早いときは2〜3銘柄を観察する程度でもダウンします。書き込んだラインはSAVEされません。 >>748
こちらではそういう症状は出ていませんね。OmegaChartを出しっぱなしで放置してることも日常的ですし。
error.logというファイルがありますので、Omegaが悪さをしているならば、ログを吐いているはずです。ログを見てもエラー原因は即答できないんですけどね。 >>744
無事にできました。ありがとうございます♪ >>748 こちらの環境では 例えばお気に入りフォルダー登録銘柄の日足から週足や月足に表示を切り替える時に
次の銘柄が新規上場などの理由で週足や月足データの数が直前の銘柄に比べて相当少ない場合には 切り替えに
結構時間がかかりますね ただしハングアップはしませんが これと同じような現象かも知れませんね OmegaChartの画面イメージをファイル出力する機能のサンプルコードです。
サンプルでは、CtrlキーとAltキーを同時に押しながら、Cキーを押下すると動作、OmegaChartの実行ファイルがあるフォルダ配下の「ScreenShot」フォルダに「銘柄コード.png」というファイルが保存されます。
https://osdn.net/users/omegachartuser/pastebin/5822 >>752
銘柄名を含んで、ファイル出力するならば、OutputCaptureでの、Rectangleのパラメーター設定は以下のように変更
Rectangle rc = new Rectangle(
Env.Frame.Location.X + 7,//7は微調整
Env.Frame.Location.Y + Env.Layout.HeaderHeight + 30, //30は微調整
Env.Layout.ChartAreaWidth,
Env.Layout.ChartAreaBottom + Env.Layout.HeaderHeight - 20);//-20は微調整 ■ このスレッドは過去ログ倉庫に格納されています