OmegaChartスレ ver.12
■ このスレッドは過去ログ倉庫に格納されています
会則
@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.11
https://egg.5ch.net/test/read.cgi/software/1539328002/ ●有志による維持活動
panacoran氏のサイト
https://ja.osdn.net/users/panacoran/pf/OmegaChart/wiki/FrontPage
●panacoran氏のご厚意により、あなたが考えた新機能をコミットできる可能性があります
あなたが書いたプログラムを提示することにより、可能となります。
上記マスターを基準に、あなたが考えた新機能を追加したものを*.csファイル毎に下記サイトにコピペ
https://ja.osdn.net/pastebin/
・5chのOmegaChartスレでそのコピペURLを添えて、新機能の概略と以下文句を宣言(必須)
「著作権を主張しないと宣言します」「Apache Licenseで公開すると宣言します」
関連サイト
■名無し屋本舗 CSV to Omega
http://www.geocities.co.jp/SiliconValley-SantaClara/1364/app.html
■株価データ編集ツール DataDump Ver.0.13
http://red.ribbon.to/~judah/omega-dd.html
■OmegaTool:お気に入りツールソフト
http://www.awa-kasikoubou.com/cake/omegatool/omegatool.html 前スレ終了時に立てたスレが重複してしまったので、テンプレを以下に再提示した上で、当スレから使っていくということでお願いします。
重複スレ
https://egg.5ch.net/test/read.cgi/software/1616282382/ 会則
@OmegaChartはサポートを終了しています。
ご自身でコンパイルできない方は、他のソフトを利用して下さい。
A連投で初歩的な質問をする人やクレクレ君は、立ち入り禁止。
●公式サイト
OmegaChart公式HPのアーカイブ
http://web.archive.org/web/20131010105520/http://www.omegachart.org/
作者Blog(サポート終了)
http://okajima.air-nifty.com/
●有志による維持活動
panacoran氏のサイト
https://ja.osdn.net/users/panacoran/pf/OmegaChart/wiki/FrontPage
●panacoran氏のご厚意により、あなたが考えた新機能をコミットできる可能性があります
あなたが書いたプログラムを提示することにより、可能となります。
上記マスターを基準に、あなたが考えた新機能を追加したものを*.csファイル毎に下記サイトにコピペ
https://ja.osdn.net/pastebin/
・5chのOmegaChartスレでそのコピペURLを添えて、新機能の概略と以下文句を宣言(必須)
「著作権を主張しないと宣言します」「Apache Licenseで公開すると宣言します」
関連サイト
■株価データ編集ツール DataDump Ver.0.13
http://red.ribbon.to/~judah/omega-dd.html
●前スレ
OmegaChartスレ ver.11
https://egg.5ch.net/test/read.cgi/software/1539328002/ ※ソースは公開されているので自分でコンパイルするか、コンパイルできない人はTactico(タクティコ)を利用してください。
Q3〜Q7は自分でコンパイルが出来ればツールを使わなくても可能です。
Q1.最新のindexファイルはどのタイミングで更新されるのでしょうか?
→A1.更新しようと思った人が更新した時。ボランティア性なのでお前も参加しろ
Q2.株価・出来高がおかしい。またはデータに抜けがある
→A2.取得元(無尽蔵)のデータが間違ってる場合もあります。また、indexは最新のものを使用してください。
各自でデータを取得し下記ツール「CSV to Omega」でバイナリ変換するか
株価データ編集ツール「DataDump Ver.0.13」を利用する。
Q3.当日のデータのダウンロードは何時以降からできるでしょうか?
→A3.無尽蔵側は18時には用意できてることが多い。
オメガ側は19時以降にダウンロード可能になっている。
Q4.信用残、名証・福証・札証銘柄、マザーズ指数も表示したい。
→A4.いずれも対応していません (※名証は場合によっては可)
各自でデータを取得し下記ツール「CSV to Omega」でバイナリ変換してください
Q5.指数の小数点以下を表示させたい
→A5.取得元(無尽蔵)が対応していません
Q6.スクリーニングの対象市場を追加したい
→A6.市場別にお気に入りへ追加してください
Q7.株価をリアルタイムで取得したい
→A7.対応していません(※20分遅れなら場合によっては可)
Q8.お気に入りフォルダーを開こうとするとエラーが出る。
→A8.お気に入りにindex.txtにない銘柄が登録されている。
該当銘柄をindex.txtに追加するかoptions.confから削除する。
Q9.Windows7 64bit版で使用したい
→A9.64bit OSでコンパイルする。>>3以降、「Windows7 64bit版で使用するには」を参照
Q10.過去データがほしい
→A10.有志による初期化ファイルがあります。「OmegaChartの初期化ファイル」で検索 ■インストール方法
https://ja.osdn.net/users/panacoran/pf/OmegaChart/wiki/FrontPage
上記サイトの「ビルド方法」以降を参照して、環境を整え、ソースをコンパイルして実行ファイルを作ってください。
OmegaChart.exeが存在するフォルダ内に必要なものは、
・「data」フォルダ 〜 銘柄コード(数値4ケタ)のファイル、株価情報格納ファイルが銘柄数分必要
・「extention」フォルダ 〜 default.omegaというファイルがほぼ必須。スクリーニングやオシレータなどの編集を行うファイル
・index.txt 〜 銘柄情報ファイル、銘柄コードや銘柄名、株価分割情報などが記述される
・options.conf 〜 チャート表示情報ファイル、システムが読み書きする情報が格納される
・他にDLL(基本的にコンパイル時自動的にコピーされる)
OmegaChart(オメガチャート)のコンパイル方法は他サイトにもあります
http://systemtrade.nekonikoban.org/omegachart/introduce/index.html
■Windows7 64bit版で使用するには
VisualStudioのコンパイルメニュー、アクティブソリューションプラットフォーム
(DebugとかReleaseの右にあるコンボボックス)の選択で、AnyCPUではなくx86を設定してコンパイルする。
これで32bit固定アプリケーションとしてコンパイルされるのでx64のOSで実行するときでも32bitモードとして実行される。
Q.bin\x86\ReleaseにできたOmegaChart.exeは動くのに、こいつをProgramFiles\OmegaChartフォルダにコピーすると
アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。[続行]をクリックすると〜
パス C:\Program Files (x86)\OmegaChart\data\0101'へのアクセスが拒否されました'
とか出て動かない。フォルダ丸ごと移動させても動かない。俺はどこをミスしてるの?
A.Windows7の標準ユーザーにはProgramFiles配下へのアクセス権限がないためだと思います。
管理者権限で起動するか、問題のないフォルダへフォルダごとコピーして使うか、のどちらかで。
■過去データ
OmegaChartの初期化ファイル 四半期毎に更新中
https://drive.google.com/open?id=1yFyFiI1OI-HlJwB9KoBMd9_qqa9y8mAQ panacoranさん、
indexファイルの更新どうもありがとうございます。 >6
>■過去データ
>OmegaChartの初期化ファイル 四半期毎に更新中
四半期ごとの更新だったんですね、今気付きました。
感謝です。 あそこから20本以上取るのどうしたら良い 難しい? 有志の方々が作ってくださったオメガの仕様が20本以下までですよね
bvaでHTMLから文字列を抜き取る作業としては多少修正しましたが大差ありません
テキスト文字列処理はどうにでも好みのやり方ができますが
"<table>"タグ間にあるのは変わりません、いち行単位が"<tr>"区切りは同じで、日付要素だけ"<th>"区切り変更。
あとは、不要な"<" 〜 ">"間の文字列除去を周回します。
中長期間分の複数ページを跨ぐアドレス文字列が消えましたね、検索結果に応じて該当データ件数を明示するので、
その「???件数」割る「20件/ページ」で切り上げてページ数を求めて、応分のアドレスページ周回です かなり細かな変更があって20本までは取れていますがページ指定が出来ないので困っていました
アドバイス?ありがとうございましたトライしてみます データテーブルの直後にある現在の表示件数の情報の表示スタイルが
[現在の表示件数範囲]"/"[総件数]
なので、二つの数が同じになるまで周回するでもいいですね、、、”<p>”(7)。テキストの中
国内指数の三つは古いテーブルのままで、先物2つは1ページ20件分だけあったのが出てこなくなりましたね #_more > p:nth-child(1) の所ですね自分でページ数を計算しなくて済むので使えるかも ETFページのスタイルが古いままみたいですね
まだ全部は確認してませんが オメガもETFだけなら修正せず取れそうですね。
vbaは変更なくETFコード番号だけ取れます >>18
REITコード番号も旧式ページ
分割情報は時系列データに混載してるのを見てくれてことみたいですかね
あとはチャートページのポップみたいなやつと 今日は大量に抜こうとすると蹴られる様な ちゃんと取れてますか こちらも不安定な状態ですけど原因はなんとも
自分のマクロ自体まだ試作動作テストの段階なので実行中断エラーも多発してます ヤラれてますね ページソースが変わってる 週単位で変わると アドレスと正規表現を外部ファイルから読み込む仕様にすれば良いのかな データの件、こちらはページソースの変更に気づかず
bvaはコード修正せず、その短期間のソース変更の影響によるエラーは今のところ出ません
1部主要コード番号を少しだけ試しただけす {0}.T&fy={1}&sm={2}&fd={3}&ty={4}&tm={5}&td={6}&cp=d
の”.T”の所を銘柄{0}の市場を判別して.Sや.F等に置換する良いやり方教えて下さい AbstractBrand br = Env.BrandCollection.FindBrand(code);
これでindex.txtにある情報、市場名とかが取得できるからハンドリングできるよ。 >29
ありがとうございます C#素人で苦労してます あそこからなら有志の方の非同期でも取れるんですがこれで東証以外も取れそうです 1154c1154
< 3042,セキュアヴェイル,J,100,S:20130327:100
---
> 3042,セキュアヴェイル,J,100,S:20130327:100,S:20210330:2
2196c2196
< 4496,コマースOneホールディングス,M,100
---
> 4496,コマースOneホールディングス,M,100,S:20210330:2
3691c3691
< 7092,Fast Fitness Japan,M,100
---
> 7092,Fast Fitness Japan,M,100,S:20210330:1.3
4764c4764
< 8798,アドバンスクリエイト,T1,100,S:20040927:2,S:20110928:100
---
> 8798,アドバンスクリエイト,T1,100,S:20040927:2,S:20110928:100,S:20210330:2 分割情報の欠けているのを見かけたので。気が付いた分だけ。 みんかぶの正規表現、どう修正したらいいですか?
var valid = new Regex(
@"<td class=""tal"">(?<year>\d{4})/(?<month>\d?\d)/(?<day>\d?\d)</td>[\r\n\s\S]+?" +
@"<td class=""num"">(?<open>[0-9,.]+)</td>[\r\n\s\S]+?<td class=""num"">(?<high>[0-9,.]+)</td>[\r\n\s\S]+?<td class=""num"">(?<low>[0-9,.]+)</td>[\r\n\s\S]+?<td class=""num"">(?<close>[0-9,.]+)</td>[\r\n\s\S]+?" +
@"<td class=""num"">[0-9,.]+</td>[\r\n\s\S]+?<td class=""num"">(?<volume>[0-9,]+)</td>"); はじめは、確実な <td class=""tal""> から正規表現検索して、少しずつRegexの正規表現文字列を伸ばしていけばできるよ。 できないから質問しています。わからなければ答えなくていいです。 みんかぶ時系列揃うのは翌日だから役に立たないのでは 「ありがとうございます。やってみます」とか普通に返答しておけばいいのにw panacoranです
分割情報はバグっていて反映されていなかったので直しました
Yahooファイナンスの形式変更に対応したバージョンをプッシュしておきました
https://osdn.net/users/panacoran/pf/OmegaChart/wiki/FrontPage date=20210411
4923,コタ,T1,100,S:20050328:1.5,S:20110329:1.1,S:20120328:1.1,S:20130327:1.1,S:20140327:1.1,S:20150327:1.2,S:20160329:1.1,S:20170329:1.1,S:20180328:1.1,S:20190327:1.1,S:20200330:1.1,S:20210330:1.1,S:20190327:3,S:20210330:2
後ろ二つの分割が余分っぽい。20190327と20210330で2回分割されてる。
確認お願いします。 >>39
ありがとうございます。
時系列が旧形式と混在してて、一部の銘柄がDL出来ていませんね。
ETF・リート(1305…・2971…)が旧形式何でしょうかね? YahooファイナンスでETF・リート更新できていますか?
おま環なのか、皆さん無尽蔵使っているのかな。 >>19
分割情報はページソースの中には書いてるので取得可能ですね。 下記の銘柄の最後の分割値が重複しています。
4641,アルプス技研 ,S:20190626:2
6542,FCホールディングス ,S:20190626:2
6920,レーザーテック ,S:20191227:4
7570,橋本総業ホールディングス ,S:20190327:2
7611,ハイデイ日高 ,S:20190226:4
7673,ダイコー通産 ,S:20191128:5
8928,穴吹興産 ,S:20191227:5
9511,沖縄電力 ,S:20200528:2
また、下記の銘柄には最後の分割値は無いようです。
6104,芝浦機械 ,S:20200423:4
御手数を掛けますが確認宜しくお願い致します。 3681c3681
< 7078,INCLUSIVE,M,100,A500
---
> 7078,INCLUSIVE,M,100,A500,S:20210409:3 >>44で指摘されていますが、下記の銘柄の最後と最後から2番目の分割値が重複しています。
4923,コタ ,S:20190327:1.1,S:20210330:1.1
また、下記の銘柄の分割値が消えているので記載をお願い致します。
8029,ルックホールディングス,T1,100,S:19851226:1.06,S:19880627:1.06,S:20180627:0.2
再度の御手数を掛けますが確認を宜しくお願い致します。 panacoranです
YahooファイナンスからETF/ETNのデータをダウンロードできないのを直してみました
https://osdn.net/users/panacoran/pf/OmegaChart/wiki/FrontPage
index.txtの誤りの報告ありがとうございます >>56
めっちゃうれしいです
ありがとうございます 3/1からの日付で過去データ取るとまるまる3月分の株部分のデータ消えました。
おま環かもしれませんが、一応。 データが消えるというと、BUILD_INITIAL_DATA を思い出すな。 ヤホー時系列の異常
1376 1991年10月25日以前の始値 0 > ■過去データ
> OmegaChartの初期化ファイル 四半期毎に更新中
最新版ありがとございます ソースみると株価周辺のtd class〜span class〜あたりは以前と変わっていないように思うのですが、どこが変更されたのかしら? 無尽蔵の当日株価データー2021/06/30以降が#N/Aになって
7699 オムニ・プラス・システムが更新されてない。 >>77
日経平均株価が変更されたのかな?個別株の正規表現と違うような。 指数とETFは、旧形式だったのが、指数は個別株と同じ新形式に変更されたのかな >>83 補足
指数のページは個別株のページと似ているけど正規表現まで調べると異なっていますね。 指数は更新せずに株価だけDLするには、どうすれば良いの? 正規表現を、これに変更したらできました。
private static readonly Regex Valid = new Regex(
@"<tr[^>]*>+<t.[^>]*>(?<year>\d{4})年(?<month>1?\d)月(?<day>\d?\d)日<\/t.><td[^>]+>(?:<span[^>]+>)+(?<open>[0-9,.]+)<\/span>.*?<\/td><td[^>]+>(?:<span[^>]+>)+(?<high>[0-9,.]+)<\/span>.*?<\/td><td[^>]+>(?:<span[^>]+>)+(?<low>[0-9,.]+)<\/span>.*?<\/td><td[^>]+>(?:<span[^>]+>)+(?<close>[0-9,.]+)<\/span>.*?<\/td>(?:<td.*?>(?<volume>[0-9,.]+)<\/span>.*?<\/td>)?<\/tr>",
RegexOptions.Compiled); URLは市場コード追加したらできました。
string mc;
AbstractBrand br = Env.BrandCollection.FindBrand(code);
switch (br.Market)
{
case MarketType.B:
mc = "";
break;
default:
mc = ".T";
break;
}
var url = $"https://finance.yahoo.co.jp/quote/{codeString}{mc}/history?from={begin:yyyyMMdd}&to={end:yyyyMMdd}&timeFrame=d&page=1 祝日も変更しないと、今日の株価はDLできないです。 データDLできない。そうかオリンピックで休日変わってたのか 何が助かったの?
この気配では、助かりそうにありませんがw 昨日じゃね?
祝日対応については前スレ
https://egg.5ch.net/test/read.cgi/software/1539328002/952
以降を参考にして自分でビルドしよう
ダウンロートしたファイルのその1の中の Util.cs で同ファイルを完全上書きするだけで終わり >>99
ありがとうございます。
ただ一部データの不備を見つけたのでご報告しておきます。
日経平均(0101)とTOPIX(0102)で下の日付のデータが取得できずに歯抜けになりました。
個別株は大丈夫みたいですm(__)m
2021/7/19
2021/7/15
2021/7/13
2021/7/9
2021/7/7
2021/7/5
2021/7/1
2021/6/29 さらに不具合を見つけたのでご報告します。
業種別指数(0501〜0533)がデータはあっても2021年1月28日以降が表示されなくなってます。
2021年5月21日までは毎日見てたのでちゃんと表示されていたのを確認してますm(__)m それ、オメガではなく、データベース側の問題じゃないですか?
取得元のデータベースを変えてみたらいかがでしょう? >>99
>>89
市場コードを追加しないと、日付を指定しても時系列の1ページ分しかDLできませんね。 >>102 歯抜けは
>>86 の正規表現と
>>89 の市場コード追加
>>97 または >>99の祝日対応で解決しました。 >>102はやはし歯抜けになるので手動補完して自己解決しましたm(__)m
>>104も自己解決しましたm(__)m 正規表現を修正しないと、根本的な解決にはならないでしょうね。 下の日経平均とTOPIXが歯抜けになる問題。
2日おきに歯抜けになってるんですよね。
なのでこの現象が続くなら今日のデータは取れないかもしれませんm(__)m
2021/7/19
2021/7/15
2021/7/13
2021/7/9
2021/7/7
2021/7/5
2021/7/1
2021/6/29 panacoranです
日経平均とTOPIXが歯抜けになるのを直しました
業種別指数については、
最初から取り込めないように作ってあるので、
何を言っているのか理解できません 業種別指数は自分で取り込めるように改造してたのを忘れてました。
上に書いてるとおり自己解決しました。
ありがとうございましたm(__)m panacoranです
出来高が調整後終値になっているのを直しました うっかりきづきませんでした。
ありがとうございました。 教えてください
スクリーニング結果に4本値とかの複数行を表示させることはできますか? 一度のスクリーニングで複数項目(四本値など)の評価結果の表示が出来るかというのならイエス
ソースは公開されていたけれどもう昔々のことで作者さんも とっくに忘れているかもしれないね >>126
ありがとうございます
厚かましいと思いますがもしソース持ってる人がいましたらアップしていただけると大変ありがたいです ここの人間はクズしかいないからそういうお願いは絶対に聞いてくれないどす archive.orgで漁ってみるとワンちゃんあるかも これだけ証券会社のツールが発達していろいろできるのに、
いまだにオメガチャートにしがみついてるやつってなんなんだろうな
リアルタイム株価が当たり前の時代に相場終わってからのチャート見てどーすんの
相当頭悪いんだろうな 2015年に以前の改造箇所を統合した際に スクリーニングの複数項目表示を取り込んだ この機能があるとないでは大違い 今となっては過去スレ漁っても該当のソースは手に入らないがこいつを参考にしてオメガに標準化して欲しいので この際纏めておく(作者さん勝手にごめんね)
使い方はスクリーニングキットに次の様に複数の評価項目を記載する <expression>rsi(14)</expression>
<expression label="移動平均乖離率" format="F2,%">kairi(25)</expression>
<expression label="RCI" format="F2,100">rci(9)</expression> 以下同様
改造は Screening.cs, ScreeningResultPane.cs, IndicatorSchema.cs, IndicatorSet.cs(ScreeningResultPane.cs は csvをタブ区切り出力の場合)
1)Screening.cs ScreeningItem クラスに _secondaryItems の評価を追加する
・40行目 private Evaluator _eval の下にアイテムリスト追加(以下行数は適当な目安)
private ArrayList _secondaryItems;
・82行目付近 public EvalResult Calculate(DataFarm farm, int index) { の前に以下のコードを追加
public ArrayList SecondaryItems {
get { return _secondaryItems; }
set { _secondaryItems = value; }
}
public EvalResult[] Args { get { return _args; } }
・136行目付近 public ScreeningOrder に繰り返しアイテムの評価項目を追加
//_secondaryItems = new ArrayList();の後
foreach (ScreeningItem si in pr.SecondaryItems) { AddSecondaryItem(si); }
・212行目付近 //secondary の後にある else{ 以下2個所をコメントアウト
//_result.AddDataErrorBrand(b);
//return ExecuteBrandResult.DataError;
//直後に以下を追加
ent.SecondaryResults[i] = new EvalResult(false);
(続く) 2)IndicatorSchema.cs, IndicatorSet.cs の両方に以下の宣言を追加
using System.Collections.Generic;
3)IndicatorSchema.cs
・275行目 protected int _maxInstanceCount; の下に追加
protected ArrayList _secondaryItems;
・429行目 public bool OwnsConfigの前に以下を追加
public ArrayList SecondaryItems { get { return _secondaryItems; } }
(続く) ・583行目 public SchemaScreeningItem のthrow new FormatException("expression is empty"); の文(588行目)の下、最後の括弧の手前まで以下のコードを挿入
_secondaryItems = new ArrayList();
foreach (StorageNode s in definition.Children) { if (s.Name == "expression") { if (s.TextValue == null) {
throw new FormatException(String.Format("{0}の必須要素{1}が空です。", definition.Name, "expression"));
} else if (s["label"] != null) { Dictionary<string, string> column = new Dictionary<string, string>();
column["label"] = s["label"]; column["format"] = s["format"]; column["expression"] = s.TextValue; _secondaryItems.Add(column); } } }
//以下最後の括弧
(続く) やっぱし ここはカスだらけや すんだら後は何もなしか ぽつぽつとはじかれるのは今日のデータみたいに --- が沢山あるせいでしょうか buf = buf.Replace("---", "0"); を入れれば良い >>142
思ったスクリーニングが出来るようになりました
ありがとうございました ありがとうございます これを使うと元に戻れませんね 今日は普通に取れた 昨日はまるで駄目 一体なんでだろう 分かった コード改変して市場区別を拡張した時指数のurl に.Tが抜けてた クソガキだな まだ鼻垂れてるのか 寝小便してるのか >>151 - 154
多分出来高ゼロの銘柄で詳細ページの表示が ”---”の場合は”0”で置換すれば良さそう
ただ東証以外の銘柄で今日の岐阜造園みたいに表示が(--:--)の場合は弾かれている
こいつも”0”置換してやればちゃんと取れた(東証しか取らないならほぼ問題はない) index.txtで2768 双日 併合の対応お願いいたします。 panacoranさんへ
index.txtの更新、いつもありがとうございます。
御手数を掛けますが、index.txtの修正をお願い致します。
4069,BlueMeme,M,100
2768,双日,T1,100,N225,A500,S:20210929:0.2
3528,ミライノベート,T2,100,S:20210929:0.1
4347,ブロードメディア,J,100,S:20050328:2,S:20060328:2,S:20210929:0.1
8713,フィデアホールディングス,T1,100,S:20210929:0.1 高値から2割下がったところに移動平均線みたいな補助線を引くことってできるんでしょうか? 時価総額が大きめの成長株って短期ピークつけたところから
2割強下がったら移動平均線の上に乗ってだいたい買い場になると思いまして。 一定期間の高値 X 0.8
ここへ線を描画するなら簡単です
スクリーニングでも 拡張キットマニュアル - :OmegaChartWikipedia
ページがなくなりましたかね panacoranさんへ
index.txtの更新、いつもありがとうございます。
御手数を掛けますが、index.txtの修正をお願い致します。
6522,アスタリスク,M,100,A500,S:20211124:4,S:20211125:4
↓
6522,アスタリスク,M,100,A500,S:20211125:4 panacoranさんへ
再度の御願いです。
御手数を掛けますが、index.txtの修正をお願い致します。
7352,Branding Engineer,M,100,S:20211129:2,S:20211206:2
↓
7352,Branding Engineer,M,100,S:20211206:2 パソコン買い替えでオメガチャートを入れて過去分のデータを取ろうとしたら、
「SSL/TLSりセキュリティで母語されているチャネルに対する信頼関係を確立できませんでした」とでて弾かれてエラーが出る
エラーを調べてみると「場所 Zanetti.DataSource.DailyDataSource.Process() 」だった
以前はパソコンの時間を戻せば1983年からデータ取得できたんだけど、これはpanacoran氏がわざとデータ取れない仕様にしてる?
業種別指数もわざと取れなくしてるってあったので。 時間が正しくないとセキュアな通信はできなくなったんじゃなかったかな。
SSLだかのバージョンがあがったせい。
仮にクライアント側でバージョンを戻しても、ホスト側が受け付けないようになっているので、
今までの方法ではもう通信できないんじゃないかとエスパー。 ヤフー側のwebセキュリティが上がったので以前のようにパソコンの日付を戻して過去データを取得することができなくなりました。
以上 なるほど、長期は一瞬お金払ってデータ取った方が労力少なそうですね。 四半期毎に更新の人は、6月末で更新が途絶えてるね。 panacoran氏は知らないらしい
まだ探せば株価データ取れるところはあるよ
教えないけどね 時間を戻さなくても過去の株価が取れるところはそりゃあるだろ
そんなんでしかマウント取れないのかね max(close(10))だと最大値が得られる。
close(10)の中で2番目に大きい値を取得したい場合だと、どう書いたらいいんでしょうか? 初期化ファイル四半期毎のやつ、更新しました。完全に忘れてた。 年初来安値と日付をスクリーニング結果に表示させるには、どう記述したら良いですか? 上場来安値
WEBサイト情報か証券会社の情報を見るでしょう。
コーポレートアクションを考慮してないままの情報のせいで全期間チャートと一致してない過去の実例がありますけどね。
それをチャート見て確認するくらいしか現状のOmega拡張キットでは出来ないと思ってますけど。 四季報とかは、株式分割を考慮しない上場来安値だから参考にならない。 datalengthを使えば出来る 以下は一例
min(close(datalength())) == close()
ただ拡張キットの試験では通るがスクリーニングで奴が出る事がある
↓
オブジェクト参照がオブジェクトインスタンスに設定されていません 市場再編対応は、こんな感じでいけそう。
1.Brand.cs internal enum MarketType に追加
[EnumValue(Description = "プライム")] PR,
[EnumValue(Description = "スタンダード")] ST,
[EnumValue(Description = "グロース")] GR
2.SystemTrading.cs internal enum FilterType を変更
internal enum FilterType {
[EnumValue(Description="すべての銘柄")] None,
[EnumValue(Description="日経平均採用銘柄")] Nikkei225,
[EnumValue(Description="平均売買代金上位500銘柄")] Active500,
[EnumValue(Description="プライム市場")] Div1,
[EnumValue(Description="グロース市場")] NotDiv1,
[EnumValue(Description="お気に入りのフォルダ")] Favorite
}
3.SystemTrading.cs public override bool Check(AbstractBrand br0) を変更
case FilterType.Div1:
return br.Market==MarketType.PR;
case FilterType.NotDiv1:
return br.Market!=MarketType.GR;
4.Mujinzou.cs private static bool CheckMarket(BasicBrand br, int muj) を変更
(詳細はまだ未定)
5.Yahoo.csは変更なし
(詳細はまだ未定) 無尽蔵は、index.txtと無尽蔵の株価データに付随した市場コードが一致しないと弾かれる仕様なので、市場再編後に古い株価を取得しようとするならば、再編前のindex.txtを使用しないと株価が取れなくなりそうですね。 上場来安値、高値は、IndicatorTimeSeriesを使えば取れそう。ChartDrawing.csで使われてるからサンプルコードとして参考に。 いつのまにかケンミレから取れなくなったね 有料会員しか駄目なのか 4月4日からですね。
その前に一回データバックアップしとこう ちぃ やほーランキングも取れなくなった 便利だったのに なんで、なんでー、こんな日に上げるんだよー助けてよー
プーチン氏ぬ
ロシアに塩 まだこのスレあったんですね。オリジナルのOmegaChart作者です。
OmegaChartは後継のTacticoというソフトウェアに移行し、それも近年放置気味だったんですが、
今回Webアプリ版としてリニューアルしました。
https://www.tactico.jp/
自在なスクリーニングをしたいという需要は確実にあると思うのでご意見ご要望等お待ちしています。 やぁ天才岡嶋さん
RelaxNGCC使ってましたよ まさか偽物と疑う奴が出るとは。
関連ブログ https://tactico-blog.com/ にも岡嶋大介の活動を書くって書いたよ。
まあ大事なのは本物かどうかじゃなくて、個人投資家レベルでできる最高の株価分析プラットフォームを作ろう、ってことだよ。
もうWindowsデスクトップアプリの時代じゃないし、よそのサイトをスクレイピングしてるようなセンシティブなところ以外はオープンソースにしてもいい。
長い間OmegaChart/Tacticoを放置してたのは本当に申し訳ない。 OmegaChartの良いところは、ホールディングス化で上場廃止なった銘柄を継続してチャートを確認できることだけどWeb版Tacticoはどうなのかな。 index.txtの市場コード、どうします?
札証と被るので「PR、ST、GR」にするか、オーソドックスに「P、S、G」とするか。 >>219
こんな、なれなれしいキャラじゃなかったよなww
岡嶋さんの今後の活動は、面白そうだけど残念ながら
ずっとここに残ってる奴は既存のOmegaChartに固執して動くことはないと思うw
なんだかわからないけどデータ自体が手元に残ってる感じとか古くさいのが好きなジジイ連中だからww >>226
そう
そこが引っかかったところ
まあ、panacoranさんのすべてを知っているわけじゃないんで(当たり前)、ひょっとすると本人さんなのかもしれないけどさ panacoranです
>>219は私です
キャラ間違えました
市場区分の変更については各サイトの対応を見てから決めるので、
4月4日中に対応できるかは微妙です
株価データ取得以外で必要な変更点は>>205に挙がっているので全部ですか?
抜けがないか確認してもらえると助かります >>228
>キャラ間違えました
普段のキャラを観察してみたいw >>205 ですが、新市場銘柄と既存銘柄混在のindex.txtを作って、画面表示とスクリーニングをテストしたぐらいですね。自動売買は走行させてエラーがでなかったことを確認した程度。セオリー検証はノーチェックです。index.txtダウンロードは、パナコラン氏のindex.txt仕様に合わせる必要がある。 なんが株式分割がうまく扱えてない気がするんだけど、なんでだろ?
4471とか ETFとかのマーケットコード、どうしようか。そのままでいいか。とりあえず。8301日本銀行もどこの市場にすべきか、わからんな。 市場再編前と後のindex.txtです。前は、まんまpanacoranさんの4/1時点のindex.txtで保存用。後は、4/1時点のindex.txtを市場コード改変したもの。ETF等はT1のまま。8301日本銀行はスタンダードとしました。
2022/4/1時点のindex.txt
https://drive.google.com/file/d/1SfynXk_SYNrvV-1qpcA-Q64m9m1wA3Z8/view?usp=sharing
2022/4/4時点のindex.txt
https://drive.google.com/file/d/1YoBP4V7LJh3lwgh7Igt5tbkPasK6i_8b/view?usp=sharing 234さんへ
205さんを参考にして作成した20220404のindexについて、
東証プライムをPR、東証スタンダードをST、東証グロースをGRとありますが、
同日、名古屋証券取引所も改変し区分の重複の恐れがありますので、
東証プライムをTP、東証スタンダードをTS、東証グロースをTG、が良いと思います。
※ソースコードを改変した場合、名証プレミアをNP、名証メインをNM、名証ネクストをNNに出来るので重複の恐れが無くなります。
参考URL
ttps://www.rakuten-sec.co.jp/web/info/info20211130-01.html >>235
ご意見ありがとうございます。仰ることはなるほどと納得したのですが、もう前日となり、直す気力もなく、このindex.txtをご使用するのであれば、置換してお使いください。パナコランさんのindex.txt設定がOmegaChartの仕様になっていくと考えていますので私の書いたものは暫定とお考えください。 panacoranです
無尽蔵と株価情報についてデータ取り込み時に市場を見ていたのを消す対応をしました
https://osdn.net/users/panacoran/pf/OmegaChart/wiki/FrontPage
Yahooは最初から市場見てないので
index.txtの市場コード変更とそれに伴うOmegaChartの変更は明日で
東証=T 東証プライム=TP 東証スタンダード=TS 東証グロース=TG
とします panacoranです
index.txtの対応もすませました >>239
ありがとうございます。
いつもいつも、感謝に堪えません。 >>239
いやっほぉいぃぃいぃ、ありがとうございます。 >>239
さっそく市場再編対応ビルドして
データ更新してみました
ありがとうございます SystemTrading.csは各自で修正ですかね。 1306などは、証券会社によって市場が東証になっていたり、東証プライムになっていたりと統一されていないので、市場区分の分類はなかなかむつかしいものがありますね。 もはやこれまで…と諦めかけたけれど
試行錯誤やっと、ビルド成功 今回の変更で為替とダウ等が取れない対処方法を教えてください。 Com mnd.csとDownload.csの改造で可能だったのですがこれを入れても取れないのですが。ここら辺解る方ご支援願います。 ちょっとまて、何いいたいのかわからない
詳しく言い直せ DreamVister終了対応で2019/05/28にOmegaChatスレVer.11の562項
でCommand.csとDownload.csを改造し為替とDau,Nasdaq,SP500の
取り込みが可能になっています。
しかし、為替は、Yahooファイナンスのヒストリカルデータが有料化
され取れなくなっています。この為エラーが出るようです。
コードJPY=Xで米国版Yahoo に有るので201,JPY=X追加しユーロ円
はないので削除。 Command.csに201,JPY=Xを追加して見ました。
アプリケーションのコンポーネントで、ハンドルされていない
例外が発生しました。とエラーが出ます。
無視して続行しますと円ドル、USの3指数は取れます。
エラーが出ない様にすにはどの様な改造が必要でしょうか? >>254追加
DreamVisor終了対応終りで為替US3指数をYahooファイナンスと米国版Yahoo
からのデータ取得の変更の詳細(OmegaChartスレ Ver11の562行変更)
Firestoregeに入れました。各項目をクリックし取り出して下さい。
パスワード ZE5632KM 無料なので有効期限7日です。
Command.cs改造箇所その1
https://firestorage.jp/download/b2b60dfc1fc38519fa0a62d0e8cf8c5fc326ac65
OmegaChartスレ Ver11の562行変更時のCommand.cs全ページ
https://firestorage.jp/download/a7832111a1795b62ebfd2abb17fa5fa22d834054
OmegaChartスレ Ver11の562行変更時のDownload.cs
https://firestorage.jp/download/9476be205dc194ef029a4be4e346554779fbea5d >>254
YahooファイナンスのURLも正規表現も旧版のままなのに、為替は取得できてるの? >>256
日本のYahooファイナンスでなく米国https://finance.yahoo.com
からDau、Nasdaq、SP500を取得しているので円ドルもあるのでは
と思い調べたらJPY=Xで有りましたので{ 201, "JPY=X" }を入れました。 それならpublic static void UpdateFx()が必要ないのでは? 201, "JPY=X"追加で例外が発生しました、とエラーが出ますが
Dau、Nasdaq、SP500と円ドルのdataは取れました。
C#をあまり理解してなのでYahooファイナンスを消していないため
エラーメッセージでるのではと思っていますが? >>258
Command.cs改造箇所その1でpublic static void UpdateFx()が
497行
internal class CommandExec {
以下に次を挿入
//DreamVisor終了対応
public static void UpdateFx()
{
と入っていますが? >>260
日本のYahooファイナンスを削除してpublic static void UpdateFx()作動させず
米国版Yahooだけ作動す様に public static async Task UpdateUsYahoo()から
作動しUS3指数とドル円を取得して見ましたがエラーメッセージは出てしまいます。
あと、今回のソースコードOmegaChart433dcd4ではエラー出てOmegaChart.exeの作成が
出来ませんで2019年作成のOmegaChart8b0b2d2で可能でした。
仕方ないので8b0b2d2版で作成されたexeは、1OmegaChart.exeとし433dcd4版は
2OmegaChart.exeとし同一フォルダーに入れショートカットを作りデスクトップ
から操作可能にしてDau、Nasdaq、SP500と円ドルのdataをこの休み中に見ています。
私のレベルでは、ここまででしたので日本株にとってUS3指数とドル円は、影響が
大きく重要であると思いますのでFirestoregeに入れましたCommand.csとDownload.cs
を見て修正しきれいに取得可能にして下さい。よろしくお願いいたします。 VPN等で米国からのアクセスを偽装しないと米国Yahooからプログラムで情報とるのは難しい感じですね。 >>262
確かに、Command.csの「//Windows Chromeに偽装」と注釈がある下の
HttpClientに433dcd4版ではエラーが出ますが 8b0b2d2版ではエラーは
出ずOmegaChart.exeを作る事が出来ました。
あと、3月16日からドル円が取れなくなっていましたが大分歯抜けが
有りますが連続してデータは取れています。
タイミングのずれがあるのか時間をずらし何回か取ると取得出来ます。 >>264
最新のOmegaChart433dcd4版ではHttpClientにエラーが出でビルドが出来ない
現象が有りましたがいろいろ調べたら判明しました。
Visual Studio2019の上部のプロジェクトをクリックし参照の追加(R)を
クリックするとSystem.Net.Httpがあるのでこれにチェックを入れます。
これ以外で名前空間でSystemやSystem.DataやSystem.Drawing等でエラーが
出ていたので同じ操作で消すとビルドが可能になりました。
再度US3指数と円ドル取得可能なCommand.csとDownload.csを以下に
ダウンロードファイルしておきます。
https://drive.google.com/file/d/131QR-X3fIfLF-1XbxBWlVKemNEDSQGDU/view?usp=sharing
https://drive.google.com/file/d/15IZbQQaU4K0qzob_PfOkohdsM1E_F1qD/view?usp=sharing ついに来ましたね。
新規設定の銘柄コードに英文字を組み入れ、24年1月以降=証券コード協議会 銘柄コード英文字対応、けっこう難しい。int code を string code に変えて直し始めたが、底無し沼のようにエラーが出てきて今日1日を無駄にした。 >>271
ざまあみろ、ふるい落とされろ
どこへ落ちるんだ
もう底だぞ 銘柄コードに英字が入ることは2010年の時点で決まっていたことなので
Protraはバージョン2.0で文字列にしてあったんですがOmegaChartは大変そうですね AからZまでを内部的に二桁数字に置き換える対処はできないの? そのアイデア、すごい良いですね。「A」を10、「B」を11、「Z」を35とする。銘柄コード「ZZZZ」は、「35353535」と内部的には認識され、uint型の上限に収まる。 https://srad.jp/story/22/05/31/166256/
>新たに2桁目と4桁目のいずれか、
>もしくは両方にアルファベットが利用できるようにして
>コードを増やすとしている
なお
>数字と混同したりしやすいB、E、I、O、Q、V、Zは使用しないとのこと
無尽蔵さんも心配 プログラムでは、BやZを除外する必要は全くないので心配御無用です。Aのアスキーコード65から90までを処理するというものになると思いますので。
ところで、uint型にする手法ですが、これもstring型にするのと同じくらい大変だというのがわかりました。別の方法も考えてみます。 こういうのはダメかな
2A5B => 2050 + 65*1000,000 + 66*10,000 = 65662500 文字列以外だとProtraとのコード共有が難しくなるので
私がOmegaChartを保守する理由がなくなります 最悪私が何とかするので、文字列にする方向で最善を尽くしてください オメガ英文字混じりコードの対応版できました。銘柄コードは、index.txtを読み込みタイミングで連番を割り当てる仕様です。銘柄表示するまでを書いていて銘柄ダウンロードまでは手を付けていません。参考になればと思い、ソース公開しておきます。
https://drive.google.com/file/d/1NSQXXsiKTGJjTxc4h_GqtXf102g7Uwdw/view?usp=sharing 流れを見ないでコードをアップしてしまいましたが、パナコランさんの参加に支障が出るものでしたら、私のソースはスルーでお願いします。 6月分までのdata.zipいただきました。
ありがとうございます
m(_ _)m 1444 ニッソウがOBSになってるのは何でだろう?
1444,ニッソウ,T1,100,OBS,S:20200929:2
1444,ニッソウ,TG,100,S:20200929:2 panacoranです
東証PROマーケットのときにT1として登録
名証に変更したときに上場廃止扱い
25日に東証に再上場したけれども、まだ優先市場が名証なので上場廃止扱い
東証での取引が増えてくればOBSが外れてTGになるでしょう
東証と名証の重複上場のときは、
名証が優先市場でも東証で登録してほしいという要望が過去にあり、
対応したこともありましたが今はお断りしています ここにいる人は真面目な感じだから聞いてみたい
専業トレーダーが生命保険に入れるのかですか?
無理ですよね
職業になんて書いていいかわからないです 無職でも資産があれが加入できるけど、そもそも資産あるなら生命保険に加入する必要がありませんね。 >>298
負けてます
嘘ついたら、サギになりますし、もうどうしょうもないです
今までやっていた保険の支払い済みのカネで次の保険を買い切る方法をやることにしています。
ですから、そのカネはもう生保側にあるんですが、申込書は書かねばならず、
おいつめられました。
若い人には言っておきたいです。
会社に入ったときに気軽に保険に入っちゃだめですよ。
いつまでも会社にいられるとは限らない社会ですから、無理して保険に入らないで自分で積み立てておくほうがいいですよ。 生命保険は平均より早死にすれば利益。長生きすれば損という
金融商品だと思えば良い
競馬パチンコと同じ胴元の掠め取りもあるから平均して損になる
生命保険代と同額を自分銀行に積みたてれば手数料なし掠め取りなし ソフトウェア板は2年くらい書き込みなくても落ちないから、保守は不要。 重複上場 2022/09/28
1438,岐阜造園,TS,100 本日一瞬でもストップ高やストップ安をつけた銘柄をスクリーニングしたいんだけどいい方法ありますかね? ソフトを終了するとチャートの設定が初期化されてしまうんですけど、何が原因ですかね? Yahooだとエラーになりますね。
2022/11/17 18:21:10 : 株価の取得に失敗しました。時間を置いて再試行してください。: 20221114~20221117
場所 Zanetti.DataSource.Specialized.YahooDataSource.Run()
場所 Zanetti.DataSource.DailyDataSource.Process() 新しい規制の様ですね 少し時間がたつとバンされます 現状バンされるまでに3000位は拾えるから残りはどこかで補充
有志の非同期ソースを利用して残りの個別銘柄も補填できる Yahooからの取得少しいじってみたのですが、これは厳しいですね Yahooのダウンロード除けを回避する変更をpushしました
1日1回なら完走すると思うのですがどうでしょう? >>318
エラーなく取得出来ました。ありがとうm(_ _)m >>318
めっちゃうれしい!ありがとうございます。 PCから書き込めなくなってるな。
データ取れました。ありがとうございます。 2000番台から4000番台の11月14から18日分が取れないようです。 長い期間のスクリーニングをしてみたくて長期データを探しているのですが誰か長期データいただけないでしょうか? もう皆年取ったから昔と同じような質問に答える事は無いだろうね
本当に長期データが欲しければ過去スレを必死で探すしか無い panacoranさんのおかげでyahooからダウロードできるようになったけど、なぜか一部の銘柄が歯抜け状態になってしまう。
以前、途中までしかダウロードできなかった時に半分ぐらいの銘柄は取得できて、それ以外のは取得できなかったことが原因らしい。 そろそろ証券会社からもらうことも考えておいたほうが良さそうですね…。
それとは別に、Yahoo!ファイナンスに入っていれば、多少荒っぽく取得しても許してもらえるのかなあ? 2237,2238は表示されたり、表示されなくなったりしますが例の銘柄制限手法と関係あるんでしょうか Chart GTP でOmega Chart について聞いみたがあまりまだ勉強がたりない。Bingの方が良く回答出来るようです。AIに勉強させてより良いOmega にしょう。できるかな? ChatGPTは拡張キットを聞いてもpinescriptしか返してこないな
Bingはまだ使えないから知らん 今日ChatGPTは、大分賢く成ってきていました。
拡張キットは、演算子等を理解しスクリプトを
書いてボリンジャーバンドを書ける様になって
いました。
拡張キットの基本default.omegaは、
簡単で古いものの様でした。
AIは、確実に早い速度で賢くなって
いました。
ソースコード等最新版はpanacoranさん
のところにあると教えたのですが
AIは、cookieの解除ができない様で
入れませんと言っていました。 無尽蔵からだと5/8までは更新されるのに、今日の分が更新されないけど、どうしてだろう? 無尽蔵の過去データに問題があって、5/9分のみに日付データが2列あるのが原因のようです。 ヤフーからダウンロードできなくなってるけど、俺だけかな? 最近のデータなら問題ないけど、2ヶ月前からの取得をやろうとするとダウンロードできないね 三ヶ月おきデータリフレッシュありがとうございます。 8585 オリエントコーポレーションの2022年9~10月ごろの株式併合は、皆様のオメガチャートだと適切に表示されておりますでしょうか? >>357
indexファイルのダウンロード使ってますけど、それだとされてないですね panacoranです
2022年の株式併合が落ちていたので足しておきました。 >>1
最新ビルド版abec951を利用させて頂いてます。
>ツールメニュー、>キー割り当てのカスタマイズ、>銘柄を表示順で移動、この項目だけが何を設定してもそのキーで操作できません。
皆様は動作しますか? 3ヶ月ことにdataうpしてくれてる方、いつも使わせていただいています
ありがとうございます。
質問なのですが、いくつかの銘柄で
2022.12.30の後に2023.1.4のdataに続くのではなく
2022.12.30の後に2022.10.3〜2022.12.30のdataがダブリ掲載されてますか?
とりあえず2914で見かけましたが、他にもちょこちょこあるようです。
来年から英字表記加わるけど、omegaはどうなるんでしょ >>365
最新dataダウンロードしてみましたが、かなり多くの銘柄で重複があるようですね。
いずれ修正されるでしょうが、応急処置として次のコードを(自己責任で)試してみてください。
メニューの「サポート」-「リロード」はほとんど使わないと思うので、Command,csの863行付近
public static CommandResult Reload(IIndicatorCustomizer ic)
をコメントアウトして次のコードに変更してコンパイルしてみてください。
使い方は、重複がある銘柄が表示されている画面で、「サポート」-「リロード」を実行します。
実行後に重複が解消されたチャートが表示されると思います。
ファイルのデータを日付順にソートして、同一日のデータは後から読み込んだデータで上書きしてファイルセーブする仕様です。
データの抜けがあるかどうかまではチェックしません。
以前コードをintからstring文字列に変更して米株もシンボルで扱えるように改変したことがありますが、変更箇所が多すぎてかなり大変でした。
JPXの「証券コードへの英文字組入れ」によると、先頭と3文字目は数字の4桁英数字のコードにするようなので、
Omega内部のAbstractBrand.Codeに1000未満の指標コードは現行の3桁整数で、1000以上のコードを1文字2桁のアスキーコード変換した8桁整数で内部変換で渡し、AbstractBrand.CodeAsStringプロパティにファイル名を保持させてファイルにアクセスできるように試してみたところ比較的少ない変更で4桁文字列コードの表示は可能でした。
BrandBookMarkPainも文字コードで表示され、キーボードで4桁英数コードを入力することでも銘柄変更が可能です。
データダウンロードに不具合が出ないかどうかはわかりませんが public static CommandResult Reload(IIndicatorCustomizer ic) {
int code = Env.Frame.ChartCanvas.GetBrand().Code;
string filepath = Util.GetDailyDataFileName(code);
byte[] buffer = Env.Frame.ChartCanvas.GetBrand().ReserveFarm().RawDataImage;
SortedDictionary<DateTime, int[]> prices = new SortedDictionary<DateTime, int[]>();
if (buffer != null) {
int recCount = buffer.Length / 32;
for (int i = 0; i < recCount; i++) {
int[] price = new int[8];
for (int j = 0; j < 8; j++)
price[j] = BitConverter.ToInt32(buffer, i * 32 + 4 * j);
if (DateTime.TryParse(price[0].ToString("0000/00/00"), out DateTime d))
prices[d] = price;
}
} byte[] buf = new byte[prices.Count * 32];{
int i = 0;
foreach (int[] price in prices.Values){
for (int j = 0; j < price.Length; j++){
byte[] byteArray = BitConverter.GetBytes(price[j]);
for (int jj = 0; jj < 4; jj++)
buf[i * 32 + jj + 4 * j] = byteArray[jj];
}
i++;
}
}
using (FileStream fs = new FileStream(filepath, FileMode.Create)){
using (BinaryWriter w = new BinaryWriter(fs)){
w.Write(buf);
}
}
RefreshChart();
return CommandResult.Succeeded;
} >>366-368
ご親切にも詳細まで対策書いていただいて
ありがとうございます。
初心者ですがゆっくりやってみます。 証券コード英文字組入れ対応(案)
しばらく見ていなかったので6月ごろにすでに書き込みがあったようですが、自分の案も公開させてください
- index.txtのコード及びデータファイル名は4桁英数文字コード
- 現行の銘柄と指標のコードは変更ないが、index、ファイル、Bookmarkのコードは文字列として扱われる
- 2024年のIPOからは英大文字入りコードが追加されるらしい
- index.txtの読み込みの段階で、1000以下の指標はそのままの3桁整数コードで、加えて4桁銘柄コードは
8桁のAsciiエンコード整数値でbrandcollectionに内部保持される
例:6758 -> 54555356、 9A3Y -> 57655189
- メニューの「移動」「銘柄コードを指定」あるいはチャートキャンバスに直接4桁文字列コードを入力(指数は先頭0を追加)することで、4桁文字銘柄は8桁整数変換してbrandcollectionのコードを検索して、存在すれば8桁整数を4桁文字列に再デコードして文字列コードのファイルにアクセスする仕組み
ソースコードの変更点は、
1 util.csにAsciiと8桁整数の相互変換関数を作成、GetDailyDataFileNameでAsciiデコードした文字列を返すように変更
2 brand.csのCodeAsStringプロパティをAsciiデコードした文字列を返すように変更
3 brand.csのBrandCollectionのLoadでindex.txtの文字列コード読み込みでAsciiエンコード整数変換してbrandcollectionに追加保持
4 DecupleData.csのIsDecoupled()でソフトバンクコードをAsciiエンコード8桁整数変換
5 CodeBox.csでIsInterestingCharとOnKeyPressにおいて英文字を扱えるように変更 1 Utility.cs
1-1 internal class Util に以下2つの関数追加
public static int AsciiEncode(string code)
{
char[] chars = code.ToCharArray();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < chars.Length; i++)
{
sb.Append( Convert.ToInt32(chars[i]).ToString("00"));
}
return int.Parse(sb.ToString());
}
public static string AsciiDecode(int value)
{
string str = value.ToString();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
if (i % 2 == 1)
continue;
int val = int.Parse(str.Substring(i, 2));
sb.Append( Convert.ToChar(val));
}
return sb.ToString();
}
1-2 public static string GetDailyDataFileName(int code)のelse以下を以下のように変更(196行付近)
else
return Env.GetAppDir() + "data\\" + Util.AsciiDecode(code); 2 Brand.cs
2-1 line:165 public string CodeAsStringを以下に変更
public string CodeAsString {
get {
Debug.Assert(_code <= 57895789); //9Y9Y = 57895789
if(_code < 1000) {
return _code.ToString("0000");
} else {
return Util.AsciiDecode(_code);
}
}
}
2-2 BranCollectionの public void Load(string filename) (496行付近)
の int code = Int32.Parse(d[0]); を以下に変更
int code = Util.AsciiEncode(d[0]); 3 DecupleData.cs
private static bool IsDecoupled() 29行付近内部を以下に変更
var farm = Env.BrandCollection.FindBrand(Util.AsciiEncode("9984")).CreateFarm(ChartFormat.Daily); // ソフトバンクでテスト
4 CodeBox.cs
4-1 private bool IsInterestingChar(char ch) 39行内部を以下に変更
return ('0'<=ch && ch<='9') || ((int)ch >= 65 && (int)ch < 90) || ((int)ch >= 97 && (int)ch < 122) || (int)ch==8 || ch=='\n';
4-2 protected override void OnKeyPress(KeyPressEventArgs args) 45行付近を以下に変更
protected override void OnKeyPress(KeyPressEventArgs args) {
base.OnKeyPress(args);
char ch = args.KeyChar;
if('0'<=ch && ch<= '9' || ((int)ch >= 65 && (int)ch < 90) || ((int)ch >= 97 && (int)ch < 122)) {
if(this.Text.Length==3) {
_code = this.Text.Substring(0,1) == "0" ? int.Parse(this.Text + ch) : Util.AsciiEncode((this.Text + ch).ToUpper());
if(CodeComplete!=null) CodeComplete(this, args);
}
}
else if(ch=='\n') {
_code = Int32.Parse(this.Text);
if(CodeComplete!=null) CodeComplete(this, args);
}
} テスト方法
1 任意の銘柄データファイルを複製してファイル名を1A1Aとする
2 index.txtに「1A1A,証券コード英文字組入れ,T1,100」と1行追加
3 修正コンパイルしたOmegaChartを起動して、コードBoxを表示させて「1A1A」と入力 諸先輩方、ありがとうございます。
2つの案ともに、アルファベットを数字に読み替えることでstringではなくてintとして扱うため、
書き換える箇所を少なくして対処可能ということなのでしょうか? >>375
VisualStudioで「int code」で検索してみるとわかると思いますが、数多くのファイルがint変数を利用しています。
KenMille.csなど現在使用されていないファイルも数個ありますが、オリジナルを尊重しつつ変更労力を少なくするには銘柄一覧を内部保持するBrandCollectionはintで扱うのがベターかと思います。
なお、データダウンロードに関しては、「Yahoo.cs」「Mujinzou.cs」「Edatalab.cs」のコードの一部変更も必要になると思います。 fchartもついに終わってしまった?サイト繋がらない
Tradhingviewも無料制限あるし
無料ソフトの時代は終わりか
時代はサブスク・・・ Fchartはサーバーエラーとの告知があります。
もうしばらく、ご辛抱を・・・ マザーズ指数、終了。
次は、東証グロース市場250指数、の採用ですね。 要望書
次、変更してほしいこと
・業種別指数の自動更新(0501〜0533)
・ドル円の自動更新
・エンベロープの標準搭載
・ボリンジャーバンドの3σ表示
・バックテスト機能
よろしくお願いします 文字コード対応していただければ十分ですよ。(多くは望みません) 諸先輩方、panacoranさんにかねがね感謝しております 私は多くを望みます
理由としては簡単に対応できるはずだからです
1つにつき1分ほどでできるはずです
(バックテスト以外) ・業種別指数の自動更新(0501〜0533)
・ドル円の自動更新
・エンベロープの標準搭載
・ボリンジャーバンドの3σ表示
この4つは自分で設定してるのでできてますが、
ビルドするたびに1から設定しないといけません
みんなもそうでしょう
めんどくさくないですか?
なので最初から標準装備をお願いします 最近ヤフーで良くはじかれるまた何かやったみたいだね panacoranさん
OmegaChartのソースコードが有る
OSDN は最近売却され、それ以来
Web サイトにアクセスできなく
なっています。
移行先が「SourceForge」や「GitHub」
がある様でが移行先をお知らせください。
よろしくお願いいたします。 OmegaChartのソースコードだけでなく
indexのDLもOSDNのアクセスで得てる
様ですね。 panacoranさん、諸先輩方に関しましては常々感謝しております。 panacoranさん、最近ここを
見ていないのかな?? panacoranさんに見捨てられたらこのソフトもうダメじゃね panacoranさんの最後のコメントが2023/07/16(日) 。誰かこの時点のソースをアップしてください。自分が持ってるのは、OmegaChart-433dcd4で1年前くらいのバージョンだと思う。文字列対応もそろそろやっておかないといかんしな。 >>0407
Webは、まともに進まいのですが
https://ja.osdn.net/users/panacoran/pf/OmegaChart/wiki/FrontPage
で開くと下の方にOmegaChatがありクリツクすると
433dcd42は、2022-04-05で次に最新版でabec9518
2022-12-15 です。
abec9518をクリックすると
modified: Yahoo.cs (diff)出てくるのでYahoo.cs
クリックするとYahoo.csの内容が元形式でダウンロードで
ダウンロードできます。これだけ差し替えれば良いと思います。 とりあえず、動くバージョンできた。元ソースの433dcd4も一応つけて置いた。
//☆文字列込み銘柄コード対策
ttps://drive.google.com/file/d/1cnsaJjavhtQpPlIKoukS_lgxeRCShZWs/view?usp=drive_link あ、探していただいたようですみません。古いバージョンで作ってしまいました。 ていうか自動でindex.txtをアップデートするスクリプトとか書いたら需要があるのかね?
まー自分のためにしか書く気はないわけだが indexファイルが取得できなくなって1週間
困ったね これだけネット証券のツールが進化すると、
オメガチャートの役目も終わったかな
株価取得できなくなったら本当に終わりだね ■ このスレッドは過去ログ倉庫に格納されています