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

 
Vitaly Muzichenko #:

в мт5?

Везде и 4 и 5
 
Vitaly MuzichenkoTradução #:

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

большое спасибо :*

 
Подскажите как в коде выглядит условие : если на счете открыта позиция селл с магиком "0" (открыта руками) ? mt5
 
Vitaly Muzichenko #:

в мт5?

после любого условия вот это пропиши,в тестере все объекты удалятся.

  ObjectsDeleteAll(0,"",0,-1);//---------------------------------------->🔄
  ChartRedraw(); 
 
Aleksei Gureev #:
Подскажите как в коде выглядит условие : если на счете открыта позиция селл с магиком "0" (открыта руками) ? mt5
   int Total=PositionsTotal();
   for(int i=Total-1; i>=0; i--){
      if(m_position.SelectByIndex(i)){
         if(m_position.Symbol()==m_symbol.Name()){
            if(m_position.PositionType()==POSITION_TYPE_SELL && m_position.Magic()==m_Magic) Любой нужный
 if(m_position.PositionType()==POSITION_TYPE_SELL && m_position.Magic()==0)  Руками
 if(m_position.PositionType()==POSITION_TYPE_SELL && m_position.Magic()!=0)   Все кроме руками
 if(m_position.PositionType()==POSITION_TYPE_SELL && m_position.Magic()==-1) Все
 if(m_position.PositionType()==POSITION_TYPE_SELL ) Тоже Все
 

lynxntech #:

Как собрать "Контрольную сумму" параметров из например такой серии параметров?

это нужно для сверки одинаковых условий в разных терминалах и проходах в тестере

причем верхний true имеет "вес" больше чем нижний и последующий например

Сформируйте из параметров строку:

string params = "b1=" + (string) b1 + "a1=" + (string) a1 + ...;

и посчитайте от неё хеш, например, такой функцией:

#define FOREACH(A, D)   { for(int i=0, im=ArraySize(A);i<im;i++) {D;} }

//+------------------------------------------------------------------+
//| Хеш-значение параметров эксперта                                 |
//+------------------------------------------------------------------+
string CVirtualAdvisor::HashParams(string p_params) {
   uchar hash[], key[], data[];

// Вычисляем хеш от строки инициализации
   StringToCharArray(p_params, data);
   CryptEncode(CRYPT_HASH_MD5, data, key, hash);

// Переводим его из массива чисел в строку с шестнадцатеричной записью
   string res = "";
   FOREACH(hash, res += StringFormat("%X", hash[i]); if(i % 4 == 3 && i < 15) res += "-");

   return res;
}
 
Yuriy Bykov #:

Сформируйте из параметров строку:

и посчитайте от неё хеш, например, такой функцией:

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

в моем случае, решение дает почти 100% простой результат, он ведь только для своего восприятия, не для автоматизации

для автоматизации, не вижу пока тут нормального решения проверить все input переменные, и надо ли такое роботу?
 
Papa Hoth #:

Благодарю!

 
Papa Hoth #:
  ObjectsDeleteAll(0,"",0,-1);//---------------------------------------->🔄   ChartRedraw();

Спасибо, именно в таком виде конструкция сработала.

 
Vitaly Muzichenko #:

Спасибо, именно в таком виде конструкция сработала.

А почему не удалять по префиксу "autotrade" ?