我在 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);
}
通过更改数组值得到不同的结果
这可能与您的
for
循环的位置有关,它位于 onInit()
函数内部?
值得注意的是,由于您没有使用normalizeDouble()
,所以订单被接受了