Маркет: no trading operations - страница 5

 
Alexey Viktorov:

А я пропустил или никто не уточнял что вы имеете в виду говоря о мултивалютном советнике?

Разве советник который может торговать только той валютной парой, на которую он поставлен, можно называть мультвалютным даже если он может торговать на разных парах?

О какой мультивалютности можно говорить в тестере МТ4?

Ну у меня мультивалютник, это та штука, что ставиться на один график и торгует несколько символов, код один под обе платформы. Но если запустить в тестере мт4, то торгует по одной паре, а если в онлайн, то торгует все пары. Там прописаны условия.

 
Vitaly Muzichenko:

Ну у меня мультивалютник, это та штука, что ставиться на один график и торгует несколько символов, код один под обе платформы. Но если запустить в тестере мт4, то торгует по одной паре, а если в онлайн, то торгует все пары. Там прописаны условия.


Ну так не должно быть проблем с этим тогда. 

такой же мультивалютник, проходит тест.

А no trading operation может быть от настроения тестера :-) - дада он бывает не в настроении (обновляется, спит, выходной) и он не совершает операций. 

Достаточно попробовать другой спред или подождать сутки и он снова в настроении все пропускает. 

 
Vladislav Andruschenko:


Ну так не должно быть проблем с этим тогда. 

такой же мультивалютник, проходит тест.

А no trading operation может быть от настроения тестера :-) - дада он бывает не в настроении (обновляется, спит, выходной) и он не совершает операций. 

Достаточно попробовать другой спред или подождать сутки и он снова в настроении все пропускает. 

Делаю 10-ю попытку, сокращая в коде проверки. Пока безрезультатно, проверок конечно много - вроде все отключил

 
Vitaly Muzichenko:

Делаю 10-ю попытку, сокращая в коде проверки. Пока безрезультатно, проверок конечно много - вроде все отключил

спред и пару пробовали менять? 

проверки с статьи на сайте? 
 
Vladislav Andruschenko:

спред и пару пробовали менять? 

проверки с статьи на сайте? 

Пока на этом всё, ничего не пошло, лот прописал прям в OrderSend(...)

Сделаю отдельный файл с минимальным функционалом и буду пробовать добавлять, тем самым обнаружу проблемное место, а то сейчас рабочий советник поломаю вырезанием кусков)

 
Vitaly Muzichenko:

Пока на этом всё, ничего не пошло, лот прописал прям в OrderSend(...)

Сделаю отдельный файл с минимальным функционалом и буду пробовать добавлять, тем самым обнаружу проблемное место, а то сейчас рабочий советник поломаю вырезанием кусков)

Во. Вот. Я также психовать раньше. Вырезал куски. Ломал и забывал что сделал. А оказалось что тестер просто был не в настроении. )))
 
Vitaly Muzichenko:

Ну у меня мультивалютник, это та штука, что ставиться на один график и торгует несколько символов, код один под обе платформы. Но если запустить в тестере мт4, то торгует по одной паре, а если в онлайн, то торгует все пары. Там прописаны условия.

Я спрашивал о советнике Максима.

И считаю, что в ближайшем будущем этот вопрос надо выяснять каждый раз когда есть слово мультивалютный... Потому, что многие считают мультивалютным тот советник который можно поставить на любую валютную пару и он будет торговать...

 
Evgeny Belyaev:

Если лот меньше минимально допустимого, то приравняем лот к минимально допустимому. Соответственно если он больше, то EA будет торговать большим лотом.

Никакие проверки на тестер \ не тестер не нужны.

Ну и не забываем все остальные проверки. Маржа, нормализация...

Виталий вам уже давно указал на вашу ошибку, а вместо того чтобы найти ошибку вы разводите треп.

Берете простейший еа по открытию позиций , пускай он будет шлепать ордера на каждом тике. Никакой другой торговой логики не нужно. Проверяете все ваши функции проверки. Если он проходит проверку значит все ок, не проходит, проверяете каждую строчку кода. Надо понимать что валидатор может задать любой лот в настройках 0 или отрицательный, при этом если хватает маржи то за время тестирования бот должен совершать сделки.

PS  проверку желательно проводить на сервере MQ, т.к валидатор проводит проверку на этом сервере.
bool CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(false);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(false);
   }

   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(false);
   }
     
   if(volume*MarketInfo(Symbol(),MODE_MARGINREQUIRED)>AccountEquity())
   {
      Print("Trade stop is not enough free margin to begin");
      Comment("Trade stop is not enough free margin to begin");
      return(false);
   }
   if(volume<MarketInfo(Symbol(),MODE_MINLOT))
   {
      Print("Trade stop invalid lot size");
      Comment("Trade stop invalid lot size"); 
      return(false);
   }
   return(true);
}
if(!CheckVolumeValue(lt))return;   
   if(!OrderSend(Symbol(),cmd,NormalizeDouble(lt,2),NormalizeDouble(priceStep,Digits()),Slippage,0,0,"",magic,0))

Вы наверное не заметили, я раньше показывал проверку - не прошел тест...

добавил 

 if(IsTesting())lоt=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);

Получил: 

Автоматическое тестирование продукта успешно завершено:

Тестирование версии успешно пройдено. Теперь вы можете отправить его на проверку модератора.

Так о чем вы там говорили?...

 
Alexey Viktorov:

Я спрашивал о советнике Максима.

И считаю, что в ближайшем будущем этот вопрос надо выяснять каждый раз когда есть слово мультивалютный... Потому, что многие считают мультивалютным тот советник который можно поставить на любую валютную пару и он будет торговать...

У меня вообще сеточник, ни разу не мумьтивалютник, я такого не писал...

 
Maksim Neimerik:

У меня вообще сеточник, ни разу не мумьтивалютник, я такого не писал...

Отлично. Я такого и не читал. Значит это происки империалистов))))