Функция ICustom - страница 17

 

Хорошо! Спасибо

 

Вот как далеко я продвинулся после прочтения страницы icustom.

int ergodictrend;

double ergodic1,ergodic2,ErgodicBuffer,Signal_Buffer;

ergodic1 = iCustom(NULL, 0, "Ergodic Osc",ErgodicBuffer,0,0);

ergodic2 = iCustom(NULL, 0, "Ergodic Osc",Signal_Buffer,0,1);

if(ergodic1>ergodic2) ergodictrend = 1;

if(ergodic1<ergodic2) ergodictrend = -1;

Но теперь он открывает только ордера на продажу.

Что я делаю не так?

 
OneandOnly666:
Вот как далеко я продвинулся после прочтения страницы icustom.

int ergodictrend;

double ergodic1,ergodic2,ErgodicBuffer,Signal_Buffer;

ergodic1 = iCustom(NULL, 0, "Ergodic Osc",ErgodicBuffer,0,0);

ergodic2 = iCustom(NULL, 0, "Ergodic Osc",Signal_Buffer,0,1);

if(ergodic1>ergodic2) ergodictrend = 1;

if(ergodic1<ergodic2) ergodictrend = -1;

Но теперь он открывает только ордера на продажу.

Что я делаю не так?

Это зависит от остальной части кода.

Код, который вы опубликовали, кажется, в порядке.

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

Я использую простой (ergodictrend0) для ордеров на покупку.

Без них советник выполняет ордера на покупку и продажу, как и должен. Я просто добавил это, чтобы заставить советника следовать тренду эргодической линии, ордера на покупку, когда эргодическая линия находится над сигнальной линией, и ордера на продажу, когда эргодическая линия находится под сигнальной линией.

Если я следую за индикатором на графике, он не выполняет ордера на продажу и покупку, которые он должен делать, вместо этого он открывает только ордера на продажу.

 
OneandOnly666:
Я использую простой (ergodictrend0) для ордеров на покупку.

Без них советник выполняет ордера на покупку и продажу, как и должен. Я просто добавил это, чтобы заставить его следовать тренду эргодической линии, ордера на покупку, когда эргодическая линия находится над сигнальной линией, и ордера на продажу, когда эргодическая линия находится под сигнальной линией.

Если я слежу за индикатором на графике, он не выполняет ордера на продажу и покупку, которые он должен выполнять, вместо этого он открывает только ордера на продажу.

Почему вы не используете (ergodictrend==-1) для ордера на продажу и (ergodictrend==1) для ордера на покупку?

 
mladen:
Почему бы вам не использовать (ergodictrend==-1) для ордера на продажу и (ergodictrend==1) для ордера на покупку?

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

Странно, разве это не то же самое, что и мой способ написания?

 
OneandOnly666:
Если я сделаю это, бэктест займет больше времени и не сделает ни покупку, ни продажу. Странно, разве это не то же самое, что я написал?

Проверьте остальную часть кода

Эти условия не должны замедлять работу советника и все в порядке.

 
mladen:
Проверьте остальную часть кода. Эти условия не должны замедлять работу советника и все в порядке.

Если я не использую ergodictrend вообще, он не замедляется. Только когда я пишу (ergodictrend==1) и (ergodictrend==-1).

Хотя я могу ошибаться. В любом случае, он не делает никаких ордеров на покупку, когда должен, когда я использую (ergodictrend0), и он не делает никаких ордеров на покупку или продажу вообще, когда я делаю это вашим способом.

Это что-то в индикаторе Ergodic, что не работает с моим советником.

Не знаю, как загрузить индикатор сюда, чтобы вы его посмотрели, но, возможно, он у вас уже есть?

 
OneandOnly666:
Если я вообще не использую ergodictrend, советник не тормозит. Только когда я пишу (ergodictrend==1) и (ergodictrend==-1).

Эта часть кода не может замедлять работу советника.

Пожалуйста, как я уже говорил, проверьте остальной код и то, что в нем сделано.

Всего наилучшего

 
mladen:
Эта часть кода не может замедлять работу советника.

Пожалуйста, как я уже говорил, проверьте остальной код и то, что в нем сделано.

Всего наилучшего

Хорошо!

Спасибо за помощь, я посмотрю и попробую найти проблему.