Найдите на истории участок, где, по вашему мнению должен открываться Buy, и напишите перед условием открытия Buy
if(TimeCurrent() == StrToTime("<дата, например 2009.01.15 14:00>")) Print("ma905 = ", ma905, "ma90 = ", ma90, ", ma90_5 = ", ma90_5, ", ma145 = ", ma145, ", ma14 = ", ma14, ", ma14_5 = ", ma14_5);
В журнале увидите значения каждой МА и сравните с теми, что на графике. Таким образом вы убедитесь в правильности исполнения (неисполнения) условия.
Найдите на истории участок, где, по вашему мнению должен открываться Buy, и напишите перед условием открытия Buy
В журнале увидите значения каждой МА и сравните с теми, что на графике. Таким образом вы убедитесь в правильности исполнения (неисполнения) условия.
Чють понял а чюточку нет Это надо всавить в код Так ли я понял?
double ma90_5,
ma90,
ma905,
ma14_5,
ma14,
ma145;
int res;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//---- get Moving Average
ma90_5 =iMA(NULL,0,90,-5,MODE_EMA,PRICE_CLOSE, 1);
ma90 =iMA(NULL,0,90, 0,MODE_EMA,PRICE_CLOSE, 1);
ma905 =iMA(NULL,0,90, 5,MODE_EMA,PRICE_CLOSE, 1);
ma14_5 =iMA(NULL,0,14,-5,MODE_EMA,PRICE_CLOSE, 1);
ma14 =iMA(NULL,0,14, 0,MODE_EMA,PRICE_CLOSE, 1);
ma145 =iMA(NULL,0,14, 5,MODE_EMA,PRICE_CLOSE, 1);
//---- sell conditions
if(ma905>ma90 && ma90>ma90_5 && ma145>ma14 && ma14>ma14_5)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
return;
}
//---- buy conditions
if(ma905<ma90 && ma90<ma90_5 && ma145<ma14 && ma14<ma14_5)
{
if(TimeCurrent() == StrToTime("<дата, например 2009.01.15 14:00>"))
Print("ma905 = ", ma905, "ma90 = ", ma90, ", ma90_5 = ", ma90_5, ", ma145 = ", ma145, ", ma14 = ", ma14, ", ma14_5 = ", ma14_5);
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
return;
}
//----
}
Найдите на истории участок, где, по вашему мнению должен открываться Buy, и напишите перед условием открытия Buy
А вы поставили после условия. Как вы увидите результаты, если в тело условия выполнение программы не заходит?
И вместо <дата, например 2009.01.15 14:00> поставьте ДАТУ и ВРЕМЯ, а не приведенную мной надпись.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Неоткрывает BUY
void CheckForOpen()
{
double ma90_5,
ma90,
ma905,
ma14_5,
ma14,
ma145;
int res;
//---- go trading only for first tiks of new bar
if(Volume[0]>1) return;
//---- get Moving Average
ma90_5 =iMA(NULL,0,90,-5,MODE_EMA,PRICE_CLOSE, 1);
ma90 =iMA(NULL,0,90, 0,MODE_EMA,PRICE_CLOSE, 1);
ma905 =iMA(NULL,0,90, 5,MODE_EMA,PRICE_CLOSE, 1);
ma14_5 =iMA(NULL,0,14,-5,MODE_EMA,PRICE_CLOSE, 1);
ma14 =iMA(NULL,0,14, 0,MODE_EMA,PRICE_CLOSE, 1);
ma145 =iMA(NULL,0,14, 5,MODE_EMA,PRICE_CLOSE, 1);
//---- sell conditions
if(ma905>ma90 && ma90>ma90_5 && ma145>ma14 && ma14>ma14_5)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
return;
}
//---- buy conditions
if(ma905<ma90 && ma90<ma90_5 && ma145<ma14 && ma14<ma14_5)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
return;
}
//----
}