Вопросы от "чайника" - страница 147

 
alph:

Если цена закрывается ниже скользящей средней , а Momentum находится ниже среднего уровня - открываем сделку на продажу. На покупку наоборот.          

Получается, что если условие не выполняется, то никаких действий осуществлять не надо? Если так, то в последней строчке функции пропишите return(false) и пошагово посмотрите, будет ли это удовлетворять Вашей тактике.
 
Yedelkin:
Получается, что если условие не выполняется, то никаких действий осуществлять не надо? Если так, то в последней строчке функции пропишите return(false) и пошагово посмотрите, будет ли это удовлетворять Вашей тактике.
Это в разделе void OnTick() ?
 
alph:
Это в разделе void OnTick() ?

 Речь шла об timeOntrade по всей видимости.

Но, меян лично смущает не возвращаемый результат, его рано или поздно можно будет превести в желаемый вид.

Меня смущает вот это

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
 
alph:
Это в разделе void OnTick() ?

Вот здесь:

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(false);
   }

Попробуйте в последней строчке проставить false  и посмотреть, насколько такой подход будет соответствовать выбранной Вами тактике. Т.е. "прокрутить" работу эксперта с учётом этого изменения.

 
Interesting:
 Речь шла об timeOntrade по всей видимости. 
В таймонтрейде как раз false в конце не даст нужный результат, а в моём варианте открывает сделки по часам реально,проверено. Сам вариант кода с часами в таком виде я почерпнул где-то здесь на форуме, после прикрутки заработал. Только минуты мне удалось прикрутить через таймонтрйд два. Я уверен, что полностью код должен быть короче на треть минимум.
 
alph:
В таймонтрейде как раз false в конце не даст нужный результат, а в моём варианте открывает сделки по часам реально,проверено.
 Что произойдет если timeOntrade.hour скажем = 5?
 
Interesting:
 Что произойдет если timeOntrade.hour скажем = 5?

Сделку точно не совершит, потому-что в...

//Основание для перехода к Опен   

   MqlRates rt[1];
   if(CopyRates(Symbol(),MyTframe,0,1,rt)<0) return;
   if(rt[0].tick_volume>1) return;

   if(!PositionSelect(_Symbol)&& (timeOntrade(4) || ((timeOntrade(15) || timeOntrade(16))&& timeOntrade2(0)))) Open();//

 

...отправляет на открытие только в указанное время 

 
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных - Документация по MQL5
 
alph:
В таймонтрейде как раз false в конце не даст нужный результат...  
Ну посмотрите свой код сами. В нынешнем виде условие if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) вообще бесполезно. Потому что какой бы результат оно не возватило, Ваша функция bool timeOntrade() всегда вернёт true.
 

alph, Yedelkin  вот про что толкует.

Эти варианты функции по нашему разумению идентичны

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(true);
   }

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   return(true);
   }
 
Interesting:
  

Кстати в данном варианте результат тестера по прибыли маленький, но соотношение как мне кажется,хорошее.

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