[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 588

 

Подскажите где искать програмистов которые пишут советники!

 

кроме того, надо еще проконтролировать момент открытия бара:

datetime bartime;

int init()
{
   ...
   bartime=0;
   ...
}

int start
{
   ...
   if(bartime<Time[0]) //если пришел новый бар
   {
       //делаем то что нужно
   }
   ...
   bartime=Time[0]; //обязательно запомнили обсчитанный бар
}

 
supernovik:

Подскажите где искать програмистов которые пишут советники!

https://www.mql5.com/ru/forum/116708
 
alsu:
...

3. заполнить массив for(i=1;i<=PerB;i++) MyATR[i-1]=(High[i]-Low[i])/Low[i]; индекс i начинается с 1 так как нам нужны только закрытые бары

...

проверьте, как получится, может ошибка только в этом

Ок спасибо, с утра попробую (сейчас голова уже не варит), но в этом случае (i=1) я смогу обратиться к цене Открытия текущего бара Open[0]?

P. S. Ладно, суть кажется ухватил - днём попробую.

 
Craft:
Ок, попробую, но в этом случае (i=1) я смогу обратиться к цене Открытия текущего бара Open[0]&
конечно сможете, этому ничего не мешает. Вообще, в MQL надо очень ответственно относиться к индексам массивов и постоянно проверять их на корректность, т.к. с учетом отсутствия средств отладки поиск возможной ошибки может затягиваться на недели. А еще частенько это приводит к появлению "псевдограалей" - программ, нечаянно подглядывающих на 1 бар в будущее и дающих поэтому выдающиеся результаты при тестировании, но сливающие в реальном времени.
 

Не удержался до утра. Стало чуть лучше, но места цветников из ордеров избежать не удалось. Как можно прописать единичное выставление ордера при требуемом условии? Вы упоминали: не, так не выйдет. только через анализ истории ордеров - как это можно сделать или что ещё подходящее можно применить?

 
alsu:

кроме того, надо еще проконтролировать момент открытия бара:


alsu, это к моему примеру относилось?
 
Подскажите пожалуйста, мучаюсь с нописанием советника. Нужно чтоб новый ордер открывался при закрытии старого по tp или же по sl.

 

Буду признателен!
 
Top2n:
 Подскажите пожалуйста, мучаюсь с нописанием советника. Нужно чтоб новый ордер открывался при закрытии старого по tp или же по sl.
Буду признателен!

Нужно отдельно вставить(скопировать)  в код (вне ф-и Старт) ф-и, которые опр-ют, как закрылась посл. позиция.

Такие ф-и есть в адресе: https://www.mql5.com/ru/forum/107476 

стр. 21 

Функция isCloseLastPosByTake().
Эта функция возвращает флаг закрытия последней позиции по тейку. Флаг поднят - True - сработал TakeProfit. Флаг опущен - False - позиция была закрыта по другой причине

Функция isCloseLastPosByStop().Эта функция возвращает флаг закрытия последней позиции по стопу. Флаг поднят - True - сработал StopLoss. Флаг опущен - False - позиция была закрыта по другой причене

------------------- 

Скорее всего, при этом также понадобится ф-я:

Функция GetTypeLastClosePos(). Стр. 20

Эта функция возвращает тип последней закрытой позиции или -1

=================================

Тогда, в самом простейшем случ. -  условия открытия будут : 

//--------------Для бай-сделок-------------

if ( isCloseLastPosByTake(NULL, OP_BUY, -1)==true ||   isCloseLastPosByStop(NULL, OP_BUY, -1)==true) {

//если посл. бай-позиция закрылась по тейку или по стопу, то открываем новую бай-позицию 

/------------

Аналогично и для селл-сделок .... 

 

 

 

Скажите пожалуйста, как отличают опытные мастера советника от индикатора и скрипта (без "вскрытия" в редакторе). У меня всё в папках смешалось. В папке советников полно неработающих индикаторов, а в папке индикаторов полно неработающих скриптов. Поэтому я (на всякий случай) копирую новый советник-индикатор в обе папки.

По-моему, это большая недоработка создателей языка. Расширение файлов должно быть различным.

Что скажут аксакалы?

Причина обращения: