Задать интервал между ценой и значением индикатора

 

Здравствуйте,

добавила кастомный индикатор в эксперт, но хочу задать интерван, не торговать если между текущей ценой и значением BBands более 5 пунктов.

может кто поможет как правиьно прописать, я новенькая на этой кухне.

if (!skip_buy && UseBands  && smax[shiftt]>=curprice  && (curprice-smax[shiftt])*10000>5) {skip_buy=true; Print ("Skip Cond 9 Buy");} //skip_buy=true - запретить покупку

то есть я ожидаю, что он купит только когда цена подойдет к кромке индикатора меньше чем на 5 пунктов, потому что он закроет если сформируется сигнал на продажу.


 
Оно?
if (!skip_buy && UseBands  && smax[shiftt]>=curprice  && (smax[shiftt] - curprice)/_Point <= 5) {
skip_buy=true; Print ("Skip Cond 9 Buy");
} ;
 

Идея очень проста, минимизировать убытки. Если кто-то вызовется реализовать, поделюсь кодом эксперта и индикатора, эксперт написан с нуля. Индикатор приобретен.


 
Yevhenii Levchenko #:
Оно?
            

         

Спасибо! он начал показывать расчеты, но значение почему то не подхватывает. Может есть идеи?

  if (!skip_buy && UseBands  && NormalizeDouble((smax[shiftt]-curprice),Digits)/_Point>100) {skip_buy=true; Print ("Skip Cond 10 Buy");}  //skip_buy=true - запретить покупку

            

            Print("TopTrend ",smax[shiftt], " curprice ", curprice," Calculation ",NormalizeDouble((smax[shiftt]-curprice),Digits)/_Point);


0 12:41:12.332 2024.03.14 17:36:40  AT_SR_EA_V68 (1) EURUSD,M15: TopTrend 1.09485438682249 curprice 1.090525 Calculation 432.9999999999999


0 12:41:11.112 2024.03.14 14:17:55  AT_SR_EA_V68 (1) EURUSD,M15: TopTrend 1.09485438682249 curprice 1.094115 Calculation 73.99999999999999





 
Katrin78 #:
Спасибо! он начал показывать расчеты, но значение почему то не подхватывает. Может есть идеи?

Что там подхватывать должно?

 
Yevhenii Levchenko #:

Что там подхватывать должно?

 извините, не указала

 if (!skip_buy && UseBands   && smax[shiftt]>=curprice && NormalizeDouble((smax[shiftt]-curprice),Digits)/_Point>100)   

            {skip_buy=true; Print ("Skip Cond 9 Buy");} 

если разница между значением индикатора и текущей цены  smax[shiftt]>=curprice  >100, то пропусти сделку

  • это он должен разрешить

0 12:53:12.569 2024.03.14 14:17:55  AT_SR_EA_V68 (1) EURUSD,M15: TopTrend 1.09485438682249 curprice 1.094115 Calculation 73.99999999999999

  • а это пропустить

0 13:01:13.131 2024.03.14 17:36:40  AT_SR_EA_V68 (1) EURUSD,M15: TopTrend 1.09485438682249 curprice 1.090525 Calculation 432.9999999999999

 
Katrin78 #:
Calculation 432.9999999999999

Вот по этой переменной разрешайте или отсекайте

 
Yevhenii Levchenko #:

Вот по этой переменной разрешайте или отсекайте

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

NormalizeDouble((smax[shiftt]-curprice),Digits)/_Point>100

 
Katrin78 #:

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

NormalizeDouble((smax[shiftt]-curprice),Digits)/_Point>100

Возможно, где-то в другом куске кода проблема...