(MT4ClientApi)MT4跟单之账户篇

发布于 2019-11-02 00:05:37

查询交易记录

MainServer srv = QuoteClient.LoadSrv(
@"C:\srv\CreatForex-Demo.srv");
QuoteClient qc = new QuoteClient(99999, "abcd123", srv.Host, srv.Port);
Console.WriteLine("正在连接...");
qc.Connect();
Console.WriteLine("已连接到服务器!!!");
DateTime from = DateTime.Now.AddDays(-1);
DateTime to = DateTime.Now;
foreach (Order order in qc.DownloadOrderHistory(from, to))
    Console.WriteLine(order);
Console.WriteLine("任意键退出...");
Console.ReadKey();
qc.Disconnect();

备注:From和To参数是服务器时间,而不是本地时间。有些服务器没有准确地说明From和To时间,所以建议扩大几个小时确保查询范围。

获取平台时间

MainServer srv = QuoteClient.LoadSrv(
@"C:\srv\CreatForex-Demo.srv");
QuoteClient qc = new QuoteClient(99999, "abcd123", srv.Host, srv.Port);
Console.WriteLine("正在连接...");
qc.Connect();
Console.WriteLine("已连接到服务器!!!");
qc.Subscribe("EURUSD");
while (qc.ServerTime == DateTime.MinValue)
    Thread.Sleep(10);
Console.WriteLine(qc.ServerTime);
Console.WriteLine("任意键退出...");
Console.ReadKey();
qc.Disconnect();

获取历史k线

void Run()
{
    try
    {
        MainServer srv = QuoteClient.LoadSrv(
        @"C:\srv\CreatForex-Demo.srv");
        QuoteClient qc = new QuoteClient(99999, "abcd123", srv.Host, srv.Port);
        qc.OnQuoteHistory += new QuoteHistoryEventHandler(qc_OnQuoteHistory);
        Console.WriteLine("正在连接...");
        qc.Connect();
        Console.WriteLine("已连接到服务器!!!");
        qc.Subscribe("EURUSD");
        // ServerTime update goes with quotes, wait for first quote
        while (qc.ServerTime == new DateTime())
            Thread.Sleep(10);
        //request 3 previuos bars
        Timeframe tf = Timeframe.M5;
        qc.DownloadQuoteHistory("EURUSD", tf, qc.ServerTime.AddMinutes(-3 * (int)tf), 0);
        Console.WriteLine("任意键退出...");
        Console.ReadKey();
        qc.Disconnect();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}
void qc_OnQuoteHistory(object sender, QuoteHistoryEventArgs args)
{
    if (args.Bars.Length == 1 && args.Bars[0].Time == new DateTime(1970, 1, 1))
        return; 
    foreach (Bar bar in args.Bars)
        Console.WriteLine(bar);
}
0 条评论

发布
问题