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));
OmegaChartスレ ver.11
■ このスレッドは過去ログ倉庫に格納されています
563名無しさん@お腹いっぱい。
2019/05/28(火) 12:09:37.80ID:T72eJEyD0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【節約】ローソンが“○○だけ”のコスパ追求「一点グルメ」弁当発表 “コーンだけ”や“サケだけ”具材1種で価格最大5割安 [煮卵★]
- ショートスリーパー堀大輔氏 1日30分睡眠の1週間ライブ終了「体力はあり余っている」アクシデントありも完走 [Anonymous★]
- 【速報】さらに7000万円不明 「赤い羽根」募金会明らかに 使途不明金は計2億5000万円に ★2 [おっさん友の会★]
- 【🦗】「気づかず半分飲んだ」くら寿司汁物に“コオロギ”混入?Threads投稿拡散、運営会社「把握している」保健所に報告 [ぐれ★]
- そりゃホームからなくなるわけだ…「立ち食いそば」が絶滅寸前の危機 哀愁漂う昭和の遺産がなくなりつつある理由 [ぐれ★]
- 【速報】地震 茨城県で最大震度3 [ニョキニョキ★]