OmegaChartスレ ver.11

■ このスレッドは過去ログ倉庫に格納されています
2018/10/12(金) 16:06:42.77ID:xz6O6ruA0
会則
@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.10
https://egg.5ch.net/test/read.cgi/software/1488866170/
2019/05/26(日) 22:25:55.60ID:iCMgYIjC0
>>547
downloadorder.csの方がどこをいじっていいのか分かりません。
ただ34行、39行、173行にkenmilleを追加しても駄目ですよね?
ちょっとやってみた感じでは_dateArrayでエラーが出てしまう。。
553名無しさん@お腹いっぱい。
垢版 |
2019/05/26(日) 23:56:07.09ID:oCn4TG5n0
訂正
>>548ではなく
>>549
場中の監視にはOmegaよりGMO証券のFXプラチナチャート+だね
サイズが大きいのが難点だが起動時にページのサイズを小さくすると解決する
554名無しさん@お腹いっぱい。
垢版 |
2019/05/27(月) 05:57:36.36ID:lgAzcOdb0
>>552
omegachartuser さんのDreamvisor対応に従ってkenmileを書き換える必要もありますよ
2019/05/27(月) 22:10:42.67ID:FNUMSzvy0
>>554
やってみたのですが、yahoo.csの347行で「変数 'skip' は割り当てられていますが、その値は使用されていません。」という警告が出てしまいます。
downloadorder.csの方は問題ないようです。
2019/05/27(月) 23:02:11.69ID:FNUMSzvy0
最初からやり直してみるとDownloadOrder.csで VariousEnumerator という部分でエラーが出てしまいます。
2019/05/27(月) 23:28:10.08ID:FNUMSzvy0
どうやらVariousの部分を何かに書き換えるということらしいけど、よくわからん。。
558名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 06:09:54.28ID:V9f0ISw+0
そういうメッセージが出るのは DreamVisor終了対応に沿ってきちんと修正していないためだと思う
最新版8b0b2d2c のコード変更箇所を見てもビルドエラーが出るような理由はなさそうだが
559名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 08:03:06.17ID:FwlJey7b0
「そんなことはとっくにやってる。」と言っていたんじゃないのか?

Yahooの警告の行番号も違うし、自分勝手に間違って変更しているだけだろ。
2019/05/28(火) 09:01:27.86ID:3qDgbrpa0
つか、自分が開発者になるわけじゃないなら普通に完成版をダウンロードさせればいいだろうに。
ここで年寄りどもにプログラマー養成でもしているつもりにでもなっているのかねw
561名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 09:31:24.50ID:T72eJEyD0
開発終了してすでに完全版といて公開されているものだから、それをありがたく使えば良いだけ。
時代の流れで使えなくなった部分は諦めればいいんだよ。

しかし、ソースコードが公開されているので努力次第で改造できるということ。
自分好みに改造したいのであれば、クレクレばかり言わずにプログラミングを勉強しろ。
562名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 11:07:14.10ID:T72eJEyD0
>>561
すまん。
年寄りの言葉に感情的になってしまった。反省。

お詫びに、omegachartuserさんのソースとは全く互換性がないけど為替とダウのダウンロードコードを書こうとおもう。

ちょっと時間ください。
563名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 12:09:37.80ID:T72eJEyD0
public static void UpdateFx() {
Dictionary<int, string> symbols = new Dictionary<int, string>() { { 201, "USDJPY" }, { 202, "EURJPY" } };
foreach (int code in symbols.Keys) {
string url = $"https://stocks.finance.yahoo.co.jp/stocks/history/?code={symbols[code]}=X";
using (MemoryStream ms = Util.HttpDownload(url)) {
string source = Encoding.UTF8.GetString(ms.ToArray());
string pattern = "<td>(\\d{4}年\\d{1,2}月\\d{1,2}日)</td>\\s{0,1}<td>([\\d,.]+)</td>\\s{0,1}<td>([\\d,.]+)</td>\\s{0,1}<td>([\\d,.]+)</td>\\s{0,1}<td>([\\d,.]+)</td>";
MatchCollection mc = Regex.Matches(source, pattern, RegexOptions.IgnoreCase);
File.AppendAllText("fx.log", $"{DateTime.Now:M-d HH:mm:ss:fff} {code} {symbols[code]} 最新{mc.Count}件\r\n");
if (mc.Count == 0) {
Env.Frame.SetStatusBarText($"エラー {code}", "ソースをファイルに保存しました");
File.WriteAllText($"error_{code}_{DateTime.Now:MMdd}.html", $"< !--{url}-- >\r\n{source}");
return;}
var farm = (DailyDataFarm)Env.BrandCollection.FindBrand(code).CreateDailyFarm(mc.Count);
foreach (Match m in mc) {
DateTime date = DateTime.Parse(m.Groups[1].Value);
NewDailyData td = new NewDailyData();
td.open = decimal.ToInt32((decimal.Parse(m.Groups[2].Value) * 100));
td.high = decimal.ToInt32((decimal.Parse(m.Groups[3].Value) * 100));
td.low = decimal.ToInt32((decimal.Parse(m.Groups[4].Value) * 100));
td.close = decimal.ToInt32((decimal.Parse(m.Groups[5].Value) * 100));
564名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 12:14:37.03ID:T72eJEyD0
>>563
farm.UpdateDataFarm(int.Parse(date.ToString("yyyyMMdd")), td);}
farm.Save(Util.GetDailyDataFileName(code));
Env.Frame.SetStatusBarText($"{code} 更新しました 最新{mc.Count}件", "");}
if (code == 201) System.Threading.Thread.Sleep(600);}
RefreshChart();
Env.Frame.SetStatusBarText("", "");}

//563と564を Command.csの494行以降(class CommandExec)に追加します。

