Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Они уже зарабатывают с помощью сервиса Фриланс. Зарабатывай и ты!
st2050
40
st2050 2012.09.03 20:37 

Здравствуйте, уважаемые.

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

Желательно без значительных изменений в коде.

Голову сломал, как это сделать красиво.

o_O
Модератор
23615
o_O 2012.09.03 20:50  
st2050:

Здравствуйте, уважаемые.

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

Желательно без значительных изменений в коде.

Голову сломал, как это сделать красиво.

if (ТекущийЧас >= ТребуемогоНачала && ТекущийЧас < ТребуемогоОкончания )

{

// открыть ордер

}

Yedelkin
4532
Yedelkin 2012.09.03 20:55  
st2050:  
 "Как разрешить торговать в определенное время" - очень просто. Запретить отправлять запросы в определённое время. Типа if(date<border1 || border2<date) return; 
Andrey F. Zelinsky
31055
Andrey F. Zelinsky 2012.09.04 13:18  
Yedelkin:
 "Как разрешить торговать в определенное время" - очень просто. Запретить отправлять запросы в определённое время. Типа if(date<border1 || border2<=date) return; 

небольшое уточнение "<=".

обычно когда говорят "запретить торговлю с 8:00 до 12:00 - подразумевают "с 12:00 разрешить".

 

Nikolay Kositsin
295484
Nikolay Kositsin 2012.09.04 13:51  
st2050:

Здравствуйте, уважаемые.

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

Желательно без значительных изменений в коде.

Голову сломал, как это сделать красиво.

Ну, немного переделать мою функцию https://www.mql5.com/ru/code/962 и всё!
DaysOfWeekCheck
DaysOfWeekCheck
  • голосов: 12
  • 2012.08.12
  • Nikolay Kositsin
  • www.mql5.com
Функция для определения нерабочих дней на сервере. Она будет интересна прежде всего тем, кто использует в своих экспертах для обработки событий функцию OnTimer().
st2050
40
st2050 2012.09.04 15:56  

Товарищи,  я умею открыть ордер в определенное время.

Вопрос был в том, как красиво модифицировать именно этот советник с его конкретным текстом. Там не все так очевидно.

Что касается предложения GODZILLA (кстати, огромное спасибо за Ваши посты), то не будет ли запрещаться в данном случае модификация ордера? Мне нужно только блокировать открытие новых.

o_O
Модератор
23615
o_O 2012.09.04 16:21  

st2050:

Вопрос был в том, как красиво модифицировать именно этот советник с его конкретным текстом.

??? ни советника ни текста никто не видел.  поэтому это чисто теоретический базар.

Товарищи,  я умею открыть ордер в определенное время.

ну так в чем дело? открывайте.
Denis Lazarev
3449
Denis Lazarev 2012.09.04 16:53  

Мой советник основывается на торговле в определенное время

после #include #property(в начале кода) вставляете

MqlDateTime mqldt;
в своей главной функции OnTimer/OnTick после фигурных скобок вставляете это
TimeCurrent(mqldt);

далее весь рабочий код вставляете внутрь этого

OnTimer
{
if (mqldt.hour>="начало периода"&&mqldt.hour>="конец периода"
 {
 //ваш код
 }
}
таким образом советник будет работать только в определенное время, из недостатков можно выделить только то, что можно пропустить какое нибудь событие, так что внутрь оператора if удобнее пихать не весь код, а только ту часть которая отвечает за открытие ордера
Vladislav Andruschenko
89684
Vladislav Andruschenko 2012.09.04 17:16  
lazarev-d-m:

Мой советник основывается на торговле в определенное время

после #include #property(в начале кода) вставляете

в своей главной функции OnTimer/OnTick после фигурных скобок вставляете это

далее весь рабочий код вставляете внутрь этого

таким образом советник будет работать только в определенное время, из недостатков можно выделить только то, что можно пропустить какое нибудь событие, так что внутрь оператора if удобнее пихать не весь код, а только ту часть которая отвечает за открытие ордера

а если конец периода= 2 а начало периода=22

 

???

 

тогда Ваш код не верен 

st2050
40
st2050 2012.09.04 17:18  

to sergeev:

Советник ExpertMAPSARSizeOptimized.mq5 имеется в стандартном комплекте терминала МТ5. Его видно в навигаторе (Советники>Advisors), лежит в папке MQL5\Experts\Advisors.

Если нужно, выложу текст. 

Открытие ордера происходит не в самом файле советника, а в модуле Include\Expert\Expert.mqh. При этом код трейлинга находится в модуле Include\Expert\Trailing\TrailingParabolicSAR.mqh. Таким образом, код раскидан по разным файлам.

Поэтому и был вопрос: как модифицировать советника красиво и эффективно.

o_O
Модератор
23615
o_O 2012.09.04 18:15  
st2050:

Открытие ордера происходит не в самом файле советника, а в модуле Include\Expert\Expert.mqh.

если вы знаете даже где открытие происходит, что вам мешает вставить именно сюда?
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий