会則
@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/
探検
OmegaChartスレ ver.11
■ このスレッドは過去ログ倉庫に格納されています
2018/10/12(金) 16:06:42.77ID:xz6O6ruA0
2019/04/12(金) 15:59:55.97ID:sRsZ0kFa0
>>396
修正
銘柄loop
{
var dict = new SortedDictionary<int, NewDailyData>();
日付loop
{
GetPage
Regexで情報抽出
dictへ情報格納
}
return new FetchResult { Code = code, Prices = dict, ReturnStatus = FetchResult.Status.Success };
}
修正
銘柄loop
{
var dict = new SortedDictionary<int, NewDailyData>();
日付loop
{
GetPage
Regexで情報抽出
dictへ情報格納
}
return new FetchResult { Code = code, Prices = dict, ReturnStatus = FetchResult.Status.Success };
}
398名無しさん@お腹いっぱい。
2019/04/12(金) 19:33:29.18ID:qIprkJKA0 恐れていた事が起きましたね お手軽に行かないかと思っていたのが甘かったです
ソースの他の所を見ながらトライするしかなさそうですね
ソースの他の所を見ながらトライするしかなさそうですね
399名無しさん@お腹いっぱい。
2019/04/12(金) 21:02:21.32ID:qIprkJKA02019/04/12(金) 22:46:17.62ID:/3nGHiOF0
400
401名無しさん@お腹いっぱい。
2019/04/13(土) 08:44:57.14ID:iC2zajSW02019/04/13(土) 11:42:18.93ID:T94MFsNa0
となると最初の質問者さんは、ブレークポイントなどを使って自分の意図通りにプログラムが動いているかを確認すれば解決しそうですね。
403名無しさん@お腹いっぱい。
2019/04/14(日) 10:05:55.16ID:UbpiL9V00 util.cs [IsMarketOpenDate(DateTime d)]の開場日誤判定について
祝日は内閣府ウェブページのcsvより
日付 IsMarketOpenDate 内閣府発表祝日
2019/4/30 非休場 休日
2019/5/1 非休場 休日(祝日扱い)
2019/5/2 非休場 休日
2019/10/22 非休場 休日(祝日扱い)
2020/2/24 非休場 休日
2020/7/23 非休場 海の日
2020/7/24 非休場 スポーツの日
2020/8/10 非休場 山の日
市場が開いている日をOmegaが祝日と判定しているかは調べていない。
祝日は内閣府ウェブページのcsvより
日付 IsMarketOpenDate 内閣府発表祝日
2019/4/30 非休場 休日
2019/5/1 非休場 休日(祝日扱い)
2019/5/2 非休場 休日
2019/10/22 非休場 休日(祝日扱い)
2020/2/24 非休場 休日
2020/7/23 非休場 海の日
2020/7/24 非休場 スポーツの日
2020/8/10 非休場 山の日
市場が開いている日をOmegaが祝日と判定しているかは調べていない。
404名無しさん@お腹いっぱい。
2019/04/14(日) 10:40:52.41ID:2G9OsrXE0 誰か教えてください。
移動平均線を増やしたいのですが?
以前どことどこを書き換えれよいのか
見たような気がするのですが見っかり
ません。連休に追加したいのですが。
移動平均線を増やしたいのですが?
以前どことどこを書き換えれよいのか
見たような気がするのですが見っかり
ません。連休に追加したいのですが。
2019/04/14(日) 11:00:57.54ID:2mOccDVK0
移動平均の本数増やすのは拡張キットのほうで対応することになるのではないかな
2019/04/14(日) 13:57:41.74ID:9f6QPbkj0
内閣府から出てる休日CSVは
http://www8.cao.go.jp/chosei/shukujitsu/syukujitsu_kyujitsu.csv
これを自動的に見に行く仕様にすれば、休日チェック漏れはなくなりそう。
でもOmega起動時毎回見に行くのもなんなので、休日CSVをOmegaフォルダに保存して、更新1か月経ってるCSVだったら内閣府サイトを見に行くという感じだと良さげ?
http://www8.cao.go.jp/chosei/shukujitsu/syukujitsu_kyujitsu.csv
これを自動的に見に行く仕様にすれば、休日チェック漏れはなくなりそう。
でもOmega起動時毎回見に行くのもなんなので、休日CSVをOmegaフォルダに保存して、更新1か月経ってるCSVだったら内閣府サイトを見に行くという感じだと良さげ?
407名無しさん@お腹いっぱい。
2019/04/14(日) 15:07:14.30ID:UbpiL9V00 OmegaChartのデータダウンロードはIsMarketOpenDateで市場openを判定して、これ以外はダウンロードしない仕様のようだ。
問題は、市場openを休場日として判定して、ウェブでデータを公開していても取りこぼしになるかもしれないということ。
問題は、市場openを休場日として判定して、ウェブでデータを公開していても取りこぼしになるかもしれないということ。
408名無しさん@お腹いっぱい。
2019/04/14(日) 17:16:57.89ID:Dri35EJe0 休日と判定された日以外は立会日
409名無しさん@お腹いっぱい。
2019/04/14(日) 17:38:41.13ID:UbpiL9V00 12月23日月曜日は祝日ではないし、来年の祝日移動でもOmegaは誤判定すると思うが。
410名無しさん@お腹いっぱい。
2019/04/14(日) 17:50:16.79ID:Dri35EJe0 これを見て修正するのが確実では
https://www.jpx.co.jp/corporate/about-jpx/calendar/
https://www.jpx.co.jp/corporate/about-jpx/calendar/
411名無しさん@お腹いっぱい。
2019/04/14(日) 18:19:19.70ID:2G9OsrXE0412名無しさん@お腹いっぱい。
2019/04/14(日) 18:45:52.58ID:UbpiL9V00 自分はコンソールアプリでデータを取得しているので関係ないけど。
ここでは時系列データを取得している人が多いような印象を受けています。
無尽蔵など日付ごとにアドレスが異なるサイトからの取得に対して、銘柄ごとにアドレスを分けている時系列タイプのデータソースにも取得するdate配列を渡しているのがどうかなと思ってしまう。
祝日を拾ってくるのもいいけどアドレス変更やページの仕様変更でデータ取得同様ソース変更が必要になるかもしれない。
無尽蔵等JPXと契約していないと想像するサイトは将来閉鎖される可能性もあるかもしれない。
保存されている最終日付を渡して、それ以降の土日年末年始以外のデータを読み込みに行って、NoFoundであればスキップするような仕様変更を考えてもよさそうな気がしている。
>>410 このページいいね。ありがとう。
ここでは時系列データを取得している人が多いような印象を受けています。
無尽蔵など日付ごとにアドレスが異なるサイトからの取得に対して、銘柄ごとにアドレスを分けている時系列タイプのデータソースにも取得するdate配列を渡しているのがどうかなと思ってしまう。
祝日を拾ってくるのもいいけどアドレス変更やページの仕様変更でデータ取得同様ソース変更が必要になるかもしれない。
無尽蔵等JPXと契約していないと想像するサイトは将来閉鎖される可能性もあるかもしれない。
保存されている最終日付を渡して、それ以降の土日年末年始以外のデータを読み込みに行って、NoFoundであればスキップするような仕様変更を考えてもよさそうな気がしている。
>>410 このページいいね。ありがとう。
413名無しさん@お腹いっぱい。
2019/04/14(日) 19:38:44.75ID:UbpiL9V00 >>412
Yahoo.csをみて自分が間違っていることに気が付きました。
ソースを見るとページ内の時系列はすべて読み込んでいるようです。
データもれはないと思いました。
しかし、祝日判定の間違いで渡されたdate配列に祝日があれば出来高0の空のDailyDataを作るようです。
チャートでは祝日も表示されてしまいますね。
取引ない場合もあることを失念していました。
やはり祝日判定は必要ですかね。
おさがわせして申し訳ありませんでした。
Yahoo.csをみて自分が間違っていることに気が付きました。
ソースを見るとページ内の時系列はすべて読み込んでいるようです。
データもれはないと思いました。
しかし、祝日判定の間違いで渡されたdate配列に祝日があれば出来高0の空のDailyDataを作るようです。
チャートでは祝日も表示されてしまいますね。
取引ない場合もあることを失念していました。
やはり祝日判定は必要ですかね。
おさがわせして申し訳ありませんでした。
414名無しさん@お腹いっぱい。
2019/04/14(日) 20:15:08.09ID:Dri35EJe0 GetPageの
using (var reader = new StreamReader(Util.HttpDownload(url)))
page = reader.ReadToEnd();
のことですよね
using (var reader = new StreamReader(Util.HttpDownload(url)))
page = reader.ReadToEnd();
のことですよね
415名無しさん@お腹いっぱい。
2019/04/14(日) 21:07:42.49ID:UbpiL9V00 ParsePageの中でforeach (Match m in matches)でテーブル一覧のデータをSortedDictionaryに追加しています。
正規表現が正しければページのすべての行を読み込むと思います。
最後のreturnの直前で、渡されたdate配列のうちSortedDictionaryのキーに存在しない日付を空のNewDailyDataで追加して埋め込んでいます。
そのあとにUpdateDataFarmが呼ばれてデータを更新するようですが、ここで最初にSortedDictionaryのデーター分のDailyDataFarmを作成しています。
foreachで出来高がある場合は4本値で更新して、ない場合は空のままSaveしてデータ更新を終了しているようです。
正規表現が正しければページのすべての行を読み込むと思います。
最後のreturnの直前で、渡されたdate配列のうちSortedDictionaryのキーに存在しない日付を空のNewDailyDataで追加して埋め込んでいます。
そのあとにUpdateDataFarmが呼ばれてデータを更新するようですが、ここで最初にSortedDictionaryのデーター分のDailyDataFarmを作成しています。
foreachで出来高がある場合は4本値で更新して、ない場合は空のままSaveしてデータ更新を終了しているようです。
416名無しさん@お腹いっぱい。
2019/04/15(月) 05:13:37.91ID:XTNGYmxu0 たとえGetPageが単銘柄1日分限定の書き方でもParsePageで全銘柄時系列ループすれば良いみたいですね
ありがとうございました
ありがとうございました
417名無しさん@お腹いっぱい。
2019/04/16(火) 15:43:15.80ID:EpEzWv5A0 ↑
一寸しつこくなるかも知れないが情報提供しますね
GetPage はデータ開始日から終了日までを単に読みに行くだけなので
データが次のページにあるときはアドレスを変えて繰り返し読ませれば良い 従って ParsePage の書き換えは不要
取り敢えず以下でOK 最初の質問者さんが失敗したのは多分 DaysAtOnceの指定値が 1ページ分以下だったせいかな
try
{
for (int i = 0; i < page_count; i++) {
string web = url + (i > 0 ? "&ashi=day&page=" + (i + 1).ToString() : "");
using (var reader = new StreamReader(Util.HttpDownload(web)))
page += reader.ReadToEnd();
}
}
...
こいつはHTML文字列を単純に読み加えるだけなので思わぬデータ重複?や不具合な文字列を拾う可能性もある
詳しくは調べていないが 3回目の読み込みでリモート サーバー エラーが出たのはそのせいかもしれない
ParsePage の正規表現変更で対応できる問題かもしれない
ただこれ以上やると指数の取得だけならまだいいが個別銘柄までとなると
サーバーに大きな負荷をかけて迷惑を起こす恐れもあるので ParsePageで必要になる新しい正規表現は公開しません
(Omegachartにとって必須ではないし自分は別プログラム使ってあちこちから好きに取っていますので悪しからず)
一寸しつこくなるかも知れないが情報提供しますね
GetPage はデータ開始日から終了日までを単に読みに行くだけなので
データが次のページにあるときはアドレスを変えて繰り返し読ませれば良い 従って ParsePage の書き換えは不要
取り敢えず以下でOK 最初の質問者さんが失敗したのは多分 DaysAtOnceの指定値が 1ページ分以下だったせいかな
try
{
for (int i = 0; i < page_count; i++) {
string web = url + (i > 0 ? "&ashi=day&page=" + (i + 1).ToString() : "");
using (var reader = new StreamReader(Util.HttpDownload(web)))
page += reader.ReadToEnd();
}
}
...
こいつはHTML文字列を単純に読み加えるだけなので思わぬデータ重複?や不具合な文字列を拾う可能性もある
詳しくは調べていないが 3回目の読み込みでリモート サーバー エラーが出たのはそのせいかもしれない
ParsePage の正規表現変更で対応できる問題かもしれない
ただこれ以上やると指数の取得だけならまだいいが個別銘柄までとなると
サーバーに大きな負荷をかけて迷惑を起こす恐れもあるので ParsePageで必要になる新しい正規表現は公開しません
(Omegachartにとって必須ではないし自分は別プログラム使ってあちこちから好きに取っていますので悪しからず)
418名無しさん@お腹いっぱい。
2019/04/16(火) 18:15:22.86ID:dBGa9eAq0 OmegaChartのダイアログでのダウンロードは最大2か月間の様です。
Yahoo.csも同様ですが、コードを眺めたかぎりではダイアログの次の日付以降で渡す配列が30本以上あれば銘柄ごとに複数ページを読むと思われます。
(全銘柄を読み終わったのちに残りの日付ページに変更する仕様のようです)
*株探に関しては昨年末にページ変更されて、正規表現の修正をしていないようなことを1か月前に作者が言っていたような記憶があります。
間違いかもしれませんが、300あたりから過去ログを読み返してみてください。
正規表現が正しいと仮定して、2か月間以上の過去データをダウンロードしたければ、下のようにコードを変更してダイアログで目的の日付を選択すればできると思われます。
膨大な時間がかかりそうですが。
Download.cs の ListDates()
DateTime start = ld.AddMonths(-2); //632行 -2を-6などに変更
Yahoo.csも同様ですが、コードを眺めたかぎりではダイアログの次の日付以降で渡す配列が30本以上あれば銘柄ごとに複数ページを読むと思われます。
(全銘柄を読み終わったのちに残りの日付ページに変更する仕様のようです)
*株探に関しては昨年末にページ変更されて、正規表現の修正をしていないようなことを1か月前に作者が言っていたような記憶があります。
間違いかもしれませんが、300あたりから過去ログを読み返してみてください。
正規表現が正しいと仮定して、2か月間以上の過去データをダウンロードしたければ、下のようにコードを変更してダイアログで目的の日付を選択すればできると思われます。
膨大な時間がかかりそうですが。
Download.cs の ListDates()
DateTime start = ld.AddMonths(-2); //632行 -2を-6などに変更
419名無しさん@お腹いっぱい。
2019/04/16(火) 18:52:16.43ID:dBGa9eAq0 >>418 5797のコードであればYahooと違って、株探は複数ページは読まないですね。
失礼しました。
正規表現もオリジナルのままではだめですね。
これでどうでしょう。
var valid = new Regex(@">(?<year>\d{2})/(?<month>\d?\d)/(?<day>\d?\d)</time></th>\r\n" +
"<td>(?<open>[0-9,.]+)</td>\r\n<td>(?<high>[0-9,.]+)</td>\r\n<td>(?<low>[0-9,.]+)</td>\r\n<td>(?<close>[0-9,.]+)</td>\r\n" +
"<td>.*</td>\r\n<td>.*</td>\r\n<td>(?<volume>[0-9,]+)</td>");
失礼しました。
正規表現もオリジナルのままではだめですね。
これでどうでしょう。
var valid = new Regex(@">(?<year>\d{2})/(?<month>\d?\d)/(?<day>\d?\d)</time></th>\r\n" +
"<td>(?<open>[0-9,.]+)</td>\r\n<td>(?<high>[0-9,.]+)</td>\r\n<td>(?<low>[0-9,.]+)</td>\r\n<td>(?<close>[0-9,.]+)</td>\r\n" +
"<td>.*</td>\r\n<td>.*</td>\r\n<td>(?<volume>[0-9,]+)</td>");
420名無しさん@お腹いっぱい。
2019/04/16(火) 19:15:08.10ID:dBGa9eAq0 >>419 C#でNetFrameWorkコンソールアプリを作成して
以下のコードで正規表現試してみてください(urlに時系列ページアドレスを代入のこと)。
using System;
using System.Text.RegularExpressions;
using System.Net.Http;
namespace ConsoleApp1 {
class Program {
static void Main(string[] args) {
var valid = new Regex(@">(?<year>\d{2})/(?<month>\d?\d)/(?<day>\d?\d)</time></th>\r\n" +
"<td>(?<open>[0-9,.]+)</td>\r\n<td>(?<high>[0-9,.]+)</td>\r\n<td>(?<low>[0-9,.]+)</td>\r\n<td>(?<close>[0-9,.]+)</td>\r\n" +
"<td>.*</td>\r\n<td>.*</td>\r\n<td>(?<volume>[0-9,]+)</td>");
string buf = null;
string url = "";
if (url != "") {
using (HttpClient client = new HttpClient()) {
buf = client.GetStringAsync(url).Result; }
var matches = valid.Matches(buf);
foreach (Match m in matches) {
for (int i = 1; i < m.Groups.Count; i++)
Console.Write("{0} ", m.Groups[i].Value);
Console.WriteLine();}} else
Console.WriteLine("コードのurl入力が必要");
Console.WriteLine("何かキーを押すと終了");
Console.ReadKey(); } }
}
以下のコードで正規表現試してみてください(urlに時系列ページアドレスを代入のこと)。
using System;
using System.Text.RegularExpressions;
using System.Net.Http;
namespace ConsoleApp1 {
class Program {
static void Main(string[] args) {
var valid = new Regex(@">(?<year>\d{2})/(?<month>\d?\d)/(?<day>\d?\d)</time></th>\r\n" +
"<td>(?<open>[0-9,.]+)</td>\r\n<td>(?<high>[0-9,.]+)</td>\r\n<td>(?<low>[0-9,.]+)</td>\r\n<td>(?<close>[0-9,.]+)</td>\r\n" +
"<td>.*</td>\r\n<td>.*</td>\r\n<td>(?<volume>[0-9,]+)</td>");
string buf = null;
string url = "";
if (url != "") {
using (HttpClient client = new HttpClient()) {
buf = client.GetStringAsync(url).Result; }
var matches = valid.Matches(buf);
foreach (Match m in matches) {
for (int i = 1; i < m.Groups.Count; i++)
Console.Write("{0} ", m.Groups[i].Value);
Console.WriteLine();}} else
Console.WriteLine("コードのurl入力が必要");
Console.WriteLine("何かキーを押すと終了");
Console.ReadKey(); } }
}
421名無しさん@お腹いっぱい。
2019/04/16(火) 19:40:03.10ID:EpEzWv5A0 あはは 盛り上がって来ましたね
422名無しさん@お腹いっぱい。
2019/04/16(火) 19:50:55.33ID:EpEzWv5A0 連投すまぬ
@"> の所を @"<th scope=""row""><.*>と長ったらしくやってしまったが後は全部同じだった
@"> の所を @"<th scope=""row""><.*>と長ったらしくやってしまったが後は全部同じだった
423名無しさん@お腹いっぱい。
2019/04/16(火) 21:19:39.87ID:dBGa9eAq0424名無しさん@お腹いっぱい。
2019/04/16(火) 21:27:29.50ID:dBGa9eAq0425名無しさん@お腹いっぱい。
2019/04/16(火) 21:37:43.59ID:dBGa9eAq0 >>424
21行目を変更しないと1度ページ毎に20行以上はデータ読めないので変更必要かも。
private const int DaysAtOnce = 60; // 一度に取得する時系列の営業日数
21行目を変更しないと1度ページ毎に20行以上はデータ読めないので変更必要かも。
private const int DaysAtOnce = 60; // 一度に取得する時系列の営業日数
426名無しさん@お腹いっぱい。
2019/04/17(水) 06:21:47.87ID:aEhBulrq0 あそこは構造上 本日分を繰り返し読み込む事になる
試しに1銘柄だけ最大の300本取ってみたら本日分だけが重複して309本取れていた
これは避けられないのでどこかでフィルターする必要がある 正規表現でも良いけど上手い書き方ないかな
試しに1銘柄だけ最大の300本取ってみたら本日分だけが重複して309本取れていた
これは避けられないのでどこかでフィルターする必要がある 正規表現でも良いけど上手い書き方ないかな
427名無しさん@お腹いっぱい。
2019/04/17(水) 07:44:47.28ID:rU6wJGwJ0 >>426
本日分300本?
1銘柄で300ページ読んだのですか?
&ashi=day&page=2 から &ashi=day&page=10 と9ページを追加して読んでも、当日分しか読めなかったのですか?
毎ページごとに最終日付分が最初にあるため、これを省かなければなりません。
そもそもSortedDictionaryは同一キーをを追加できないので、そのまま実行すると、追加の段階でエラーで止まるはずで30本以上は追加できないのでは?
ParsePageの298行で追加する場所に
if (dict.ContainsKey(Util.DateToInt(date)))
を追加することで、すでに追加されているキーはスキップしてエラー回避できると思います。
根本的に改造するとなると、GetPage、FetchPricesにページ番号の引数を追加して、Run()の中でnikkei225の日付データと渡された日付配列を比較しながらページ番号をインクリメントしていく方法もあると思います。
本日分300本?
1銘柄で300ページ読んだのですか?
&ashi=day&page=2 から &ashi=day&page=10 と9ページを追加して読んでも、当日分しか読めなかったのですか?
毎ページごとに最終日付分が最初にあるため、これを省かなければなりません。
そもそもSortedDictionaryは同一キーをを追加できないので、そのまま実行すると、追加の段階でエラーで止まるはずで30本以上は追加できないのでは?
ParsePageの298行で追加する場所に
if (dict.ContainsKey(Util.DateToInt(date)))
を追加することで、すでに追加されているキーはスキップしてエラー回避できると思います。
根本的に改造するとなると、GetPage、FetchPricesにページ番号の引数を追加して、Run()の中でnikkei225の日付データと渡された日付配列を比較しながらページ番号をインクリメントしていく方法もあると思います。
428名無しさん@お腹いっぱい。
2019/04/17(水) 08:06:09.98ID:rU6wJGwJ0 >>426
余計なお世話かもしれないけど、膨大な複数ページを同一サーバーに連続してリクエストするとアクセス拒否やさらに続けていると不正アクセスや攻撃の疑いなどで調査されることもあるかもしれませんよ。
ページ取得ごとにある程度のウェイトをかけた方が安全と思います。
普通はThread.Sleepだけれと、このクラスの書き方はマルチスレッドを想定しているので、もしかするとTaskのように実行スレッドにウェイトをかける方法は別かもしれません。
現在であれば、Taskの非同期処理で書き換えた方がいいのかもしれない。
このスレッドの書き方はよくわからんし、調べる気にもならん。
余計なお世話かもしれないけど、膨大な複数ページを同一サーバーに連続してリクエストするとアクセス拒否やさらに続けていると不正アクセスや攻撃の疑いなどで調査されることもあるかもしれませんよ。
ページ取得ごとにある程度のウェイトをかけた方が安全と思います。
普通はThread.Sleepだけれと、このクラスの書き方はマルチスレッドを想定しているので、もしかするとTaskのように実行スレッドにウェイトをかける方法は別かもしれません。
現在であれば、Taskの非同期処理で書き換えた方がいいのかもしれない。
このスレッドの書き方はよくわからんし、調べる気にもならん。
429名無しさん@お腹いっぱい。
2019/04/17(水) 08:46:58.47ID:aEhBulrq0 オメガからではないが10ページ分300本サーバーの迷惑にはならない様にしている
430名無しさん@お腹いっぱい。
2019/04/17(水) 09:10:58.31ID:zQnQ5QQL0 >>429
余計でしたね。失礼しました。
別のプログラムであれば、SortedListの方が使い勝手がいいかもしれません。
indexによるキーまたはValueのアクセスもできるはずです。
同一キーの存在調査は同じく、ContainsKeyです。
Omegaのデータ更新クラスは難しくて、いろんなところに飛ぶため読んでいて腹が立ちますね。
また、データセブのときにunsafeでポインタも利用しているし。
SortedListでデーターを読み込んでバイナリに保存する方が簡単ですね。
余計でしたね。失礼しました。
別のプログラムであれば、SortedListの方が使い勝手がいいかもしれません。
indexによるキーまたはValueのアクセスもできるはずです。
同一キーの存在調査は同じく、ContainsKeyです。
Omegaのデータ更新クラスは難しくて、いろんなところに飛ぶため読んでいて腹が立ちますね。
また、データセブのときにunsafeでポインタも利用しているし。
SortedListでデーターを読み込んでバイナリに保存する方が簡単ですね。
431名無しさん@お腹いっぱい。
2019/04/17(水) 10:19:05.25ID:aEhBulrq0 C#は殆ど使わない方言なので読めるが上手く書けずに苦労しますわ
2019/04/17(水) 14:40:50.22ID:gTEL/YSP0
>>428
かなりしっかりしたサーバーでないとエラーにならずに適切に全データーを取得できないような気がするのだけど、そこのところどうなのだろう?
かなりしっかりしたサーバーでないとエラーにならずに適切に全データーを取得できないような気がするのだけど、そこのところどうなのだろう?
433名無しさん@お腹いっぱい。
2019/04/17(水) 16:47:24.12ID:zQnQ5QQL0 >>432
ウェブページの読み込みごとに適切にウェイト(1秒とか)をかけるとエラーにはならないと思います。
以前のk-dbではアクセス制限がキツくウェイトかけても数ページ読み込むとすぐにアクセス拒否されましたが。
しかし、Yahooはスクレイピングの禁止を明示していますし、カブタンでも
「複製、編集、加工等を行う行為」
「コンテンツ等を蓄積する行為」
「サーバーに不当な負担をかける行為」
などを禁止していますので、アクセス数などからスクレイピングとデータ蓄積を疑われて調査され訴えられる危険性は常にあると思います。
調査しようと思えば、プロバイダーに協力を求めれば身元はわかると思っています。
自分はこれらのページのスクレイピングをすすめているのではありません。
あくまでC#プログラミングのアドバイスをしているだけのつもりです。
ウェブページの読み込みごとに適切にウェイト(1秒とか)をかけるとエラーにはならないと思います。
以前のk-dbではアクセス制限がキツくウェイトかけても数ページ読み込むとすぐにアクセス拒否されましたが。
しかし、Yahooはスクレイピングの禁止を明示していますし、カブタンでも
「複製、編集、加工等を行う行為」
「コンテンツ等を蓄積する行為」
「サーバーに不当な負担をかける行為」
などを禁止していますので、アクセス数などからスクレイピングとデータ蓄積を疑われて調査され訴えられる危険性は常にあると思います。
調査しようと思えば、プロバイダーに協力を求めれば身元はわかると思っています。
自分はこれらのページのスクレイピングをすすめているのではありません。
あくまでC#プログラミングのアドバイスをしているだけのつもりです。
2019/04/18(木) 14:33:52.09ID:QCAT4hwG0
株式投資メモというサイトだといろいろデータがそろっているようなのですが、こちらのサイトについて検討された方ございますでしょうか?
435名無しさん@お腹いっぱい。
2019/04/18(木) 15:21:18.54ID:5jGUExc90 ここすんなり取れそうですね
2019/04/19(金) 10:11:14.71ID:XSqCpuoc0
k-db.comみたく東証から警告されて、突然閉鎖になるリスクはないのかな
437名無しさん@お腹いっぱい。
2019/04/19(金) 12:30:26.81ID:j0Bn8SzG0 その可能性はあるね 個別銘柄の緊急取得には良さそう 地方市場のも揃っていて簡単にCSVで300本取れる
438名無しさん@お腹いっぱい。
2019/04/19(金) 14:51:14.55ID:wcnFnut+0 k tanから指定日または保存最終日以降の複数ページをTaskの非同期で取得してアップデートするクラスほぼ完成。
非同期なので、ダウンロード中も他の銘柄を表示が可能(スクリーンングはダメだが)。
ダウンロード経過はステータスバーに出力。
全部を試す気にはならないが、数銘柄で試してみた。
当日分はザラ場中なので確定した終値でないが。
以下は取得ログ
2019-04-19 14:36:33 200[OK] 201 円/ドル ?code=0950
2019-04-19 14:36:34 200[OK] 201 円/ドル ?code=0950&ashi=day&page=2
201 円/ドル 60件 2019-01-24-2019-04-19
2019-04-19 14:36:36 200[OK] 525 情報 ?code=0275
2019-04-19 14:36:37 200[OK] 525 情報 ?code=0275&ashi=day&page=2
525 情報 60件 2019-01-24-2019-04-19
2019-04-19 14:36:38 200[OK] 6758 ソニー ?code=6758
2019-04-19 14:36:40 200[OK] 6758 ソニー ?code=6758&ashi=day&page=2
6758 ソニー 60件 2019-01-24-2019-04-19
非同期なので、ダウンロード中も他の銘柄を表示が可能(スクリーンングはダメだが)。
ダウンロード経過はステータスバーに出力。
全部を試す気にはならないが、数銘柄で試してみた。
当日分はザラ場中なので確定した終値でないが。
以下は取得ログ
2019-04-19 14:36:33 200[OK] 201 円/ドル ?code=0950
2019-04-19 14:36:34 200[OK] 201 円/ドル ?code=0950&ashi=day&page=2
201 円/ドル 60件 2019-01-24-2019-04-19
2019-04-19 14:36:36 200[OK] 525 情報 ?code=0275
2019-04-19 14:36:37 200[OK] 525 情報 ?code=0275&ashi=day&page=2
525 情報 60件 2019-01-24-2019-04-19
2019-04-19 14:36:38 200[OK] 6758 ソニー ?code=6758
2019-04-19 14:36:40 200[OK] 6758 ソニー ?code=6758&ashi=day&page=2
6758 ソニー 60件 2019-01-24-2019-04-19
2019/04/19(金) 18:07:24.91ID:/+xRDzBc0
最近上場した銘柄のみスクリーニングってできますか?
440名無しさん@お腹いっぱい。
2019/04/19(金) 20:01:27.47ID:j0Bn8SzG0 ブックマークフォルダーに新規上場銘柄を入れてやる
2019/04/21(日) 15:29:43.88ID:MVgGksjO0
スクリーニングにするときに毎回お気に入りフォルダを選択するのがめんどいので
固定にしたいんですけどreturn _selectedFolderを
どうやって指定すればいいでしょうか
固定にしたいんですけどreturn _selectedFolderを
どうやって指定すればいいでしょうか
2019/04/21(日) 16:33:29.91ID:hHjH+BvG0
スクリーニングの条件設定画面、フィルタを「お気に入りのフォルダ」に強制的に変えるには、
ScreeningDialog.cs の一番上の方
_filterBox.SelectedIndex = 5;//0から5に変更
たぶん、フォルダ指定もしたいという話だと思いますが、それは自分もわからなかったです。
SelectBookmarkFolder.csの_treeViewを見ればできるような気もする。
ScreeningDialog.cs の一番上の方
_filterBox.SelectedIndex = 5;//0から5に変更
たぶん、フォルダ指定もしたいという話だと思いますが、それは自分もわからなかったです。
SelectBookmarkFolder.csの_treeViewを見ればできるような気もする。
2019/04/22(月) 22:09:20.80ID:kuR5QUfl0
>>442
やっとわかった。Bookmarkの中にBookmarkFolderという要素がある。
foreach でRoot.Children(ルートのBookmarkFolderの子供)を回して、フォルダ名で検索すれば見つけられる。
ただし、ネストが深いところにフォルダを作るとハンドリングが難しくなるのでなるべく浅いところに作る。
やっとわかった。Bookmarkの中にBookmarkFolderという要素がある。
foreach でRoot.Children(ルートのBookmarkFolderの子供)を回して、フォルダ名で検索すれば見つけられる。
ただし、ネストが深いところにフォルダを作るとハンドリングが難しくなるのでなるべく浅いところに作る。
444panacoran
2019/04/24(水) 22:12:01.65ID:PQ3O0S170 panacoranです
Yahoo.csで日経平均とTOPIX取得できないバグを直して、
休日の変更に対応させておきました
Yahoo.csで日経平均とTOPIX取得できないバグを直して、
休日の変更に対応させておきました
2019/04/24(水) 23:28:01.40ID:gl0vPH100
>>444
お疲れ様です! ありがとうございます。
お疲れ様です! ありがとうございます。
2019/04/25(木) 00:27:17.35ID:YhM8CEHJ0
447名無しさん@お腹いっぱい。
2019/04/25(木) 00:58:46.68ID:dm94bElt0 >>444
Yahoo、K-tanなどからのダウンロードを非同期で実行する試作クラスを作成してみました。
この例では、ダウンロードダイアログのOKボタンをフックして作動させています。
銘柄間のウェブアクセスに必要以上にウェイトを置いており、試作では全銘柄をダウンロードしないようにしているのでこのままでは実用的ではないかも知れません。
簡単にY等の全銘柄ダウンロードに改変可能と思います。
バグが多いと思いますが参考にしてみてください。
pastebinで1週間の限定公開となるはずです(5/1頃まで?)。
https://pastebin.com/3bffC5aP
Yahoo、K-tanなどからのダウンロードを非同期で実行する試作クラスを作成してみました。
この例では、ダウンロードダイアログのOKボタンをフックして作動させています。
銘柄間のウェブアクセスに必要以上にウェイトを置いており、試作では全銘柄をダウンロードしないようにしているのでこのままでは実用的ではないかも知れません。
簡単にY等の全銘柄ダウンロードに改変可能と思います。
バグが多いと思いますが参考にしてみてください。
pastebinで1週間の限定公開となるはずです(5/1頃まで?)。
https://pastebin.com/3bffC5aP
2019/04/25(木) 08:01:46.44ID:elCy5TET0
449名無しさん@お腹いっぱい。
2019/04/25(木) 12:05:44.40ID:fNVmryL40 >>447
UsYahooで終了後にメニューがオフのままで、ステータスバーが表示したままで非表示にならないバグ。
745行に以下を追加(class UsYahooDownloaderのpublic async Task Start(int[] codes))
await Task.Delay(5000);
Env.Frame.Menu.GetMainMenu().MenuItems[0].MenuItems[0].Visible = true;
Env.Frame.Menu.GetMainMenu().MenuItems[0].MenuItems[1].Visible = true;
base.Disopse();
UsYahooで終了後にメニューがオフのままで、ステータスバーが表示したままで非表示にならないバグ。
745行に以下を追加(class UsYahooDownloaderのpublic async Task Start(int[] codes))
await Task.Delay(5000);
Env.Frame.Menu.GetMainMenu().MenuItems[0].MenuItems[0].Visible = true;
Env.Frame.Menu.GetMainMenu().MenuItems[0].MenuItems[1].Visible = true;
base.Disopse();
450panacoran
2019/04/25(木) 14:22:52.39ID:CaWghIm/0 panacoranです
>>447
そのコードが私のコードベースに取り込まれることはありません
私が書いた株価取得コードはすべてProtraからの移植です
バグ修正等の共通化ができなくなるので、
OmegaChart独自の変更を取り込むことはありません
>>447
そのコードが私のコードベースに取り込まれることはありません
私が書いた株価取得コードはすべてProtraからの移植です
バグ修正等の共通化ができなくなるので、
OmegaChart独自の変更を取り込むことはありません
451名無しさん@お腹いっぱい。
2019/04/25(木) 14:42:33.41ID:fNVmryL40 >>450
了解しました
了解しました
452名無しさん@お腹いっぱい。
2019/04/27(土) 12:23:57.82ID:2eub+pGu0 447
は全銘柄ダウンロードより少数の銘柄の取り直しに役立ちそうですが銘柄コードをファイルから読み込んで処理する様にできませんか
は全銘柄ダウンロードより少数の銘柄の取り直しに役立ちそうですが銘柄コードをファイルから読み込んで処理する様にできませんか
453名無しさん@お腹いっぱい。
2019/04/27(土) 20:50:40.82ID:VgVwaY2U0454名無しさん@お腹いっぱい。
2019/04/28(日) 07:16:21.45ID:RE8kfDPS0 そうそう切りが無いしね
455名無しさん@お腹いっぱい。
2019/04/29(月) 15:03:58.15ID:aJZPfOLS0 しかし出来ない奴は全く駄目だからね 無理 ムリ むり 連休ひま
2019/04/29(月) 15:31:34.27ID:jrKMYdcU0
やる気がある人はどんどん応援したいとは思う
457名無しさん@お腹いっぱい。
2019/04/30(火) 07:52:55.72ID:0FN5k2tK0 そうですよね 絶対に無理は無いはず
2019/04/30(火) 23:01:10.90ID:AkAtDvFm0
冷やしたご飯なら、明日食べればいいじゃない。
2019/04/30(火) 23:01:36.37ID:AkAtDvFm0
盛大に誤爆
460名無しさん@お腹いっぱい。
2019/05/04(土) 06:48:35.93ID:3uz4p1R00 >>447
コードを試させて頂きました いつもありがとうございます 間違っていたらすみません 他の場合はデータ更新されるのですが
Y... テストの場合 「終了しました」と表示されますが実際にはデータ更新されていないようです 試された方々如何でしたか
コードを試させて頂きました いつもありがとうございます 間違っていたらすみません 他の場合はデータ更新されるのですが
Y... テストの場合 「終了しました」と表示されますが実際にはデータ更新されていないようです 試された方々如何でしたか
461名無しさん@お腹いっぱい。
2019/05/04(土) 17:24:53.37ID:obnlKcZu0 >>460
こちらのミスです、
679行付近の以下の行
if (brand.Code == 102 | (brand.Code > 3900 & brand.Code < 3920)) {//brand.Code == 102 |
と対応する「}」693行付近をコメントアウトしてください。
テストを実行すると、101、6758、7203、9984、7974がデータ更新されるはずです。
* 手元にあるコードは編集後のため、アップしたコードの行番号が多少ずれている可能性があるかもしれません。
コメントアウトした部分は、全銘柄ダウンロードする場合のテストのための絞り込みで付け加えたコードです。
ダウンロードする5銘柄が条件に含まれていなかったため、ダウンロードがスキップしていました。
こちらのミスです、
679行付近の以下の行
if (brand.Code == 102 | (brand.Code > 3900 & brand.Code < 3920)) {//brand.Code == 102 |
と対応する「}」693行付近をコメントアウトしてください。
テストを実行すると、101、6758、7203、9984、7974がデータ更新されるはずです。
* 手元にあるコードは編集後のため、アップしたコードの行番号が多少ずれている可能性があるかもしれません。
コメントアウトした部分は、全銘柄ダウンロードする場合のテストのための絞り込みで付け加えたコードです。
ダウンロードする5銘柄が条件に含まれていなかったため、ダウンロードがスキップしていました。
462名無しさん@お腹いっぱい。
2019/05/04(土) 18:40:45.63ID:3uz4p1R00 レス有難うございます 動作確認しました ついでに今まで避けていたファイルからの銘柄更新に活用させていただきます
2019/05/05(日) 19:07:05.84ID:gyRzqU370
月足切り替えしたとき、画面切り替えにすごい時間がかかることに気づいて、原因を探ってみました。
不具合が出る条件
・MACDなどオシレーター表示
・IPOなど足の本数が少ない銘柄
・月足・週足などへ切り替えるタイミング
原因
MACDなどオシレーター表示時、計算する都合上、本数が足りない初日付近ではMACDが表示されないが、そのあたりを処理するときに不具合あり。
該当コードは、ChartDrawing.cs RecalcFormat()の中の//オシレータゾーンと書いてあるあたりから。
ChartUtil.SelectGoodValueの引数が、infinityで渡されてしまう場合があるため。
maxやminに初期値が入っていたら、op.SetScaleValues(1, 0, -1); と処理させれば回避可能。
不具合が出る条件
・MACDなどオシレーター表示
・IPOなど足の本数が少ない銘柄
・月足・週足などへ切り替えるタイミング
原因
MACDなどオシレーター表示時、計算する都合上、本数が足りない初日付近ではMACDが表示されないが、そのあたりを処理するときに不具合あり。
該当コードは、ChartDrawing.cs RecalcFormat()の中の//オシレータゾーンと書いてあるあたりから。
ChartUtil.SelectGoodValueの引数が、infinityで渡されてしまう場合があるため。
maxやminに初期値が入っていたら、op.SetScaleValues(1, 0, -1); と処理させれば回避可能。
464名無しさん@お腹いっぱい。
2019/05/06(月) 07:20:51.03ID:5dq57XCV0 >>463
ChartDrawing.cs には4か所見当たりますが以下の全部をop.SetScaleValues(1, 0, -1);に変えるのでしょうか
op.SetScaleValues(1, 0.5, 0);
op.SetScaleValues(1, 0, -1);
op.SetScaleValues(m, 0, -m);
op.SetScaleValues(mid + pitch, mid, mid - pitch);
ChartDrawing.cs には4か所見当たりますが以下の全部をop.SetScaleValues(1, 0, -1);に変えるのでしょうか
op.SetScaleValues(1, 0.5, 0);
op.SetScaleValues(1, 0, -1);
op.SetScaleValues(m, 0, -m);
op.SetScaleValues(mid + pitch, mid, mid - pitch);
2019/05/06(月) 08:33:18.84ID:4wbLiMPb0
op.SetScaleValues(mid + pitch, mid, mid - pitch);
これが書いてあるelse句内の4行を、さらにIF文で制御するっていうことですね。
if (min == Double.MaxValue || max == Double.MinValue)//新規
{
op.SetScaleValues(1, 0, -1);//新規
}
else//新規
{
double mid = (max + min) / 2;//オリジナル・コード
double pitch = ChartUtil.SelectGoodValue((max - min) / 2);//オリジナル・コード
mid = pitch * (int)(mid / pitch); //四捨五入しての整数倍//オリジナル・コード
op.SetScaleValues(mid + pitch, mid, mid - pitch);//オリジナル・コード
}
op.SetScaleValues(1, 0, -1);
これが正解かどうかはわからないが、これを設定したら問題がなくなったということでした。 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
これが書いてあるelse句内の4行を、さらにIF文で制御するっていうことですね。
if (min == Double.MaxValue || max == Double.MinValue)//新規
{
op.SetScaleValues(1, 0, -1);//新規
}
else//新規
{
double mid = (max + min) / 2;//オリジナル・コード
double pitch = ChartUtil.SelectGoodValue((max - min) / 2);//オリジナル・コード
mid = pitch * (int)(mid / pitch); //四捨五入しての整数倍//オリジナル・コード
op.SetScaleValues(mid + pitch, mid, mid - pitch);//オリジナル・コード
}
op.SetScaleValues(1, 0, -1);
これが正解かどうかはわからないが、これを設定したら問題がなくなったということでした。 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
466名無しさん@お腹いっぱい。
2019/05/06(月) 08:41:37.10ID:5dq57XCV0 有難うございました 試してみます
2019/05/06(月) 11:54:25.17ID:i/n74k140
Windows10のパソコンで本日2019年5月6日にスクリーニングすると、エラーが出るのですがほかの方はどうでしょうか?
2019/05/06(月) 12:05:08.68ID:i/n74k140
再起動して、確認したところ正常に戻りました。お騒がせいたしました。
469名無しさん@お腹いっぱい。
2019/05/06(月) 15:24:49.15ID:5dq57XCV0 >>465
これだとオシレータの表示がはみ出てしまう場合があるようですね例えば0-1ではなく0から10などの数値をとる場合などですが
4個のオシレータを全部突き抜けてチャート画面にも表示されました 月足表示の方は改善されていました
これだとオシレータの表示がはみ出てしまう場合があるようですね例えば0-1ではなく0から10などの数値をとる場合などですが
4個のオシレータを全部突き抜けてチャート画面にも表示されました 月足表示の方は改善されていました
2019/05/06(月) 16:13:46.11ID:4wbLiMPb0
はみ出るということは、
if (min == Double.MaxValue || max == Double.MinValue)
この条件以外の時でも、
op.SetScaleValues(1, 0, -1);//新規
これを実行している、という風に見えますね。
if (min == Double.MaxValue || max == Double.MinValue)
この条件以外の時でも、
op.SetScaleValues(1, 0, -1);//新規
これを実行している、という風に見えますね。
471名無しさん@お腹いっぱい。
2019/05/06(月) 18:32:40.23ID:5dq57XCV0 間違えてop.SetScaleValues(1, 0, -1); を最後に付け加えたみたいです
472名無しさん@お腹いっぱい。
2019/05/07(火) 18:23:42.10ID:gKpag40l0 どうしたスクリーニングができない
2019/05/07(火) 18:31:40.10ID:Ng9JQqgb0
yahooからDLできない?
2019/05/07(火) 20:01:39.06ID:Ng9JQqgb0
DLできました!yahoo時系列の更新が遅かっただけかな?
2019/05/09(木) 04:41:33.48ID:YIyR1i550
GW終わったら、ドル円とかダウとかのデータ取れなくなってるんですね
476名無しさん@お腹いっぱい。
2019/05/09(木) 07:13:25.95ID:8V08iVCq0 無尽蔵ですが、連休前(4月16日)の翌日からのデータDLを実行してます。
「2019/04/26のデータを取得中」の段階で、
「リーモートサーバーがエラーを返しました:(404)見つかりません」となり失敗して停止します。
なにか休日の関係の問題なのでしょうか?
「2019/04/26のデータを取得中」の段階で、
「リーモートサーバーがエラーを返しました:(404)見つかりません」となり失敗して停止します。
なにか休日の関係の問題なのでしょうか?
477名無しさん@お腹いっぱい。
2019/05/09(木) 07:47:10.38ID:/d2htVuf0 >>476
おそらくOmegaChartの祝日判定による不具合
Util.csのpublic static MemoryStream HttpDownloadの中に
Console.WriteLine(url);
を入れて実行してみるとエラー直前にアクセスしようとしたurlが確認できるよ。
おそらくOmegaChartの祝日判定による不具合
Util.csのpublic static MemoryStream HttpDownloadの中に
Console.WriteLine(url);
を入れて実行してみるとエラー直前にアクセスしようとしたurlが確認できるよ。
478名無しさん@お腹いっぱい。
2019/05/09(木) 08:35:26.41ID:v5Nlz6Fi0479名無しさん@お腹いっぱい。
2019/05/09(木) 16:58:55.93ID:DW/uWDxY0 >>475
5月6日まで取れていますね。
いよいよDreamVisorのサーバーが止まったみたいですね。
昨年の9月9日にあつた。
下記の修正をしないといけないのでは。
https://osdn.net/users/omegachartuser/pastebin/5858
OmegaChart DreamVisor終了対応 DownloadOrder.cs 追加修正ポイントには//☆DreamVisor終了対応
https://osdn.net/users/omegachartuser/pastebin/5859
OmegaChart DreamVisor終了対応 KenMille.cs 追加修正ポイントには//☆DreamVisor終了対応
https://osdn.net/users/omegachartuser/pastebin/5860
OmegaChart DreamVisor終了対応 Yahoo.cs 追加修正ポイントには//☆DreamVisor終了対応
https://osdn.net/users/omegachartuser/pastebin/5861
5月6日まで取れていますね。
いよいよDreamVisorのサーバーが止まったみたいですね。
昨年の9月9日にあつた。
下記の修正をしないといけないのでは。
https://osdn.net/users/omegachartuser/pastebin/5858
OmegaChart DreamVisor終了対応 DownloadOrder.cs 追加修正ポイントには//☆DreamVisor終了対応
https://osdn.net/users/omegachartuser/pastebin/5859
OmegaChart DreamVisor終了対応 KenMille.cs 追加修正ポイントには//☆DreamVisor終了対応
https://osdn.net/users/omegachartuser/pastebin/5860
OmegaChart DreamVisor終了対応 Yahoo.cs 追加修正ポイントには//☆DreamVisor終了対応
https://osdn.net/users/omegachartuser/pastebin/5861
2019/05/10(金) 18:55:09.34ID:hFvVQq100
データのダウンロード時に、株価指数と為替のチェックボックスを常にoffにするには、どう弄ればいいの?
481名無しさん@お腹いっぱい。
2019/05/11(土) 07:54:36.75ID:gxG8rhu70 無理に盛り上げようとしてる?
482名無しさん@お腹いっぱい。
2019/05/11(土) 15:23:44.32ID:nsZ204ji0 edatalabからダウンロードできなくなっているが(´・ω・`)
2019/05/11(土) 20:22:30.46ID:duCGaUGh0
今見ると、edatalab自体に問題はなさそう?
株価指数と為替のチェックボックスのcheckedにfalseを代入すると消えると思います。
Dreamvisor、ついに逝ったか。R.I.P.
株価指数と為替のチェックボックスのcheckedにfalseを代入すると消えると思います。
Dreamvisor、ついに逝ったか。R.I.P.
484名無しさん@お腹いっぱい。
2019/05/11(土) 21:57:33.79ID:xUHJJbjN0 DreamVisor終了対応上手くいっている人いますか?
OmegaChart DreamVisor終了対応の4つの.csを
Rev.8b0b2d2cで書き変えてVisual Studioのインストール
すると構文エラーメッセージが出てビルドできません。
OmegaChart DreamVisor終了対応の4つの.csを
Rev.8b0b2d2cで書き変えてVisual Studioのインストール
すると構文エラーメッセージが出てビルドできません。
2019/05/11(土) 23:17:14.92ID:nsZ204ji0
2019/05/12(日) 00:00:29.29ID:fAxbzDhk0
>>485
あなたの要望は、結構簡単にかなえられます。文字面にすると長いですが、慣れてきたら速いです。
Visual Studio C#でOmegaChartのコードを開いてみてください。
今回やりたいことは、「データのダウンロード」の画面でのことですから、その画面を開いてみます。
前述VS C#のソリューション・エクスプローラーで、「Download.cs」と書いてあるところをダブルクリックしますと見慣れた「データのダウンロード」画面の設計画面が出てきます。
今回の目的は、「株価指数」「為替」のところにチェックが入らないようにする改造です。なので、これらの名前をまず探ります。
「データのダウンロード」画面の設計画面、こちらの「株価指数」を軽く左クリックしてみてください。アクティブになったと思います。そのうえで右クリックしてプロパティをクリック。
おそらく、画面右下にプロパティが表示されていると思います。このプロパティの一番上の方に「Name」という項目を見つけてみてください。「_indicesCheckBox」という名前を確認できると思います。
これが「株価指数」の内部的な名前です。「為替」に関しても同じように内部的な名前を探してみてください。
内部的な名前を取得できたら、コード上でどういう風に扱われているかを調べます。
「データのダウンロード」画面の設計画面のどこでもいいですから、右クリックして「コードを表示」してみます。そのうえでメニューの「編集」-「検索と置換」-「フォルダーを指定して検索」
内部的な名前である「_indicesCheckBox」を「検索する文字列」に入力して「すべて検索」ボタンを押下します。
おそらく画面下の方に「検索結果」が出力されたと思います。
すると、私がさきほど書いた、「checkedにfalseを代入」という意味合いに近い内容であるものが440行目くらいに見つけられると思います。
_indicesCheckBox.Checked = _currentOrder.ForeignIndices;
これを
_indicesCheckBox.Checked = false;
へ変更するとチェックは消えます。
同じ要領で「為替」も処理してみてください。
ちなみに、実際に自分でもこの処理をして走行させてみたんですが、無尽蔵で更新してみたんですが、チェックは外れているにもかかわらず、日経平均は更新されました。
まあ、これはこれでいいのかもしれません。
あなたの要望は、結構簡単にかなえられます。文字面にすると長いですが、慣れてきたら速いです。
Visual Studio C#でOmegaChartのコードを開いてみてください。
今回やりたいことは、「データのダウンロード」の画面でのことですから、その画面を開いてみます。
前述VS C#のソリューション・エクスプローラーで、「Download.cs」と書いてあるところをダブルクリックしますと見慣れた「データのダウンロード」画面の設計画面が出てきます。
今回の目的は、「株価指数」「為替」のところにチェックが入らないようにする改造です。なので、これらの名前をまず探ります。
「データのダウンロード」画面の設計画面、こちらの「株価指数」を軽く左クリックしてみてください。アクティブになったと思います。そのうえで右クリックしてプロパティをクリック。
おそらく、画面右下にプロパティが表示されていると思います。このプロパティの一番上の方に「Name」という項目を見つけてみてください。「_indicesCheckBox」という名前を確認できると思います。
これが「株価指数」の内部的な名前です。「為替」に関しても同じように内部的な名前を探してみてください。
内部的な名前を取得できたら、コード上でどういう風に扱われているかを調べます。
「データのダウンロード」画面の設計画面のどこでもいいですから、右クリックして「コードを表示」してみます。そのうえでメニューの「編集」-「検索と置換」-「フォルダーを指定して検索」
内部的な名前である「_indicesCheckBox」を「検索する文字列」に入力して「すべて検索」ボタンを押下します。
おそらく画面下の方に「検索結果」が出力されたと思います。
すると、私がさきほど書いた、「checkedにfalseを代入」という意味合いに近い内容であるものが440行目くらいに見つけられると思います。
_indicesCheckBox.Checked = _currentOrder.ForeignIndices;
これを
_indicesCheckBox.Checked = false;
へ変更するとチェックは消えます。
同じ要領で「為替」も処理してみてください。
ちなみに、実際に自分でもこの処理をして走行させてみたんですが、無尽蔵で更新してみたんですが、チェックは外れているにもかかわらず、日経平均は更新されました。
まあ、これはこれでいいのかもしれません。
2019/05/12(日) 04:31:41.72ID:MCakWW4m0
>>484
「条件付きコンパイル シンボル」を空欄にしてリビルドすればいいだけじゃないの?
「条件付きコンパイル シンボル」を空欄にしてリビルドすればいいだけじゃないの?
2019/05/12(日) 12:13:07.53ID:GlbSADKj0
edatalabはなんでダウンロードできんの?(´・ω・`)
404サイトがありませんと出る。( ´∀`)
404サイトがありませんと出る。( ´∀`)
2019/05/12(日) 13:37:14.64ID:fAxbzDhk0
2019/05/12(日) 13:54:10.41ID:B7ROkQq00
>>484 ヤフーからの取得分は、ファイルのコードを一部書きえ変えないといけなくない?
2019/05/12(日) 15:40:52.81ID:fAxbzDhk0
>>484
DreamVisor終了対応を出した後に、yahoo.cs自体が改変されてますので、エラーになるのだと思います。
DreamVisor終了対応を出した後に、yahoo.cs自体が改変されてますので、エラーになるのだと思います。
2019/05/12(日) 22:49:49.66ID:XYtYfols0
「ファイル MainFrame.resx を処理できませんでした。
インターネットまたは制限付きゾーン内にあるか、ファイルに Web のマークがあるためです。
これらのファイルを処理するには、Web のマークを削除してください。」
ビルドすると上記のようなエラーが4つ出てビルドできません。サインインした状態でビルドしているのですが、何が原因なのでしょうか?
インターネットまたは制限付きゾーン内にあるか、ファイルに Web のマークがあるためです。
これらのファイルを処理するには、Web のマークを削除してください。」
ビルドすると上記のようなエラーが4つ出てビルドできません。サインインした状態でビルドしているのですが、何が原因なのでしょうか?
2019/05/12(日) 23:28:05.48ID:XYtYfols0
自己解決しました。
問題が起きるファイルを右クリックしてプロパティ画面を出して、全般タブで
「このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。」
の横にある「許可する」のチェックボックスをオンにしたらエラーが出なくなりました。
問題が起きるファイルを右クリックしてプロパティ画面を出して、全般タブで
「このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。」
の横にある「許可する」のチェックボックスをオンにしたらエラーが出なくなりました。
2019/05/14(火) 15:35:43.11ID:G0hDT60N0
「データのダウンロード」は2か月前までしか遡れないようですが、1年前ぐらいまで遡ってデータの取得をするにはどうすればいいのでしょうか?
2019/05/14(火) 15:44:35.72ID:BOQ9bHQQ0
2019/05/14(火) 16:08:26.40ID:G0hDT60N0
>>495
ありがとうございます。
それと、dreamvisor終了で為替、ダウ、ナスダック、S&P、業種別指数が4/26までしか取得できない状態になっていますが、
これらを取得する方法はないでしょうか?
ありがとうございます。
それと、dreamvisor終了で為替、ダウ、ナスダック、S&P、業種別指数が4/26までしか取得できない状態になっていますが、
これらを取得する方法はないでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外相、台湾問題巡りフランスに支持要請−高市首相発言「挑発的」 [♪♪♪★]
- 【芸能】『バンダイナムコフェス』上海公演 日本人歌手・大槻マキが歌唱中に強制退場… 急に音を止められスタッフらしき人達に [冬月記者★]
- 橋下徹氏 高市首相“台湾有事”発言に「政治家の失言で一部の人でも仕事がキャンセルに…我々は認めていいのかな」疑問呈す [muffin★]
- 「怒りに震えて涙が出た」 同性婚認めず「合憲」判断に原告が反発 「差別的な判決だ」 [ぐれ★]
- 《「最近いつした?」が口癖》国分太一 女性への“わいせつ事案”報道…目撃されていた「下ネタ好き」と「悪辣なイジり癖」 [Ailuropoda melanoleuca★]
- 「インバウンド政策上、中国は重要」、訪日自粛で金子国交相「早く通常の状況に戻っていただきたい」★2 [ぐれ★]
- 【悲報】高市早苗さん、就任たった1ヶ月で国が滅茶苦茶になる [115996789]
- ほんで天心の言うシン・ボクシングってなんだったの?
- 深夜雑談会
- 【動画】上海バンダイナムコフェス、ワンピース歌ってる途中に中国政府「日本人の公演全面禁止」発令された瞬間強制終了 怖すぎ★4 [579392623]
- お前らメガネ亡くした時どうしてんの?
- 真夜中の🏡