//さらに、Download.cs(Rev.1a4c89f) 注(DownloadOrderではない方)を編集
//435行(ShowOrderGroup)に以下を追加
comboBoxSource.Items.AddRange(new string[] {"為替”、"US" });
//527行(OnOK)に以下を追加
string selectText = comboBoxSource.SelectedItem.ToString();
if (selectText == "為替") {
CommandExec.UpdateFx();
this.Close();
return;}

/*
データのダウンロードダイアログで株価データソースの為替を選択して開始ボタンをクリックするだけ。ProgressBarは機能しないが終了したらダイアログも閉じる。
例外(エラー)処理はは不完全でProgressBarも機能せず、同期処理のため終了まで固まる感じになるが、こんな感じでデータ更新できるという一つの例。
HttpClient等の非同期処理に変更するとウィンドウは固まらなくなる。
*/
2019/05/28(火) 12:29:40.35ID:EPN7n0KA0
omegachartuserですが、しばらく来ないうちに、私が書いたコードがご迷惑をおかけしていたようで、お騒がせをしております。
「DreamVisor終了対応¶」も含めて、これらはサンプルコードで、ご自由にお使いくださいというものでして、これをずっとアップデートさせていくのはちょっと違うかなと思っております。
私自身、パナコランさんなどコードから勉強させてもらい、平たく言いますとパクッて書いておる程度の者でして、それだったらPG初心者の皆様も私程度には書けるんじゃないかと思って始めたことでございます。

後場が始まってしまいますので、また後程。
566名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 12:52:32.80ID:T72eJEyD0
>>563
Command.csの36行付近に以下名前空間の追加も必要です。
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Net.Http;

omegachartuserさんが戻って来られたので、ちょっと勇み足だったかもしれません。
書き始めてしまったので、あまり参考にならないかもしれませんがダウは非同期処理サンプルとしてアップしようかと考えています。
2019/05/28(火) 12:59:44.59ID:3qDgbrpa0
    ___
   ,;f     ヽ         
  i:         i   ありがたやありがたや
  |        |  ///;ト,
  |    ^  ^ ) ////゙l゙l;   
  (.  >ノ(、_, )ヽ、} l   .i .! |   
  ,,∧ヽ !-=ニ=- | │   | .|
/\..\\`ニニ´ !, {   .ノ.ノ
/  \ \ ̄ ̄ ̄../   / .|
568名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 14:51:58.04ID:T72eJEyD0
public static async Task UpdateUsYahoo() {
int wait = 600;//銘柄間のスリープmsec
int retry = 3;//タイムアウト発生時のリトライ回数
Dictionary<int, string> dic = new Dictionary<int, string>() { { 301, "^DJI" }, { 302, "^IXIC" }, { 303, "^GSPC" } };
//Windows Chromeに偽装
string useragent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36";
using (HttpClient client = new HttpClient()) {
client.DefaultRequestHeaders.Add("User-Agent", useragent);
client.DefaultRequestHeaders.Add("Accept-Language", "ja-JP");
client.BaseAddress = new Uri("https://finance.yahoo.com/quote/";);
client.Timeout = new TimeSpan(0, 0, 0, 20);//秒
foreach (int code in dic.Keys) {
string symbol = System.Net.WebUtility.UrlEncode(dic[code]);
string url = $"{symbol}/history?p={symbol}";
string source = null;
int i = 0;
do {
try {
source = await client.GetStringAsync(url);
} catch (TaskCanceledException ex) {
//タイムアウトは継続してリトライ
} catch (Exception ex) { throw ex; }
i++;
} while (i < retry | source == null);
if (source == null) return;
Env.Frame.SetStatusBarText($"{url}", "");
string pattern = "<tr.*?<td.*?>([^<>]+)</.*?>([\\d,.]+)</.*?>([\\d,.]+)</.*?>([\\d,.]+)</.*?>([\\d,.]+)</.*?>([\\d,.]+)</.*?>([\\d,.]+)</";
MatchCollection mc = Regex.Matches(source, pattern, RegexOptions.IgnoreCase);
569名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 14:56:02.89ID:T72eJEyD0
>>568
using (StreamWriter sw = new StreamWriter("us.log", true)) {
sw.AutoFlush = true;
await sw.WriteLineAsync($"{DateTime.Now:M-d HH:mm:ss.fff} {dic[code]} {mc.Count}件 {mc[mc.Count - 1].Groups[1].Value} - {mc[0].Groups[1].Value}"); }
if (mc.Count == 0) {
Env.Frame.SetStatusBarText($"エラー {code}", "");
return; }
var farm = (DailyDataFarm)Env.BrandCollection.FindBrand(code).CreateDailyFarm(mc.Count);
foreach (Match m in mc) {
if (DateTime.TryParse(m.Groups[1].Value, out DateTime date)) {
NewDailyData td = new NewDailyData();
td.open = (int)(decimal.Parse(m.Groups[2].Value.Replace(",", "")) * 100);
td.high = (int)(decimal.Parse(m.Groups[3].Value.Replace(",", "")) * 100);
td.low = (int)(decimal.Parse(m.Groups[4].Value.Replace(",", "")) * 100);
td.close = (int)(decimal.Parse(m.Groups[5].Value.Replace(",", "")) * 100);
td.volume = (int)(decimal.Parse(m.Groups[7].Value.Replace(",", "")) / 1000);//overflow対策
farm.UpdateDataFarm(int.Parse(date.ToString("yyyyMMdd")), td);}}
farm.Save(Util.GetDailyDataFileName(code));
Env.Frame.SetStatusBarText($"{code} 更新しました 最新{mc.Count}件", "");
if (code < 303)
await Task.Delay(wait);}}}

//為替と同様Command.csに追加する
// >>564 でコードを追加したDownload.csのOnOKを以下に変更
private async void OnOK(object sender, EventArgs args)

// >>564 の追加コード CommandExec.UpdateFx(); の前に次の行を追加
this.Visible = false;
await CommandExec.UpdateUsYahoo();

//これで、301-303が非同期で更新されこの間はチャート操作可能です(ダウを表示した状態でデータ更新されてもチャートは自動更新されません)。
//これらの更新終了を待ってFXの更新に移り、この段階ではウィンドウが固まることになるはずです。
570名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 14:59:10.98ID:T72eJEyD0
>>569

ちなみに、FXを非同期に変更して、CommandExec.UpdateUsYahoo()のawaitを消すと警告が出ますがUsの終了を待たなくなるので、あたかもUsとFXが同時処理される様な挙動となります。

注意:デバッグで非同期処理でエラーが起こった場合の挙動が同期の場合と異なりエラーの場所を特定するのが困難になり、はまってしまうことが多くなります。
特に、さらにasyncメソッドを呼び出した場合などではデバッグトレースで行番号の取得ができなくなる様です。
正規表現の変更が必要になった場合は、同期処理で確認して例外処理が完了してから非同期化するのが良さそうです。
2019/05/28(火) 15:21:50.94ID:EPN7n0KA0
>>566
いえ、勉強になります。ありがとうございます。

で、続きですが、「ファイルをドロップしてデータ更新¶」というのを前に作りました。
CSVファイルにコード、日付、四本値を書いてドラッグドロップして株価更新するというものです。
この仕組みをご自身のシステムに組み入れておけば、何も手段がないよりかはマシかなと思いました。
もちろん、有志の方がご提供されているコードで問題解決になれば言うことはありません。
572名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 22:02:06.59ID:FwlJey7b0
>>571
お帰りなさい。
過去ログでなぜかがBANされたらしいとのコメント見て心配していました。

取引もしている様でちょっと安心しました。
再び新しいいアイディアを投稿されると刺激になります。
これからも、気が向いたときでいいのでOSDN更新されるのを期待しています。
573名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 23:17:50.29ID:kCN6ZPsB0
>>569
これはどこで定義?
'UpdateUsYahoo' の定義がありません
と出るのですが。
574名無しさん@お腹いっぱい。
垢版 |
2019/05/28(火) 23:35:42.07ID:FwlJey7b0
>>573
568から569の途中までを、Command.csのinternal class CommandExecの内部に入れていますか?
UpdateFx()が動いたとしたら、この前あたりにコピペすると「CommandExec.UpdateUsYahoo()」で参照できると思いますが。

Download.csにusing Zanetti.Commandsが冒頭に書かれていれば、Command.cs内部のpublic メソッドにアクセスできるはずなんだけど。
575名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 06:58:49.31ID:8V0jwa0w0
くそみたいな>>560なんぞにくれてやると図に乗るだけだよ
576名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 08:22:30.02ID:d87uIgU+0
ヤフーでダウンロードすると、基礎になる接続が閉じられました ってエラーが出るんですけど、これ何なんでしょうか?
577名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 09:05:49.93ID:XuUWLcKV0
>>576
もしも、>>568のことを言っているのであれば
データ取得に時間がかかりすぎてタイムアウトが短すぎるのかもしれない。
client.Timeout = new TimeSpan(0, 0, 0, 20);//秒
の行をコメントアウトして見て下さい。
デフォルトタイムアウト100秒になるはずです。

これでもダメならわかりません。
578名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 10:03:22.81ID:d87uIgU+0
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー ファイル MainFrame.resx を処理できませんでした。インターネットまたは制限付きゾーン内にあるか、ファイルに Web のマークがあるためです。これらのファイルを処理するには、Web のマークを削除してください。 zanetti

とエラー出てコンパイルできないんですが、これは何なんでしょうか?
579名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 10:08:10.04ID:d87uIgU+0
今度はコンパイルは成功しますが、bin/Releaseの中が空っぽで何もない....
580名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 10:20:58.96ID:XuUWLcKV0
>>579
ググって調べて見て下さい。
581名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 10:25:24.90ID:XuUWLcKV0
>>478
>>492 にも同じ話題がある
582名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 10:26:56.88ID:XuUWLcKV0
>>581
>>478>>578の間違い

>>578は過去ログをチェックして見て下さい
583名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 10:32:15.78ID:d87uIgU+0
>493 で解決しました。

あと、オリジナルソースでコンパイルすると、株価が10倍で表示されるのですが、何がおかしいのでしょうか?
584名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 10:39:30.78ID:d87uIgU+0
オリジナルソースコードをコンパイルして、株価データをダウンロードすると、その部分だけ、10倍になります。

今まで、オリジナルソースコードをずっと使っていました。
585名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 11:38:01.19ID:XuUWLcKV0
>>584
オリジナルとは何?

想像するに、 panacoranさんのnormal-dataバージョンのことでしょうか?
これだけでコンパイルしているのではなく、Yahoo.csなど一部新しいファイルに置き換えているのでは?

最近の panacoranさんのソースは個別は10倍化固定と思います。
確認まではしていないので、更新したデータソースのファイルのコメントを読んで見るのがいいかもしれません。
586名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 12:24:09.94ID:d87uIgU+0
>>585
そうです。ノーマルデータバージョンで新しいファイルに置き換えています。

去年11月にコンパイルした時は、普通に表示されました。
587名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 12:59:08.77ID:XuUWLcKV0
>>586
panaceanさんはノーマルデータに対するバージョンアップはしていないのだと思います。

自分である程度コードを理解できなければ、ノーマルコードのままファイル変更は禁止と考えたほうが良いです。
コンパイルエラーで実行ファイルができなければよかったのですが、10倍化以外にも不具合が出る可能性もあります。

対処法、@からBのいずれかが思いつく。データをバックアップすること(最悪戻らないこともある)
@ panacoranさんのnormal-dataバージョンに全て戻してコンパイルし直す(新たな機能は諦める)

AYahoo.csであれば、189行を
var shift = IsIndex(code) ? 100 : 1;
に変更する
すでにダウンロードしたデータが戻るかは?
edatalab.csを変更していなければ、データソースで日付を指定して試すのが良いかも
Aは他の不具合が発生する可能性もあるので、コードを読めない人はやめたほうがいい。

B全体を最新ソースに変更してコンパイル
確信はない。
edatalab.csなどで異常日に遡り再ダウンロードすれば正常化する様な気がするが、自信はない。
ダメであれば、過去データを諦めること。
588名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 13:12:49.33ID:d87uIgU+0
>>587
ありがとうございます。
あと、
303名無しさん@お腹いっぱい。2017/11/18(土) 20:16:18.53ID:yltEXmxU0>>304
楽天RSSから株価取得するサンプルコードです。
ttps://osdn.net/users/omegachartuser/pastebin/5672

このコードをオメガに追加して、NDdeを参照か、NuGetから呼び出し
DownloadOrderから、これを呼び出すだけで一応は動くと思います。
うちの環境で処理時間30分くらいかかりました。
処理日を過去にしたときの対応は書いてません。ご注意を。


これをコンパイルしてみたんですが、楽天RSSで株価DLさせてみると、楽天RSSが起動していません とエラーが表示されます。

NDde.dllに問題があるのでしょうか?
2019/05/29(水) 15:37:47.31ID:+EcK4vh50
>>588
ヤフーファイナンスに蹴られる件は、.NET Frameworkのバージョンを4.7.2に上げてみる

RSSの件は、RSSが動く基本条件は、マケスピの起動とRSS.exeの常駐起動が条件です。
RSSに関しての基礎知識に関しては以下のサイトでご確認ください。
https://www.rakuten-sec.co.jp/MarketSpeed/onLineHelp/msman1_11.html
590名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 19:06:34.49ID:tfYMPdUP0
Command.csの36行付近に下記を記載していますが
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Net.Http;
httpsとか大文字小文字等変更しましたが
この様なエラーメッセージがでます。

Command.cs(39,18,39,22): error CS0234: 型または名前空間の名前 'Http' が名前空間
'System.Net' に存在しません (アセンブリ参照があることを確認してください)
591名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 19:11:45.46ID:mqlE9t9u0
>>590
ソリューションエクスプローラーの参照から「System.Net.Http」を追加してください。
592名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 20:48:33.31ID:mqlE9t9u0
>>568
ソリューションエクスプローラーでSystem.Net.Httpへの参照も追加してください。
2019/05/29(水) 21:43:20.34ID:iL/+kuDx0
>>589
RSSは、昔作ったRSS対応オメガがちゃんとデータを取っているので、ちゃんと動いているようです。(´・ω・)

動かない理由がよくわかりません、
594名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 21:57:37.40ID:tfYMPdUP0
>>563
>>590
>>591
どうもありがとうございました。無事にインストール出来ました。
早速為替、Dau、Nasdaq、SP500のデータ取った処
1月3日から為替、US指数は終値だけだつたのがローソク足になった
のは良いのですが5月7日Dreamvisorが止まった日から
昨日28日までが日にち順が逆転しチャート幅が縮まり描かれています。
5月7日からデータ順が逆になって入力変換されている様です。
これは何故でしょうか? 

上記と関係無いと思いますがビルト時に下記のメッセージが出ていました。

Command.cs(564,58,564,60): warning CS0168: 変数 'ex' は宣言されていますが、使用されていません。
595名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 22:48:05.71ID:mqlE9t9u0
>>594
思い当たる原因は察しがついていますが、

@為替はどうですか
A5/7からの日付順を教えてくれませんか?
Bまた、チャート幅がチャート幅が縮まりとはどんな状態でしょう?


なお、warning CS0168はエラーではないので無視してください。
気になるようであれば
catch (TaskCanceledException ex) {
Console.WriteLine(ex.Message);//タイムアウトは継続してリトライ
とでも変更してください。
596名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 23:31:05.96ID:mqlE9t9u0
>>563 >>564 >>568 >>569 修正が必要です
日付順に不具合が発生したようです。

為替、Usともに
var farm = (DailyDataFarm)Env.BrandCollection.FindBrand(code).CreateDailyFarm(mc.Count);
から、約9行下の
farm.Save(Util.GetDailyDataFileName(code));
の間を以下のように変更してください
*** UpdateFx()の場合は出来高ないので、td.volume = ... の行は必ずコメントアウトしてください

SortedDictionary<DateTime, NewDailyData> prices = new SortedDictionary<DateTime, NewDailyData>();
foreach (Match m in mc) {
if (DateTime.TryParse(m.Groups[1].Value, out DateTime date)) {
NewDailyData td = new NewDailyData();
td.open = (int)(decimal.Parse(m.Groups[2].Value.Replace(",", "")) * 100);
td.high = (int)(decimal.Parse(m.Groups[3].Value.Replace(",", "")) * 100);
td.low = (int)(decimal.Parse(m.Groups[4].Value.Replace(",", "")) * 100);
td.close = (int)(decimal.Parse(m.Groups[5].Value.Replace(",", "")) * 100);
//UpdateFx()では以下はコメントアウトしてください
td.volume = (int)(decimal.Parse(m.Groups[7].Value.Replace(",", "")) / 1000);//overflow対策
prices[date] = td;}}
var farm = (DailyDataFarm)Env.BrandCollection.FindBrand(code).CreateDailyFarm(mc.Count);
foreach (DateTime date in prices.Keys) {
farm.UpdateDataFarm(int.Parse(date.ToString("yyyyMMdd")), prices[date]);}
farm.Save(Util.GetDailyDataFileName(code));


なお、今気が付きましたがUsYahooの時系列は、当日ザラ場中のデーターも加えられているようです。
597名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 23:45:30.20ID:tfYMPdUP0
>>595
@為替も逆転チャートになっています。
A5月6日、28、24、ーー9、8日、7日
Bローソン足幅は同じですが縦線が毎日入っていて
 格子状に見えます。日付がこの毎日付いて2019年
 の2だけが連続しています。
598名無しさん@お腹いっぱい。
垢版 |
2019/05/29(水) 23:49:58.35ID:mqlE9t9u0
>>594
不具合で迷惑かけてすみませんでした。
日付ソートせずに、こちらで試した時には問題なかったので確認不十分でした。
念のためバックアップとして、表示のおかしい銘柄をそれぞれcsvでエクスポートしておいてください。
あるいは、201-303までのファイルを別フォルダにコピーしても良いです。

596を読んで、コードを変更してみてください。

これでビルドして再度為替を実行してみてください。
可能性は低いかもしれませんが、うまくいけばダウンロード済みデータ修正されるかもしれません。

チャート表示があいかわらずおかしければ教えてください。
データ修正方法を考えますのでちょっと時間をください。

もしかすると、修正したcsvをomegachartuserさんのドラッグドロップで修正を利用すれば治るかもしれません。

** 米国ザラバ中に更新するとダウなどは確定値ではありませんが、引け確定後に更新すると過去データは上書きされるので確定値になるはずです。
599名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 00:18:49.78ID:jdeeDFR50
>>597
データ修正方法を思いつきましたので、日中にはアップできそうです。
もしもチャート表示が正常に戻ったのであれば教えてください。


レスの投稿は行と文字制限があるため、少しでもコードを短くしようとした結果不具合になってしましました。
600名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 01:13:52.34ID:jdeeDFR50
//日付データ順の修正 >>597
public static CommandResult DateSeriesFix() {
AbstractBrand br = Env.Frame.ChartCanvas.GetBrand();
byte[] buffer = br.ReserveFarm().RawDataImage;
SortedList<DateTime, int[]> list = new SortedList<DateTime, int[]>();
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 date))
list[date] = price;}
string filename = Util.GetDailyDataFileName(br.Code);
byte[] buf = new byte[list.Count * 32];
{int i = 0;
foreach (int[] pr in list.Values) {
for (int j = 0; j < pr.Length; j++) {
byte[] byteArray = BitConverter.GetBytes(pr[j]);
for (int jj = 0; jj < 4; jj++)
buf[i * 32 + jj + 4 * j] = byteArray[jj];}
i++;}}
using (FileStream fs = new FileStream(filename, FileMode.Create)) {
using (BinaryWriter w = new BinaryWriter(fs)) {
w.Write(buf);}}
RefreshChart();
return CommandResult.Succeeded;}
//使い方 CommandExecのAboutBox()の前に上記コードをコピペ
//AboutBox()の内部1行目あたりに以下を追加
DateSeriesFix();
//日付の異常ある銘柄を表示してヘルプからバージョン情報をクリックすると表示銘柄のみデータが更新されます。
//これを銘柄を変更しながら繰り返す 念のため修正したいデータファイルを別フォルダにコピーしておくこと
2019/05/30(木) 05:00:02.13ID:GNgY+cOf0
>>593
今試してみたんですが、動きますね。データ更新されました。
(私の環境は、Win10、Visual Studio 2017、 .NET Framework 4.7.2)

ちなみ、ダウンロードする際、複数日ダウンロードしようとするとエラーになりますが、RSSですので当然の結果であり、そこはサンプルコードということでご容赦ください。
2019/05/30(木) 05:01:15.28ID:GNgY+cOf0
>>601
ベースとなるソースのバージョンは、8b0b2d2です。
603名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 06:08:20.73ID:wvCnz3C80
>>601
エラー RSSが起動していません と出ます。

NDdeを参照か、NuGetから呼び出し

これがよくわからないんですが、NDde.dllをオメガのフォルダにコピーして参照すればいいんでしょうか?

NuGet とは?よくわかりません。
604名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 06:09:46.45ID:wvCnz3C80
>>601
環境は、Visual Studio 2019 以外は一緒です。

何とかして動かしたいです。
605名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 07:29:58.84ID:jdeeDFR50
>>600
修正が終了したら、AboutBox()に追加した
DateSeriesFix();
を削除してください。

本来であれば、メニューあるいはキーボードショートカットに追加するのですが説明が面倒なので,
ほとんど利用しないだろうと思われるメニューを拝借しました。
606名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 07:36:34.03ID:jdeeDFR50
>>603
なんでググらないの?
607名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 07:44:13.34ID:jdeeDFR50
>>603
nuget ndde
だけでいくつか日本語ページがヒットして
中には懇切丁寧に画像付きで説明してるページもある
2019/05/30(木) 08:15:01.19ID:ys2J9CqZ0
必要最低限のことは自分で調べてそのうえで分からないことを質問するようにしよう!
2019/05/30(木) 10:28:25.78ID:wvCnz3C80
>>607
ndde.dllを参照しなくていいということでしょうか??( ´Д`)?
610名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 10:36:03.13ID:wvCnz3C80
>>608
もちろんググってはいるのですが、わかりません。
611名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 11:05:55.74ID:vghSTvTy0
>>609
なんでコピーして参照するの?
ググったページを参考に参照するあるいはNugetパッケージマネージャーで「ndde」を検索してインストールすれば使えるのでは?

