読者です 読者をやめる 読者になる 読者になる

プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

為替レートを取得するあれこれ

C# trade アプリ

MT4では過去データがそろっていて、簡単に取得でき
EAを作ればバックテストが出来る。

しかし、1分以下の粒度を求める場合や
複数通貨エントリー型のバックテストはMT4では対応できない。
厳密にはやりようはあるようですが・・
様々な手法を検証する為、自前でアプリを作成した。

レートを取得するクラス

using System;
using System.Net;
using System.Text;

namespace GetRate {
    class RateClass {
        public const int ccyNum = 34;
        public string[] updateTime = new string[ccyNum];
        public string[] ccyPairName = new string[ccyNum];
        public double[] bid = new double[ccyNum];
        public double[] ask = new double[ccyNum];
        public double[] spread = new double[ccyNum];

        public async void GetPrice() {
            try {
                WebClient client = new WebClient();
                client.Encoding = Encoding.UTF8;
                string rateStr = await client.DownloadStringTaskAsync(
                    "諸事情で出せません");
                client.Dispose();
                string[] tempStr1 = rateStr.Split('\n');
                for(int i=0; i < ccyNum; i++) {
                    string[] tempStr2 = tempStr1[i].Split(',');
                    updateTime[i] = tempStr2[0];
                    ccyPairName[i] = tempStr2[1].Replace("/", "");
                    bid[i] = double.Parse(tempStr2[3]);
                    ask[i] = double.Parse(tempStr2[4]);
                    spread[i] = ask[i] - bid[i];
                    if (spread[i] >= 0.001) {
                        spread[i] = Math.Round(spread[i]*100, 3);
                    }
                    else {
                        spread[i] = Math.Round(spread[i]*10000, 3);
                    }
                }
            }
            catch {
                return;
            }
        }
    }
}

出力画面
f:id:tos5511:20160131053853p:plain



が、こんな記事が・・

computer-technology.hateblo.jp
うーん。マナー違反か。。
そうなるとやはりFIXAPI接続を早く実装しないといかんな・・