Отключение АТ

 

Здравствуйте, как дописать функцию, чтоб при достижении просадки откл-сь АТ.

Он отключает ее на обум, но не от просадки

if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==0 && DoubleToString(AccountProfit()*100*(-100)/ACCOUNT_BALANCE,2)>Prosadka) Autotrade();
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==1 && DoubleToString(AccountProfit()*100*(-100)/ACCOUNT_BALANCE,2)>Prosadka) Autotrade();
  
 
Almamojet:

Здравствуйте, как дописать функцию, чтоб при достижении просадки откл-сь АТ.

Он отключает ее на обум, но не от просадки

может знак стоит поставить меньше?  ты же не по модулю значения сравниваешь, и -100<-80 . так что поставь знак меньше и проверь.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Отключение АТ

Almamojet, 2019.05.01 08:53

Здравствуйте, как дописать функцию, чтоб при достижении просадки откл-сь АТ.

Он отключает ее на обум, но не от просадки

if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==0 && DoubleToString(AccountProfit()*100*(-100)/ACCOUNT_BALANCE,2)>Prosadka) Autotrade();
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==1 && DoubleToString(AccountProfit()*100*(-100)/ACCOUNT_BALANCE,2)>Prosadka) Autotrade();
  
А с какой целью вставлено преобразование в строку?
 

Так 

if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==0 && NormalizeDouble(AccountProfit()*100*(-100)/ACCOUNT_BALANCE,2)>Prosadka) Autotrade();
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==1 && NormalizeDouble(AccountProfit()*100*(-100)/ACCOUNT_BALANCE,2)>Prosadka) Autotrade();

или так

if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==0 && AccountProfit()*100*(-100)/ACCOUNT_BALANCE>Prosadka) Autotrade();
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)==1 && AccountProfit()*100*(-100)/ACCOUNT_BALANCE>Prosadka) Autotrade();
 
Almamojet:

Здравствуйте, как дописать функцию, чтоб при достижении просадки откл-сь АТ.

Он отключает ее на обум, но не от просадки

AccountProfit()*100*(-100)/ACCOUNT_BALANCE

Если скобки раскрыть, то что дает умножение плавающей прибыли на -10 000 ?

 
Надо сохранять баланс так что в случае прироста сохранять новое значение а в случае просадки не менять и сравнивать с текущим балансом или средствами. Или по другому перебирать сделки в истории от последней к первой и смотреть изменение баланса. и сравнивать с текущим.
 
Almamojet:

Здравствуйте, как дописать функцию, чтоб при достижении просадки откл-сь АТ.

Он отключает ее на обум, но не от просадки

Приветствую тоже искал такой код
Смог решить проблему ?

кодом не поделишься ?

 
         if( Dopusk > Prosadka )  CheckForOpen();

Если просадка меньше заданного допуска, то будет работать.

Если просадка больше заданного допуска, то не будет работать.

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