自分は楽天RSSは使うつもりがないので間違っているかもしれないけど、
ググったページをよく読んで見たら解決しないかな?
612名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 11:20:10.63ID:vghSTvTy0
>>609
もしかして、ちゃんと楽天RSSをインストールしたディレクトリのdllを直接参照してマーケットスピードとRSSを動かしている状況でもエラーが出るのであれば、何か別に原因があって動かないのかもしれない。

この場合は、dllの参照を一度削除してから、
VSの「ツール」「NuGetパッケージマネージャー」「ソリューションのNuGetパッケージマネージャーの管理」
と辿れば、左上の参照をクリックして、その下の検索ボックスで「ndde」を検索すると一つだけヒットするのでこれを選択してインストールして見てください。

ググったらたくさん情報があるとはこの操作のこと。
ddlを手入力で参照しなくてもインストールの過程でダウンロードと参照を勝手にしてくれるはず。

これでも解決しなければ、dllそのものの問題かマシンの問題と思うので解決は困難です。
613名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 11:32:47.80ID:vghSTvTy0
>>609
当然確認していると思うが、エクセルではRSSが機能しているんだよね。
エクセルで動いているのであれば、楽天に確認してもダメだろうね。

DDEは古い技術なのでいつサポートが切れてもおかしくない。
もしかするとVS2019でサポート外になっているとか?
omegachartuserさんはVS2017で動いているようだから、VS2017または2015でコンパイルして見るのも良いかもしれない。
614名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 11:34:00.48ID:wvCnz3C80
>>612
NuGetを使おうが使うまいが、同じdllを参照するということでしょうか?
2019/05/30(木) 11:41:59.79ID:GNgY+cOf0
割り込みすみません。

質問者さんは、Nugetでnddeのインストールは既に行ったということでしょうか?
616名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 12:04:37.70ID:vghSTvTy0
>>614
そういう意味ではありません。

おそらくRSSが起動していればdllがどこにあろうとも動くとは思うのですが、NuGetを利用すればおそらくdllも新たにインストールされて適切に参照を追加してくれるということです。
手入力で問題を起こしていたり、ソリューションエクスプローラーで参照のエラーマークが出ている場合もあります。

手入力参照がダメだったのであれば、一度参照解除してNuGetを試してくださいということです。
DDEはわかりませんが、ライブラリによっては他の参照も必要な場合があり、NuGetはそれを全てしてくれます。
Nugetでもうまくいかないかもしれませんが、諦めるよりはいいのでは?
617名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 12:13:25.21ID:vghSTvTy0
>>614
>>603 で「RSSが起動していません」であればdllの参照はうまくいっている可能性も高いかもしれません。
逆にいうとRSSを動かしていないように疑われます。

@マーケットスピードを実行しているか?
A楽天RSSを実行してタスクトレイで起動中か?
Bエクセルではデータが取得できているか

これらを教えてもらえませんか?
618名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 12:36:24.25ID:wvCnz3C80
>>616
わかりました。とりあえずそれを試してみます。

