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

 
Vitalii Ananev:
Если вам надо рси и стохастик  в одном индикаторе, то это можно реализовать средствами языка mql. Обратитесь в сервис фриланс. 
Исключено. Сам сделаю. СПАСИБО.
 
Vitalii Ananev:

Условие пробития уровня.

например ценой закрытия свечи

double Uroven; - это уровень

if (Close[2]<Uroven && Close[1]>=Uroven) снизу вверх

if (Close[2]>Uroven && Close[1]<=Uroven) сверху вниз. 

Спасибо.
 

Здравствуйте, столкнулась с такой проблемой.

В программе есть условие: если переменная (в которой рассчитывается профит определенных ордеров) меньше выражения из нескольких других переменных, то дальше выполняется несколько функций.

Конкретно что и как рассчитывается сразу не буду расписывать, очень много получится. Возможно, ответ будет простым, просто я его не знаю:)

Так вот, при выполнении программы условие это оказывается истинным, когда на самом деле первая переменная много больше другой (например, выводила в тестере значения - 146.3412 и 0.41).

Все переменные в этом условии имеют тип double и по отдельности рассчитываются правильно.

Подскажите, с чем это может быть связано?

 
Maria Baburina:

Здравствуйте, столкнулась с такой проблемой.

В программе есть условие: если переменная (в которой рассчитывается профит определенных ордеров) меньше выражения из нескольких других переменных, то дальше выполняется несколько функций.

Конкретно что и как рассчитывается сразу не буду расписывать, очень много получится. Возможно, ответ будет простым, просто я его не знаю:)

Так вот, при выполнении программы условие это оказывается истинным, когда на самом деле первая переменная много больше другой (например, выводила в тестере значения - 146.3412 и 0.41).

Все переменные в этом условии имеют тип double и по отдельности рассчитываются правильно.

Подскажите, с чем это может быть связано?

Решение действительно лежит на поверхности - Вам сюда: Клуб Телепатов
Клуб Телепатов (^_^) - MQL4 форум
Клуб Телепатов (^_^) - MQL4 форум
  • www.mql5.com
Клуб Телепатов (^_^) - MQL4 форум
 
Karputov Vladimir:
Решение действительно лежит на поверхности - Вам сюда: Клуб Телепатов

Условие:

if (ProfitSellDBL < (Profit_Upgr+(Tral_Start__Upgr-Tral_Size__Upgr)*TV*SumLotSellDBL)) CloseTriggerS_Upgrade=0;


ProfitSellDBL рассчитывается здесь

   for (i=totalsellDBL-1; i>=0; i--)
      {
      ReturnValueBool=OrderSelect(DoubleSell[i][0],SELECT_BY_TICKET);
      SumLotSellDBL+=OrderLots();
      j=i+totalbuyDBL;
      MassivDBL[j][0]=OrderProfit()+OrderCommission()+OrderSwap();
      MassivDBL[j][1]=DoubleSell[i][0]; 
      ProfitSellDBL+=MassivDBL[j][0];
      LastPriceSellDBL = OrderOpenPrice(); 
      LastLotSellDBL = OrderLots();      
      }

Profit_Upgr = 0.01

Tral_Start__Upgr приравнивается к внешней переменной типа int и равняется 5.

Tral_Size__Upgr аналогично равняется 4

TV - tick value, =10

SumLotSellDBL = 0.04

 
Vitalii Ananev:

Условие пробития уровня.

например ценой закрытия свечи

double Uroven; - это уровень

if (Close[2]<Uroven && Close[1]>=Uroven) снизу вверх

if (Close[2]>Uroven && Close[1]<=Uroven) сверху вниз. 

Извините, не получается. Опишу на картинке. Красная ломаная линия индикатор, синии линии - уровни.

Условие на открытие Бай : когда индикатор пересекает любой уровень снизу вверх.

Условие на закрытие Бай (одновременно открывается Селл) : когда индикатор пересекает любой уровень сверху вниз, кроме того на котором открылся ордер.

 

Извините, я вам уже наверно надоел. 

Файлы:
 
Maria Baburina:

Условие:


ProfitSellDBL рассчитывается здесь

Profit_Upgr = 0.01

Tral_Start__Upgr приравнивается к внешней переменной типа int и равняется 5.

Tral_Size__Upgr аналогично равняется 4

TV - tick value, =10

SumLotSellDBL = 0.04

Смешались в кучу кони, люди... Приведение типов
 
edutak:

Извините, не получается. Опишу на картинке. Красная ломаная линия индикатор, синии линии - уровни.

Условие на открытие Бай : когда индикатор пересекает любой уровень снизу вверх.

Условие на закрытие Бай (одновременно открывается Селл) : когда индикатор пересекает любой уровень сверху вниз, кроме того на котором открылся ордер.

 

Извините, я вам уже наверно надоел. 

При пересечении сверху-вниз, посмотрите на цену открытия ордера и определите какую линию он пересёк при открытии. Естественно, если сейчас пересечена та же линия, то ордер не закрывать.
 
Возможно ли поставить на окно валютной пары графики Баланса и Эквити счета, работающие в режиме Онлайн ? Где взять соотв. проги?
 
edutak:

Извините, не получается. Опишу на картинке. Красная ломаная линия индикатор, синии линии - уровни.

Условие на открытие Бай : когда индикатор пересекает любой уровень снизу вверх.

Условие на закрытие Бай (одновременно открывается Селл) : когда индикатор пересекает любой уровень сверху вниз, кроме того на котором открылся ордер.

 

Извините, я вам уже наверно надоел. 

Вместо Close[2] поставьте значение индикатора на втором баре (например iRSI(.......,2) ), а вместо Close[1] значение индикатора на первом баре. А uroven это значения уровня.

А остальное вам выше уже сказали. 

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