在 OrderSend MQL4 函数中使用 for 循环的问题

问题描述 投票:0回答:1

我在 MQL4 编程中遇到问题。如果我的朋友能帮助我,我将不胜感激。 我首先用公式计算了Tenkensen和Kijonsen的值。 随着智能交易的执行,我预计将根据定义的数组打开 4 个 Buy Limit 类型的交易。(每次执行循环时) 但通过执行代码,会随机开启一笔交易、两笔交易和三笔交易。 当我使用**评论**功能时,一切都是正确的,但结果与SendOrder不正确 谢谢

extern int SL = 20;    // Enter StopLost (pips)
extern int TP = 20 ; //Enter TakeProfit(pips)

string charts[] = {"USDCAD","USDJPY"};  // charts can be added like "EURUSD" , "USDCHF" 
int TimeFrame[] = {43200,10080};     // 43200 => PERIOD_MN1 , 10080 => PERIOD_W1

int OnInit()
  {
  
SL *=10;
TP *=10;
  
   for(int i = 0; i<2; i++)
     {
      for(int j = 0; j<2; j++)
        {
         Sleep(5000);
 
            double TenkenSen = (iHigh(charts[i],TimeFrame[j],iHighest(charts[i],TimeFrame[j],MODE_HIGH,9,0))+ iLow(charts[i],TimeFrame[j],iLowest(charts[i],TimeFrame[j],MODE_LOW,9,0))) /2; // Computing TenKensen ICHIMOKO
            double KijonSen  = (iHigh(charts[i],TimeFrame[j],iHighest(charts[i],TimeFrame[j],MODE_HIGH,26,0))+ iLow(charts[i],TimeFrame[j],iLowest(charts[i],TimeFrame[j],MODE_LOW,26,0))) /2; // Computing KijonSen ICHIMOKO
            
            int TiketBuy = OrderSend(charts[i],OP_BUYLIMIT,0.01,KijonSen,5,KijonSen-(SL*Point),KijonSen+(TP*Point),"Test",2222,0,clrGreen);
               
                 }
    }
   
   return(INIT_SUCCEEDED);
  }

通过更改数组值得到不同的结果

mql4
1个回答
0
投票

这可能与您的

for
循环的位置有关,它位于
onInit()
函数内部? 值得注意的是,由于您没有使用
normalizeDouble()

,所以订单被接受了
© www.soinside.com 2019 - 2024. All rights reserved.