ありがとうございます。
>>617
@ABはすべてクリアしています。
619名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 12:39:54.18ID:vghSTvTy0
>>618
これは難しいかも。

DDEはセキュリティ上の問題がありうるはずなので、アンチウイルスソフトでブロッキングされている場合もないとは言えません。
また、WindowsUpdate等のセキュリティ更新で機能の変更などといったこともありうるかも知れません。
この場合は、エクセルでデータも取得できないと思うのでハズレかな。

エクセルでデータ取得できているならば、アンチウイルスの可能性は低そうですが、アンチウイルスオフは一度試して見てください。
これでも機能しないならば、残念ながらお手上げです。
海外も含めて、DDEで類似したトラブルがないか地道にググって見るしかないかも。
620名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 14:05:29.87ID:wvCnz3C80
>>619
NugetからNDdeをインストールし、Releceの中に出来たファイル全てオメガチャートのフォルダにコピーしたら動くようになりました。

どうもご丁寧に教えていただき、ありがとうございました。
621名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 14:09:39.30ID:wvCnz3C80
>>615
作者の方でしょうか?どうもありがとうございます。
これがあると夜7時を待たずに株価取れるので助かります。

DLに時間がかかるので、DLの途中で株価が更新されるとなおよいのですがw
622名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 15:02:36.93ID:wvCnz3C80
それでも最初のDLはまだ、RSSが起動していませんのエラーが出ます。2度目で始まりますが。
やはり相性が悪いのでしょうか。。
623名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 16:20:12.21ID:1lRcuW3t0
>>597
昨晩は、いろいろ遅くまでありがとうございました。
為替、US指数が逆転すると申したものです。

US指数は正常に出来ましたが為替が取れませんエラーになります。
Omegachartのエラーメッセージが下記の様に出ます。
これは何でしょうか?

Command.cs:行 529ここはオバーフォロー対策の処の様です。
td.volume = (int)(decimal.Parse(m.Groups[7].Value.Replace(",", "")) / 1000);//overflow対策

************** 例外テキスト **************
System.FormatException: 入力文字列の形式が正しくありません。
場所 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
場所 System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)
場所 Zanetti.Commands.CommandExec.UpdateFx() 場所 D:\OmegaChart\Omegachart-7bob2d2\Command.cs:行 529
場所 Zanetti.Forms.DownloadDialog.<OnOK>d__53.MoveNext() 場所 D:\OmegaChart\Omegachart-7bob2d2\Download.cs:行 537
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
624名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 16:38:58.60ID:vghSTvTy0
>>623

