Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1216

 
Pineapple88:

Подскажите в чем причина открытия позиции сразу после запуска советника?

Условия на открытие позиции не выполняется, а позиция открывается

В таких случаев лучше всего использовать Print. Это уже точно покажет условия выполняется или не выполняется.

...
if(PositionsTotal()==0)
 {
  Print(" MovingAverage1[0]: ",MovingAverage1[0]," MovingAverage2[0]: ",MovingAverage2[0]);
  trade.Sell(0.1);
 }
...
 
Vladimir Karputov:

Когда нужно проверять 'MinDist(30 пипсов)' и 'OpenDev(10 пипсов)' - на каждом тике и всё же только в момент рождения нового бара?

Надо проверять в каждом Тике!  

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

 
Milhail Novgorodcev:

Надо проверять в каждом Тике!  

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

Если проверять на каждом тике, тогда нужно уточнять КАК и ГДЕ проверять параметр 'MinDist(30 пипсов)'. 

Например проверять хотите на текущем баре? Или всё-же на каком-то количестве баров или просто искать последний момент когда было 'MinDist(30 пипсов)' ?

 

Здравствуйте товарищи!

В визуальном тестере стратегий при прогоне советника индикатор MACD, используемый в советнике, то отображается то нет, причем для советника из стандартных примеров тоже самое. Это неизличимый баг тестера, или что?

 
Кто подскажет.Прислали папку с советником по почте на mql5.А установить в терминал не получается.Как это зделать?Где найти информацию чтобы это зделать?
 
kokines:
Кто подскажет.Прислали папку с советником по почте на mql5.А установить в терминал не получается.Как это сделать?Где найти информацию чтобы это сделать?

Может вам папку с исходниками выслали тогда через MetaEditor компилировать нужно.

 
Vladimir Karputov:

Если проверять на каждом тике, тогда нужно уточнять КАК и ГДЕ проверять параметр 'MinDist(30 пипсов)'. 

Например проверять хотите на текущем баре? Или всё-же на каком-то количестве баров или просто искать последний момент когда было 'MinDist(30 пипсов)' ?

нужен последний момент когда было MinDist(30) - это событие дает сигнал на открытие ордера, который откроется по достижении значения OpenDev(10) в текущем моменте,  и ордер будет БАЙ - если цена значение MinDist (30 ) было выше средней ( или Селл если ниже средней) 

и после открытия ордера  - значение MinDist обнуляется, и нужно снова!!! ждать Значение MinDist (30) , и так далее...

 
Milhail Novgorodcev:

нужен последний момент когда было MinDist(30) - это событие дает сигнал на открытие ордера, который откроется по достижении значения OpenDev(10) в текущем моменте,  и ордер будет БАЙ - если цена значение MinDist (30 ) было выше средней ( или Селл если ниже средней) 

и после открытия ордера  - значение MinDist обнуляется, и нужно снова!!! ждать Значение MinDist (30) , и так далее...

При первом запуске найдите первую дату для события 'MinDist(30)' и запомните её. Впоследствии сканируйте пространство от этой даты до текущего времени. Как только найдёте новое событие 'MinDist(30)' - перезаписываете сохранённую дату.

 
А что за ошибка send error 10054 в тестере?

 

Доброго дня!

Пытаюсь разобраться с массивами и возник следующий вопрос.

MqlRates rates[]; 
   ArraySetAsSeries(rates,true); 
   int copied=CopyRates(Symbol(),0,0,100,rates);

Для чего в данном примере использовать ArraySetAsSeries  и устанавливать флаг true, если в CopyRates отсчет ведется от настоящего к прошлому?

Я так понимаю что функция ArraySetAsSeries  необходима для перебора массива от настоящего к прошлому. 

Хочу понять цель данной функции в этом примере.

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