示例#1
0
        public static void GetDataFromOANDA(int id, string ccyPair)
        {
            var db    = new DataBase();
            var start = new DateTime(2017, 2, 8, 2, 40, 0);
            var last  = new DateTime(2017, 8, 10, 0, 0, 0);

            while (start < last)
            {
                var result = Rest.GetCandles(ccyPair, id, start, 5000, granularity: "M10");
                result.ForEach(data =>
                {
                    var insertSQL = $@"
INSERT INTO USDJPY_10m(
time,
openBid,
openAsk,
highBid,
highAsk,
lowBid,
lowAsk,
closeBid,
closeAsk,
openMid,
highMid,
lowMid,
closeMid
)
VALUES
(
'{data.time.ToString("yyyy-MM-dd HH:mm:ss")}',
{data.openBid},
{data.openAsk},
{data.highBid},
{data.highAsk},
{data.lowBid},
{data.lowAsk},
{data.closeBid},
{data.closeAsk},
{data.openMid},
{data.highMid},
{data.lowMid},
{data.closeMid}
)
";
                    db.ExecuteNonQuery(insertSQL);
                });
                start = result.Last().time;
            }
        }
示例#2
0
        /// <summary>
        /// 直近dataCount本のデータを取得し,DBに追加
        /// </summary>
        private List <Candle> GetCandle(int dataCount = 500)
        {
            var result   = Rest.GetCandles("USD_JPY", AccId, count: dataCount);
            var sql      = "SELECT MAX(time) FROM USDJPY_10m";
            var lastDate = DB.ExecuteScalar(sql, DateTime.MinValue);

            foreach (var data in result.Where(data => data.time > lastDate))
            {
                var insertSQL = $@"
INSERT INTO USDJPY_10m(
time,
openBid,
openAsk,
highBid,
highAsk,
lowBid,
lowAsk,
closeBid,
closeAsk,
openMid,
highMid,
lowMid,
closeMid
)
VALUES
(
'{data.time.ToString("yyyy-MM-dd HH:mm:ss")}',
{data.openBid},
{data.openAsk},
{data.highBid},
{data.highAsk},
{data.lowBid},
{data.lowAsk},
{data.closeBid},
{data.closeAsk},
{data.openMid},
{data.highMid},
{data.lowMid},
{data.closeMid}
)
";
                DB.ExecuteNonQuery(insertSQL);
            }
            //テクニカル指標生成
            return(result);
        }
示例#3
0
        static void Main(string[] args)
        {
            var db = new DataBase();
            var id = int.Parse(ConfigurationManager.AppSettings["AccountId"]);
            //var result = Rest.GetAccountDetails(8048648);
            //var result = Rest.GetInstruments(id);
            //var result = Rest.GetPositions(id);
            //var result = Rest.GetTradeList(id);
            //var result = Rest.GetCandles("USD_JPY", id,count:5000);
            //var result = Rest.GetOrderList(id);
            //var dir = new Dictionary<string, string>();
            //dir.Add("instrument", "USD_JPY");
            //dir.Add("units", "10000");
            //dir.Add("side", "sell");
            //dir.Add("type", "market");
            //Rest.PostMarketOrder(id, dir);

            var start = new DateTime(2005, 1, 1);
            var last  = new DateTime(2017, 1, 1);

            while (start < last)
            {
                var result = Rest.GetCandles("USD_JPY", id, start, 5000, granularity: "M10");
                result.ForEach(data =>
                {
                    var insertSQL = $@"
INSERT INTO USDJPY_10m(
time,
openBid,
openAsk,
highBid,
highAsk,
lowBid,
lowAsk,
closeBid,
closeAsk,
openMid,
highMid,
lowMid,
closeMid
)
VALUES
(
'{data.time.ToString("yyyy-MM-dd hh:mm:ss")}',
{data.openBid},
{data.openAsk},
{data.highBid},
{data.highAsk},
{data.lowBid},
{data.lowAsk},
{data.closeBid},
{data.closeAsk},
{data.openMid},
{data.highMid},
{data.lowMid},
{data.closeMid}
)
";
                    db.ExecuteNonQuery(insertSQL);
                });
                start = result.Last().time;
            }
        }