Какое условие на открытие позиции (номер индикаторного буфера и номер бара)?
Как то так.
Причем некоторые проходы оптимизатора совпадают в визуализаторе.
А некоторые проходы - вообще ни одной сделки
double price1=0.0;
price1=iCustomGet(handle_ind,1,0)
double price2=0.0;
price2=iCustomGet(handle_ind,2,0)
double open=0.0;
double open = iOpen(Symbol(),Period(),0);
if(price1!=0.0 && price2!=0.0 && open!=0.0)
{
if(open<price1)
{
buy
}
if(open>price2)
{
sell
}
}
//+------------------------------------------------------------------+//| Get value of buffers for the iCustom |//| the buffer numbers are the following: |//+------------------------------------------------------------------+double iCustomGet(int handle,constint buffer,constint index)
{
double Custom[1];
//--- reset error code ResetLastError();
//--- fill a part of the iCustom array with values from the indicator buffer that has 0 index if(CopyBuffer(handle,buffer,index,1,Custom)<0)
{
//--- if the copying fails, tell the error code PrintFormat("Failed to copy data from the iCustom indicator, error code %d",GetLastError());
//--- quit with zero result - it means that the indicator is considered as not calculated return(0.0);
}
return(Custom[0]);
}
//+------------------------------------------------------------------+
Мне кажется проблема в индикаторе.
И как верно заметил Артем , проблема в актуальных данных.
А вот если в индикаторе - то,может быть все что угодно. Не я автор
Я говорил про индикатор: если пропустить в буфере какой-то индекс - там может быть мусор. В общем сначала надежный индикатор - потом уже по нему советник.
У вас самый обычный индикатор, данные которого вы хотите получить с чужого таймфрейма.
В советнике нужно проверять актуальность данных с нужного таймфрейма. Если данных по этому тф ещё нет, то выходить до следующего тика. А уже потом, когда все данные со старшего тф получены в нужном объёме - уже тогда вызывать индикатор.
Нет, я был не прав, думая, что у вас мультитаймфреймный индикатор.
У вас самый обычный индикатор, данные которого вы хотите получить с чужого таймфрейма.
В советнике нужно проверять актуальность данных с нужного таймфрейма. Если данных по этому тф ещё нет, то выходить до следующего тика. А уже потом, когда все данные со старшего тф получены в нужном объёме - уже тогда вызывать индикатор.
Попробуйте так сделать.
А как это сделать? В смысле проверить актуальность.
Ну проверяю я чтобы не 0.0 (код выше).
Что я могу ещё сделать? Что мне индикатор отдает - то я и принимаю.
У меня нет ошибок на текущем таймфрейме .
Проблема появляется если получать данные со старшего таймфрейма.
Явно проблема в индикаторе ,а не в моем советнике)
Причем в режиме оптимизации ошибки нет. Включаешь одиночный проход и визуализацию - есть ошибка. Дурка...
Вот тема из той же оперы, как я понимаю
https://www.mql5.com/ru/forum/190003
Вот модификация СОВЕТНИКА - в параметрах можно задавать таймфрейм индикатора. Работает и в тестере и онлайн.
Вот модификация СОВЕТНИКА - в параметрах можно задавать таймфрейм индикатора. Работает и в тестере и онлайн.
Как тогда можно обьяснить что при оптимизации советник торгует . А при визуализации нет ни одной сделки?
Как тогда можно обьяснить что при оптимизации советник торгует . А при визуализации нет ни одной сделки?
Какое условие на открытие позиции (номер индикаторного буфера и номер бара)?
Какое условие на открытие позиции (номер индикаторного буфера и номер бара)?
Как то так.
Причем некоторые проходы оптимизатора совпадают в визуализаторе.
А некоторые проходы - вообще ни одной сделки
Мне кажется проблема в индикаторе.
И как верно заметил Артем , проблема в актуальных данных.
Только не хочет подсказать как это сделать)
Как то так.
Причем некоторые проходы оптимизатора совпадают в визуализаторе.
А некоторые проходы - вообще ни одной сделки
Расхождения бывают из-за не инициализированных значений в индикаторном буфере - когда расчёт проходим мимо, в буфере может быть мусор.
Просто выводите на печать данные буфера при появлении сигнала.
Расхождения бывают из-за не инициализированных значений в индикаторном буфере - когда расчёт проходим мимо, в буфере может быть мусор.
Просто выводите на печать данные буфера при появлении сигнала.
Вы говорите про советник?
Если про советник - я же обнуляю все в примере.
А вот если в индикаторе - то,может быть все что угодно. Не я автор
Вы говорите про советник?
Если про советник - я же обнуляю все в примере.
А вот если в индикаторе - то,может быть все что угодно. Не я автор
Я говорил про индикатор: если пропустить в буфере какой-то индекс - там может быть мусор. В общем сначала надежный индикатор - потом уже по нему советник.
Как то так.
Причем некоторые проходы оптимизатора совпадают в визуализаторе.
А некоторые проходы - вообще ни одной сделки
Мне кажется проблема в индикаторе.
И как верно заметил Артем , проблема в актуальных данных.
Только не хочет подсказать как это сделать)
Нет, я был не прав, думая, что у вас мультитаймфреймный индикатор.
У вас самый обычный индикатор, данные которого вы хотите получить с чужого таймфрейма.
В советнике нужно проверять актуальность данных с нужного таймфрейма. Если данных по этому тф ещё нет, то выходить до следующего тика.
А уже потом, когда все данные со старшего тф получены в нужном объёме - уже тогда вызывать индикатор.
Попробуйте так сделать.
Нет, я был не прав, думая, что у вас мультитаймфреймный индикатор.
У вас самый обычный индикатор, данные которого вы хотите получить с чужого таймфрейма.
В советнике нужно проверять актуальность данных с нужного таймфрейма. Если данных по этому тф ещё нет, то выходить до следующего тика.
А уже потом, когда все данные со старшего тф получены в нужном объёме - уже тогда вызывать индикатор.
Попробуйте так сделать.
А как это сделать? В смысле проверить актуальность.
Ну проверяю я чтобы не 0.0 (код выше).
Что я могу ещё сделать? Что мне индикатор отдает - то я и принимаю.
На то он и индикатор
А как это сделать? В смысле проверить актуальность.
Ну проверяю я чтобы не 0.0 (код выше).
Что я могу ещё сделать? Что мне индикатор отдает - то я и принимаю.
На то он и индикатор
Вы индикатор взяли из КодоБазы? Если так, то можно его URL?