- например - торговый лот в настройках = 0, советник не может открыть сделку потому, что лот = 0 .
- Ограничение на спред в советнике, не открывает позиции.
- Действительно нет сигналов на открытие позиций в тестируемый период.
А проверки только Вы видите, код Ваш не прикрепился.
примеров тысячи....
- например - торговый лот в настройках = 0, советник не может открыть сделку потому, что лот = 0 .
- Ограничение на спред в советнике, не открывает позиции.
- Действительно нет сигналов на открытие позиций в тестируемый период.
А проверки только Вы видите, код Ваш не прикрепился.
примеров тысячи....
- например - торговый лот в настройках = 0, советник не может открыть сделку потому, что лот = 0 .
- Ограничение на спред в советнике, не открывает позиции.
- Действительно нет сигналов на открытие позиций в тестируемый период.
А проверки только Вы видите, код Ваш не прикрепился.
примеров тысячи....
Проверка на корректность Лота есть, сигналы точно есть - это сеточник, ограничений по спреду нет...
ну тогда еще 100500 вариантов.
сеточник спокойно проходит маркет тестирование.
ну тогда еще 100500 вариантов.
сеточник спокойно проходит маркет тестирование.
Согласен, но почему-то не этот:)
Здесь запрещено обсуждать ботов из маркета. А выкладывать вы его в открытом виде не будете. Да и тем с таким названием уже 100500, как и причин такой темы.
Кто может растолковать по какой причине маркет возвращает эту ошибку? Все проверки в советнике есть в наличии...
ну как бы суть я конечно понимаю - нет торговых операций, но по какой причине?
Неужели так сложно воспользоваться поиском по сайту и создать 100500 копию ветки!
https://www.mql5.com/ru/search#!keyword=no%20trading%20operations&method=2&module=mql5_module_forum
- www.mql5.com
Просто хочу обсудить код:
double CheckVolumeValue(double volume) { double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(volume<min_volume) { Print("Volume is less than the minimum"); return(min_volume); } double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); if(volume>max_volume) { Print("Volume is greater than the maximum"); return(max_volume); } double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP); int ratio=(int)MathRound(volume/volume_step); if(MathAbs(ratio*volume_step-volume)>0.0000001) { Print("Wrong lot size"); return(min_volume); } if(volume<MarketInfo(Symbol(),MODE_MINLOT)) { Print("Trade stop invalid lot size"); Comment("Trade stop invalid lot size"); return(MarketInfo(Symbol(),MODE_MINLOT)); } return(volume); }
немного доработал стандартную проверку что бы возвращала не ошибку а правильный лот...
здесь вызываем эту функцию:
if(!OrderSend(Symbol(),cmd,CheckVolumeValue(Lot),NormalizeDouble(priceStep,Digits()),Slippage,0,0,"",magic,0))
В тестере и на реале у меня стоит этот робот - работает все четко! Даже при введении неправильного лота все равно подставляется правильный и работает дальше...
а сами знаете где возвращается ошибка 4051! Это вообще...!
Просто хочу обсудить код:
немного доработал стандартную проверку что бы возвращала не ошибку а правильный лот...
здесь вызываем эту функцию:
В тестере и на реале у меня стоит этот робот - работает все четко! Даже при введении неправильного лота все равно подставляется правильный и работает дальше...
а сами знаете где возвращается ошибка 4051! Это вообще...!
Просто хочу обсудить код:
немного доработал стандартную проверку что бы возвращала не ошибку а правильный лот...
здесь вызываем эту функцию:
В тестере и на реале у меня стоит этот робот - работает все четко! Даже при введении неправильного лота все равно подставляется правильный и работает дальше...
а сами знаете где возвращается ошибка 4051! Это вообще...!
double CheckVolumeValue(double volume) { double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(volume<min_volume) { Print("Volume is less than the minimum"); return(min_volume); } double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); if(volume>max_volume) { Print("Volume is greater than the maximum"); return(max_volume); } double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP); int ratio=(int)MathRound(volume/volume_step); if(MathAbs(ratio*volume_step-volume)>0.0000001) { Print("Wrong lot size"); return(min_volume); } if(volume<MarketInfo(Symbol(),MODE_MINLOT)) { Print("Trade stop invalid lot size"); Comment("Trade stop invalid lot size"); return(MarketInfo(Symbol(),MODE_MINLOT)); } return(volume); }И до этого места никогда не дойдёт
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Кто может растолковать по какой причине маркет возвращает эту ошибку? Все проверки в советнике есть в наличии...
ну как бы суть я конечно понимаю - нет торговых операций, но по какой причине?