Почему на селле не работает трал?

 

Тут вот эксперт по-мотивам чемпиона рассматривал (где-то, тут на форуме есть). И никак не могу понять почему при обнулении СЛ и ТП у ордеров успешно тралит баи поначалу, а на селле вырубается?

Код модифицированного эксперта и вид графика прилагаю. Даже на этом графике видно что уходит в беспробудный плюс, но трал не срабатывает... Потом останавливается на полном сливе...

Условия такие: GBPUSD, M15, все тики, период от 01.03.2012 до сейчас, депозит 3000... Входные параметры 100,100,14,26... (Но, падает на любых, как я понял...) Диллер - Альпари...

Может кто сообразит?

Файлы:
Champ_00.png  20 kb
Champ_00.mq5  12 kb
 
Floater:

Тут вот эксперт по-мотивам чемпиона рассматривал (где-то, тут на форуме есть). И никак не могу понять почему при обнулении СЛ и ТП у ордеров успешно тралит баи поначалу, а на селле вырубается?

Код модифицированного эксперта и вид графика прилагаю. Даже на этом графике видно что уходит в беспробудный плюс, но трал не срабатывает... Потом останавливается на полном сливе...

Условия такие: GBPUSD, M15, все тики, период от 01.03.2012 до сейчас, депозит 3000... Входные параметры 100,100,14,26... (Но, падает на любых, как я понял...) Диллер - Альпари...

Может кто сообразит?


Потому что для Sell не срабатывает условие:

if(sl<PositionGetDouble(POSITION_SL) && (PositionGetDouble(POSITION_PRICE_OPEN)-StopLevel*_Point-Spread*_Point)>Ask)

 Если текущий стоп уже 0, то никакое другое положительное значение стопа не может быть меньше него.

Исправить легко:

double curSL = PositionGetDouble(POSITION_SL);
if((sl<curSL || curSL == 0) && (PositionGetDouble(POSITION_PRICE_OPEN)-StopLevel*_Point-Spread*_Point)>Ask)

 

 

Хмм... Трудно быть по-пояс деревянным... Спасибо за ответ...