為替の場合のみこの部分をコメントアウト(先頭に//を加える)または削除してください。
td.volume = (int)(decimal.Parse(m.Groups[7].Value.Replace(",", "")) / 1000);//overflow対策

コメントしたつもりですがわかりにくかったようですね。
米国ファイナンスは、1.日付 2.始値 3.高値 4.安値 5.終値 6.調整終値 7.出来高の列があり、出来高で7列目も読んでいます。
しかし、日本のファイナンスの為替には5列だけで出来高の列がないのに、テーブルの列数を超える列番号を読もうとしてエラーが出ているのです。

それぞれ別に書けばよかったのですが、違うのがこの1行だけなのであのような書き方をしました。
625名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 17:41:56.34ID:1lRcuW3t0
>>624
ありがとうございました。
早速//を加えました。

為替も正常にデータ取得できました。

出来れば様子を見てpanacoranさん
に変更依頼をして頂ければ
皆さんが早急に簡単変更出来る
と思いますので宜しくお願い致します。
626名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 17:54:10.14ID:jdeeDFR50
>>625

ちなみに日付順は修正したコードでの再ダウンロードだけで修正されましたか?
あるいは、600ないし別の方法でデータ修正が必要だったかを,今後の参考として教えてくれませんか。

補足ですが、米国指標の出来高は1/1,000で保存しています。
オメガチャートの出来高のデータ型は整数(int)でなければならないのですが、S&Pの出来高がこの上限を超えてしまう(オーバーフローする)ために桁を落としています。
チャートで米国指標の出来高を確認する場合には1,000倍で読み替えてください。
627名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 21:33:35.40ID:1lRcuW3t0
>>626

株価データが壊れと困るので
Omegachartのレベルアップ時には
別ファイルでビルドしテスト動作確認してから
Omegachart.exeだけを通常使用している
ファイルにコピーし使用しています。

テスト環境では、当然株価データは壊れて
いると思いましたので逆転データは削除
して新しい株価データをコピーし使用し
確認テストを繰り返しましたので問題
はでませんでした。

ところでOmegachart.exeだけをいままで
使用していたファイルにコピーしたところ
基本的には問題ないのですがチャート等の
カスタマイズがOmegachartの立上げ毎に
リセットされてしまいます。
これは過去には無かったと思うのですが
何が原因でしょうか?
628名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 22:15:13.84ID:jdeeDFR50
>>627
慎重派で素晴らしいですね。
慌ててデータ復旧のコードをアップする必要はなかったわけですか。

カスタマイズがリセットされているということはOptions.confがおかしいかもしれません。
終了時の保存でファイルの内容がすべて消失することはたまに経験しますが、この場合は即座にエラーメッセージが出るので症状はちょっと違うようですね。

Options.confをテスト環境にコピーして、デバッグで実行から終了で出力ウィンドウに何かエラー出てこないか確認するとわかるかもしれません。

オメガを終了した状態で、Options.confをリネームしてバックアップしておいて、Options.confがない状態で起動することで、初期状態のOptions.confが作られます。
カスタマイズして再起動することでカスタマイズが引き継がれるようになるかもしれません。

ただし、保存したブックマークはなくなります。
もし、正常に戻ったのであればバックアップしたファイルからメモ帳でBookmarkをコピペすることは可能です。
629名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 22:17:13.61ID:1lRcuW3t0
チャート等のカスタマイズがOmegachart
の立上げ毎にリセットされる件

今回の改良がされていない
ソースのバージョン8b0b2d2でもおきます。

私の今までの使用していたバージョンを
戻すと起きません。
バージョンは不明です。
630名無しさん@お腹いっぱい。
垢版 |
2019/05/30(木) 23:24:34.70ID:jdeeDFR50
>>629
ソースを変更したり戻したりしていると何を使っているかわからなくなりますね。

自分は、Env.csの268行のウィンドウタイトルを
public const string AppTitle = "Omega Chart Rev.8b0b2d2";
などとリビジョンまたは、わかりやすい名前に変えたりしています。
加えて、プロパティのアプリケーションタブのアセンブリ名を変えて、
「OmegaAsync.exe」などとファイル名自体を変更して実行ディレクトリにたくさんの名前が違うバージョンの実行ファイルがあります。

ビルドの出力パスでOmegaChartの実行フォルダを指定することでコピー等も必要なくデバッグしながらソース変更をしています。

さらに、ソースの場合は「zanetti.sln」をOmegaRev8b0b2d2.slnなどと変更しています。
こうすることで、VisualStudioの最近使ったプロジェクトが区別出来て便利ですよ。


バージョン情報管理としては、
zanettiのアセンブリ情報ボタンからバージョンを変更するのが一般的な方法でしょうが。
2019/05/31(金) 06:59:08.06ID:ecB+oO0d0
csファイルの差し替えだけで対応できればいいんだけど。panacoranさんカモン!
2019/05/31(金) 07:44:25.40ID:GrrMyw180
panacoranさんのソースコードを普通に使用しているユーザーからすると、一部の方用にカスタマイズされると逆に困るから今までどおりにしてほしいのよ
633名無しさん@お腹いっぱい。
垢版 |
2019/05/31(金) 08:27:02.03ID:eYysmt3V0
>>629
この問題は
Options.confの中のpreference項目だけが
毎回リセットされますね。

preferenceは好みですのでまさに好みの問題で
誰かが毎回ここをリセットするルーチンを通る
様にしたのではないかと思われます。

ここら辺を制御しているのはOptions.csで
コントロールしていると推測しましたが
ソフトがあまり理解できません。

どの辺かおわかりになりましたらお教えください。
634名無しさん@お腹いっぱい。
垢版 |
2019/05/31(金) 09:23:22.59ID:xkRwGcFV0
>>627 >>629 >>633

最新リビション「OmegaChart-8b0b2d2.zip」をダウンロードしてデバッグで数回動かして見たところではカスタマイズの消失は確認出来ませんでした。

断定はできませんが、おそらくoptions.confが問題で正常に読めないまたは正常に上書き保存出来ていないことが原因と想像します。
panacornさんのソースだけで他に変更していなければ、セーブ失敗するとoptions.confが壊れて0バイトファイルが作成され、この時エラーメッセージが出てエラーログにも記録されていはずです。

>>200 の修正をしてあるとすれば、毎回セーブでエラーを起こしていることで変更がファイルに保存できないため0バイトファイルを作らないもののエラーのたびに前の状態に戻るはずです。
しかし、この時も同じく「オプションファイルの読み込みに失敗しました。」のメッセージが出るはずです。

最新ソースを見ても呼び出し先までは見ていませんが、Env.csに関しては以前と変更なさそうです。
起動時にInitEnv()でoptions.confを読みに行きpreference等存在すれば引き継いで、ない場合には初期化します。
また、終了時にはSaveEnv()が呼ばれてオプションファイルが保存されます。
これは仕様でpanacoranさんと使用者以外ソースを変更することはありえないと思います。


おそらくtry-catch以外の場所で、options.confの読み込んだのちのnode解析(preference、bookmark等の呼び出し先)でエラーを起こしているためエラーメッセージが出ずにその部の処理を中断しているのではないかと想像します。
デバッグモードで起動して起動後またはカスタマイズして終了後にVisualStudioの出力ウィンドウに何かエラーメッセージが出ていませんか?
635名無しさん@お腹いっぱい。
垢版 |
2019/05/31(金) 09:30:35.09ID:xkRwGcFV0
>>634
誤:オプションファイルの読み込みに失敗しました。
正:オプションの保存に失敗しました。
636名無しさん@お腹いっぱい。
垢版 |
2019/05/31(金) 19:55:57.85ID:eYysmt3V0
>>634
大変お世話になっております。
OmegaChart-8b0b2d2では起きませんか?

カスタマイズの内大変微妙なのですが、全体、チャート1、チャート
2等ある内で全体は文字体明朝、ゴシック体、大きさ等をきめてい
ますがこれらはOKです。

ところがチャート1の移動平均線の太さやボリンジャーバンドのある
なし等がOmegaChartの終了でリセットされ再度立上げ時に前の状態
になりません。

昨晩申し上げた様に私の古いバージョンのOmegaChart.exeはOKです
のでPanacornさんのところの古いバージョンを調べたところ
9cd2e32がOKでした。私のバージョンはこれだと思います。

preferenceさんのEnv.csの場所の変更の件は知りませんでしたので
やってみましたがだめでした。

Env.csの制御で終了時にはSaveEnv()が呼ばれてオプションファイル
が保存されます。

との事ですのでバージョン9cd2e32以降の改良でEnv.csのタイミング
の変化が影響しているのではと思います。

明日からの土日で9cd2e32で今回の為替、US指数読み込みの変更を
入れて試してみます。
637名無しさん@お腹いっぱい。
垢版 |
2019/05/31(金) 20:34:42.11ID:Lb53aJlV0
>>636
OmegaChart-8b0b2d2ですが、
ボリンジャーバンド(default.omega)2本のあるなし、移動平均線4本を太線変更共に再起動で終了時状態を引き継いでいます。
チャート1とはローソク足でチャート2とはMACD等のオシレータ表示領域のことでいいですか?
MACDの大小なども引き継いでいますし、一目もOKです。

常にではないのですね?
一部だけであれば、変更しようとしたインジケーターの問題のような気もしますね。
あるインジケーター変更したあるいは線色を変更したときに常になるという印象はないですか?
あるいは、特殊な拡張キットを利用しているわけではありませんか?

@拡張キットを別のフォルダにバックアップして、あらたにソースに添付されたdefault.omegaだけをコピーして起動。
Aこれでも起こるようであれば、options.confをリネームして起動


拡張キットにエラーがある場合はロードの段階でエラーが出るのが普通ですが、カスタマイズが一部出来なくなったという経験は今までありませんでした。
ただし、自分が切り替えて利用する使うインジケータ大体限られているのでもしかすると自分の使わないものかもしれませんが。
できたら、利用している拡張キットも書くと参考になるかもしれません。
638名無しさん@お腹いっぱい。
垢版 |
2019/05/31(金) 22:12:50.46ID:Lb53aJlV0
>>636
9cd2e32であればNetFramework2.0なのでHttpClientによるUsYahooからの非同期ダウンロードサンプルは動きません。
HttpClientはNetFramework4.5以上が必要ですから、91d0ffd0(2018-12-24)以降が必要です。
WebClientのasyncに書き換えると2.0でも可能かもしれませんが(確信なし)。

リビジョンが原因とすると、
9cd2e32以降では4fee7d9fでWindows7のTLS 1.2化でEnv.csが書き換えられているだけで、
その他にはPreference.cs Options.cs CustomizedDialog.csなど関係ありそうなソースファイルの変更は見当たらない。
91d0ffd0のNetFrameWork4.7対応がもしかすると関係あるのかな?

Env.csが変更されていても、さすがに151行目
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
は関係ないと思うけど。
639名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 00:06:29.63ID:XsJkc8sR0
>>636
もしも、UsYahooの非同期を試すつもりならば、91d0ffd0(2018-12-24)で試してみませんか?
無理にすすめるつもりはないですが、それでカスタマイズのリセットが再現するかの確認を希望します。
現行のOmegaChart.exeをすぐに再利用できるように630の要領でファイル名を変更してデバッグしてもらえませんかね。

91d0ffd0はOmegaChartWikiのトップページの最近のコミットのリンクをクリック
コミットページのリビジョンのtreeをクリックすることで、zipダウンロードできると思います。
@options.confをバックアップ(そのまま再利用)
Azipソースを任意のフォルダに展開してzanetti.csprojをダブルクリックしてVisualstudioで開く
Bソリューションエクスプローラーのソリューションを選択して、右クリックで名前の変更をzanetti91d0ffd
C一度閉じて変更した名前を選択して開きなおす
Dメニュー「プロジェクト」「zanettiのプロパティ」
Eアプリケーションタブのアッセンブリ名をOmega91d0ffd0に変更
Fビルドタブの出力パスの参照をクリックして、OmegaChartの実行ディレクトリを指定
G構成はDebugのまま
出力ウィンドウのタブがなければ、メニュー表示「出力」で表示
これで一度デバッグを開始するとオメガチャートがデバッグモードで起動します。
*エラーで起動できない時は>>492 >>493を参考にエクスプローラでアクセス許可
起動後に出力タブにエラーがないか確認
カスタマイズ変更して一度終了してここでも出力タブを確認
再起動して出力タブとカスタマイズが引き継がれているかをチェック

もしも不具合なければUsYahooのコード変更を過去ログを見ながらチャレンジしてみてください。
完全に動くようになったらリリースに変更してこの時出力パスをもう一度変更しなければなりません。
デバッグの実行ファイルを起動して使い続けてもほとんど変わらないと思いますが

カスタマイズで不具合が出るようであれば、データ更新はコンソールアプリ等別の方法の方がよいかも。

どうしても9cd2e328に追加したいのであれば、Netframework4.7.2のクラスライブラリ(.NetFrameWork)を追加して、
ここにパブリッククラスを作成してOmegaのコマンドからアクセスするという方法で可能かもしれません。
640名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 09:17:05.22ID:OiRghker0
>>639

お世話になっております。
9cd2e32も91d0ffd0もhttpがソリューションエクスプローラ参照に
無く残念ながら動きません。

私のCPU環境がカスタマイズの内のチャート1のopitons.cof
をOmegachart終了時に書き換え出来ないでカスタマイズが残らない
ならばEnv.csでの微妙な時間のずれが原因だと思います。

終了時に書き換える芸当はCPU性能やソフトの処理スピードにより
制御するのが難しいのです。確か以前にもOmegachartで起きていて
修正された記憶があります。

Env.csで何か簡単なソフトタイマーを挿入し逃げる策がないでしょうか?
641名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 09:54:25.45ID:OiRghker0
>>639

あと、Env.csの内容を見ると"オプションファイルの読み込みに失敗しました。
も""オプションの保存に失敗しました"とのメッセージがありますがエラーに
は記載が出ていません。
642名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 10:16:12.61ID:XsJkc8sR0
>>640
9cd2e32は参照を右クリックしてもSystem.Net.Httpはないはずですが、91d0ffd0の方はSystem.Net.Httpがアッセンブリの中にありませんか?
なお、上にターゲットとして.NetFrameWork4.7.2となっているはずですが。

この参照をチェックしてつかすればHttpClientのエラーはなくなると思うのですが。
ところで、91d0ffd0もカスタマイズは反映されませんか?

時間のずれとかは関係ないと思います。
>>641はOmegaがオプションの読み書きでこれまでエラーダイアログを出していないということです。
ただし、Omegaがエラーログを出さないマイナーなエラーもまれにあります。
興味あれば、options.confをリネームしてデバッグモードで起動してみてください。
エラーが出力タブに表示されているはずです。
643名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 11:30:25.26ID:OiRghker0
>>634
ここに記載がある

"最新ソースを見ても呼び出し先までは見ていませんが、Env.csに関しては以前と変更なさそうです。
起動時にInitEnv()でoptions.confを読みに行きpreference等存在すれば引き継いで、ない場合には初期化します。
また、終了時にはSaveEnv()が呼ばれてオプションファイルが保存されます。"

SaveEnv()のOption.cof内容がbookmark,preference等が並んでいてpreferenceのみ
初期値を読み取るとは思えませんね。しかも、preferenceの内のチャートのみが
リセットする。これは、カスタマイズのところのチャート1のリセットが終了時に
作動するとは考えられませんが?

これは、Env.csでは無くextensionの可能性が高いですね。
>>637のdefault.omegaをやってみます。
昼ちょつと出かけますので夜に結果を書きます。
644名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 12:14:55.66ID:XsJkc8sR0
>>643
終了時のセーブエラーがトラップされないことはまずないと思います。
エラートラップされないとすれば、Env.cs読み込み時の201行以降です。
終了時に変更はセーブされていが読み込み時にStoragenodeからpreferenceを読み込む時点で、
Preference.csの468行以降でエラーがおこってデフォルト値に変更されているのではと疑っています。
*デフォルト値が変数にセットされるのはこの部分です。
**おそらく最初の方は問題ないのでしょう、_oscillatorPreferencesか512から560の部分、特にLoadStyleでnull参照あるいは名前等が解析できないのだと想像しています。

カスタマイズが保存されているかどうかは起動前のoptions.confとカスタマイズ後終了時点のoptios.confを比較すれば大体わかります。

もしも保存がうまくいっていないのであれば、根本解決ではないもののとりあえずダイアログを閉じたときにセーブするように変更すれば修正可能ともいます。
この場所はCommand.cs584行付近で、Env.SaveEnv();を追加すればいいだけです。


91d0ffd0でもカスタマイズが反映されず9cd2e32では異常がなければ、マシンの環境によって.NetFrameWorkのバージョンが関係してるとしか思えません。
これは、不具合のある方の情報が出てこなければ原因特定難しいかもしれません。
645名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 12:22:49.18ID:XsJkc8sR0
>>644
誤変換多くすみません
言いたいのは、終了時ではなく起動時の問題を疑っていること。

修正可能ともいます。 -> と修正可能と思います。
646名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 12:49:33.85ID:XsJkc8sR0
>>644
この時点で問題なければ、次はMainFrameでextensionを読み込む時です。

MainFrameの996行OnActivatedで_asyncLoaderが初期化されるときに
IndicatorSet.csのRun()さらにLoadSchema()が呼ばれ、ここでStorageNodeに保存されたインジケータとextensionを照合します。

移動平均先などチャートのIndicatorであればここが怪しいかもしれません。
不具合のある環境でなければ、想像だけで特定困難ではあります。
647名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 14:03:06.64ID:XsJkc8sR0
>>643
まさかProgramFilesにOmegaChartをインストールしていて、NetFrameworkのアップデート後に拒否されて保存ができていないということはないよね。

拒否されるなら、銘柄データ保存も拒否されるだろうからこれは違うだろうね。
648名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 18:02:16.84ID:U85fE5aW0
どこをどうすれば良いのか全くついて行けなくなりました
649名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 18:54:15.79ID:OiRghker0
>>643

default.omegaを最新バージョン8b0b2d2の物に変更した
ところ上手くいきました。

どうもお騒がせしてすいませんでした。

ここから言い訳です。
Omegachartの良い処は、extensionの各種スクリーンニング機能やセオリー検証機能
自動売買検証機能です。これらの機能はどこの証券会社のソフトでも提供されていません。
全ての証券会社を知っていませんので断言は出きませんが。
これらはOmegachartの最も良い機能です。作者の岡嶋さんありがとうございます。

私はこの多くの分析機能ものを自作しextensionに格納していますのでOmegachart代々
同じものをコピーし使用しています。default.omegaはここに入いつており基本ですの
で変更があるとはツユ知らず大変申し訳ございませんでした。

ところでマイクロソフトのVisval Studio 2019が使用期限が後8日です等度とでます。
今後無償で提供提供されなくなるのかな?

こんごはOmegachatもLinux等の移行とかが必要になるのかもしれません。
ここを支えて下さる皆様のお知恵と努力を期待致しますありがとうございました。
650名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 19:18:23.31ID:XsJkc8sR0
>>649
とりあえず解決良かったです。

他にも同様の不具合の方がおられるようですから、今後のためにも原因となった拡張キットの構文を突き止めて公開していただければありがたく思います。
リビジョンによって拡張キットで不具合が出るのは?? とも思いますのでさらに追及できれば皆さんにも役立つ情報でしょう。
自作のキットがたくさんあるようなので大変でしょうが、ファイルをひとつづつ追加して原因特定是非ともお願いします。


原因が完全に特定できれば、誰かが余計なコード変更をしたことが原因と疑われ、
panacoranさん以外のコード変更は悪だの流れになってほしくなかったのです。
各自が自由に選択あるいは修正して使いやすいものにできるのがソースコードが公開されている利点だと思っています。

自分も2019使用していますが、その期限のマークをクリックして指示に従えば無償で継続利用できていますよ。
最初は試用期間という考えなのかもしれませんね。
651名無しさん@お腹いっぱい。
垢版 |
2019/06/01(土) 19:24:07.95ID:XsJkc8sR0
>>649
よく読んでみると、default.omegaのみ差し替えたのですね。
それであれば、今まで使用していたdefault.omegaが残っているならば、差し替えたファイルとどこが違っていたのかも教えてください。

こちらでそれを利用して検証したいと思います。
■ このスレッドは過去ログ倉庫に格納されています
大学生アイラと影の怪物と戦うリョウが、深夜3時3分の静止した世界で交錯する超常スリラーの概要

ニューススポーツなんでも実況