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

 
Stef Smith #:
Пожалуйста, помогите мне, я случайно отменил авторизацию для торговли в один клик, и теперь каждый раз мне приходится закрывать всплывающее окно дважды при открытии или закрытии сделок. как это исправить?
В MT5:
Инструменты - Опции - Торговля
и поставьте галочку напротив One Click Trading и нажмите OK.
 

Sergey Golubev #
:

В MT5:
Инструменты - Опции - Торговля
и поставьте галочку напротив One Click Trading и нажмите OK.

Я не вижу - Инструменты 

 
Stef Smith #:

Я не вижу - Инструменты 

.

 
Aleksandr Slavskii #:

.

! 
 
приветствую, мой советник открывает позиции на процент от баланса, с реализацией этого я справился, но как после получения стоплосса оставить тот же риск на позицию. То есть я понимаю, что мне надо заранее, перед каждой проверкой условий на вход в позицию закидывать в какую то переменную текущий баланс, но как это реализовать так, чтобы при следующей проверке на вход переменная сохранялась и ее можно было бы сравнить с текущим балансом и если текущий баланс меньше, чем прошлый, то тогда использовать прошлый баланс для вычисления перменной kp rofit, которая и отвечает за лотаж
if (условие)  
     {

   
        current_bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
        k = (float)current_bid;
        
        balance = AccountInfoDouble(ACCOUNT_BALANCE);
       
        kprofit = balance / 1000;
        
        lot1 = lot / k;
        lot1 = lot1 * kprofit;
        lot1 = MathRound(lot1);
        
        
      
       if (условие)
         
       
         
         trader.Buy();
 
statist247 #:
приветствую, мой советник открывает позиции на процент от баланса, с реализацией этого я справился, но как после получения стоплосса оставить тот же риск на позицию. То есть я понимаю, что мне надо заранее, перед каждой проверкой условий на вход в позицию закидывать в какую то переменную текущий баланс, но как это реализовать так, чтобы при следующей проверке на вход переменная сохранялась и ее можно было бы сравнить с текущим балансом и если текущий баланс меньше, чем прошлый, то тогда использовать прошлый баланс для вычисления перменной kp rofit, которая и отвечает за лотаж

Сделайте глобальную переменную и при инициализации запомните значение баланса. Потом делайте расчет от этой константы.

[Удален]  
statist247 #:
double max_balance=0;
string name="MaxBalance";

int OnInit()
   {
   if(MQLInfoInteger(MQL_TESTER)==0 && GlobalVariableCheck(name))
      {
      max_balance=GlobalVariableGet(name);
      }
   return(INIT_SUCCEEDED);
   }
   
void OnTick()
   {
   if(условие)
      {
      if(AccountInfoDouble(ACCOUNT_BALANCE)-max_balance>0)
         {
         max_balance=AccountInfoDouble(ACCOUNT_BALANCE);
         if(MQLInfoInteger(MQL_TESTER)==0)
            {
            GlobalVariableSet(name,max_balance);
            }
         }
      }
   ...
   }
 
Aleksei Stepanenko #:

Зачем же GV если достаточно переменной на глобальном уровне? Или даже просто static

 
statist247 #:
...переменная сохраняется и может быть сравнена с текущим балансом...
FileWrite
Documentation on MQL5: File Functions
Documentation on MQL5: File Functions
  • www.mql5.com
This is a group of functions for working with files. For security reasons, work with files is strictly controlled in the MQL5 language. Files with...
[Удален]  
Alexey Viktorov #:

Зачем же GV если достаточно переменной на глобальном уровне? Или даже просто static

Это для работы на реале, после переинициализации мы потеряем максимальный баланс, который был достигнут ранее. Свет выключили, всё такое)