初学者的问题 MQL5 MT5 MetaTrader 5 - 页 560

 
你能告诉我在代码中怎么写才能使订单不在每个 tick 上打开吗?
 
int OnInit()
  {
   double LotSize(string symbol,datetime tbar)
     {
      double size;
      string BQ,currency=AccountCurrency();
      switch(MarketInfo(symbol,MODE_PROFITCALCMODE))
        {
         case 0:
           {
            int sbar=iBarShift(symbol,0,tbar);
            size=MarketInfo(symbol,MODE_LOTSIZE);
            if(StringSubstr(symbol,3,3)=="USD") break;
            if(StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
            else
              {
               BQ=StringSubstr(symbol,0,3)+"USD";
               if(iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
               if(iClose(BQ,0,0)==0) break;
               int BQbar=iBarShift(BQ,0,tbar);
               if(StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
               else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
              }
           }
         break;
         case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
         case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
        }
      if(currency!="USD")
        {
         BQ=currency+"USD";
         if(iClose(BQ,0,0)==0)
           {
            BQ="USD"+currency;
            size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
           }
         else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
        }
      return(size);
     }
编译时有两个错误: ,我搞不清楚哪里出了问题,如何解决。请给我一个提示。
 
Alexandr Saprykin:
编译过程中出现了两个错误:我不知道哪里出了问题,如何解决。能否请您告诉我如何解决这个问题?
心灵感应者正在度假,你在代码头中既没有头也没有扩展。我怎样才能知道它是什么,用什么语言写的呢 :)
 
Karputov Vladimir:
心灵感应者在度假,你没有头像或头像代码中的扩展。去弄清楚它是什么,是用什么语言写的 :)

对于非远程路径)))

//+------------------------------------------------------------------+
//|                                                   Break Even.mq4 |
//|                                                 Copyright 2016,  |
//|                                         /ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, "
#property link      "/ru"
#property version   "1.00"
#property strict
#property indicator_chart_window   //отображение внутри основного окна
#property indicator_buffers 1
#property indicator_plots   1
//--- plot BreakEven
#property  indicator_label1  "BreakEven"     //название индикатора
#property  indicator_type1   DRAW_LINE      //рисовать линией
#property  indicator_color1  clrGold       // цвет индикатора
#property  indicator_style1  STYLE_SOLID  //стиль индикатора
#property  indicator_width1  1
//--- indicator buffers
double         BreakEvenBuffer[];
//+------------------------------------------------------------------+
//| Рассчитываем точку безубыточности                                |
//+------------------------------------------------------------------+
int OnInit()
  {
   double LotSize(string symbol,datetime tbar)
     {
      double size;
      string BQ,currency=AccountCurrency();
      switch(MarketInfo(symbol,MODE_PROFITCALCMODE))
        {
         case 0:
           {
            int sbar=iBarShift(symbol,0,tbar);
            size=MarketInfo(symbol,MODE_LOTSIZE);
            if(StringSubstr(symbol,3,3)=="USD") break;
            if(StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
            else
              {
               BQ=StringSubstr(symbol,0,3)+"USD";
               if(iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
               if(iClose(BQ,0,0)==0) break;
               int BQbar=iBarShift(BQ,0,tbar);
               if(StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
               else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
              }
           }
         break;
         case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
         case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
        }
      if(currency!="USD")
        {
         BQ=currency+"USD";
         if(iClose(BQ,0,0)==0)
           {
            BQ="USD"+currency;
            size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
           }
         else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
        }
      return(size);
     }
//--- indicator buffers mapping
   SetIndexBuffer(0,BreakEvenBuffer);

//---
   return(INIT_SUCCEEDED);
  }
 
Alexandr Saprykin:

对于那些没有心灵感应的人))))

将LotSize函数从OnInit()中取出。
 
edutak:

提示逻辑上的错误,为什么相反的订单不能打开?

关于交易、自动交易系统和策略测试的论坛

初学者的问题

Karputov Vladimir, 2016.04.16 13:04

心灵感应者在度假,你没有一个头或代码头的扩展。去弄清楚它是什么,是用什么语言写的 :)

 
Karputov Vladimir:

需要描述算法吗?
 
edutak:
需要描述算法吗?

关于交易、自动交易系统和交易策略测试的论坛

初学者的问题

Karputov Vladimir, 2016.04.16 13:04

心灵感应者在度假, 你没有一个头或代码头的扩展 去弄清楚它是什么,是用什么语言写的 :)

 
savinkins:
我有终端的默认用户名和密码。选择列表中没有服务器名称,我复制了它。现在我在网络列表中根本没有任何代理,尽管余额显示。
 
savinkins:

为了更新终端,连接到MetaQuotes-Demo交易服务器。