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/ 証券コード英文字組入れ対応(案)
しばらく見ていなかったので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週間
困ったね これだけネット証券のツールが進化すると、
オメガチャートの役目も終わったかな
株価取得できなくなったら本当に終わりだね ■ このスレッドは過去ログ倉庫に格納されています