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

Sergey Voytsekhovsky #:

 Слово ВЕЩЕСТВЕННЫЙ что означает???

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

Aleksandr Slavskii #:

Вариантов несколько.

Можно воспользоваться советом выше. Вполне рабочий вариант.

Можно использовать  Глобальные переменные терминала.

Можно наладить обмен между советниками с помощью записи/чтения файла.

Как говорится на вкус и цвет все фломастеры разные)))

Как только понять в каком направлении двигаться, с чего начать и как. Знаний почти нет...

  1. Доступен ли Вам для редактирования код обоих советников.
    Да.
  2. Оставляют ли советники следы своей деятельности в ГлобальныхПеременных
    Точно не скажу.
  3. Владеете ли Вы хотя-бы начальными навыками кодирования 
    Чуть-чуть совсем.
psihodelit #:

Как только понять в каком направлении двигаться, с чего начать и как. Знаний почти нет...

  1. Доступен ли Вам для редактирования код обоих советников.
    Да.
  2. Оставляют ли советники следы своей деятельности в ГлобальныхПеременных
    Точно не скажу.
  3. Владеете ли Вы хотя-бы начальными навыками кодирования 
    Чуть-чуть совсем.

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

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

Sergey Voytsekhovsky #:
Оставляют ли советники следы своей деятельности в ГлобальныхПеременных
Точно не скажу.

Вот с этого и начните - В терминале, в ленте, в папке Сервис - есть пунктик ГлобальныеПеременные. Давайте найдем.

Sergey Voytsekhovsky #:

Вот с этого и начните - В терминале, в ленте, в папке Сервис - есть пунктик ГлобальныеПеременные. Давайте найдем.

Там пусто.

Sergey Voytsekhovsky #:

Вот с этого и начните - В терминале, в ленте, в папке Сервис - есть пунктик ГлобальныеПеременные. Давайте найдем.

Как я Вас понимаю, сам тоже профан. Иногда фразу или логику поймать/построить не могу, простейшие. И тоже постоянно спрашиваю и читаю. Потому собственно и Вам отозваля. Мне тут давеча, совсем недавно, чуть выше - очень помогли, спасибо.

psihodelit #:
Там пусто.

Значит никому не помешаем.

Откройте код того советника, показания которого Вам интересны. Вы писали, что другой советник должен исполнять некие действия, в зависимости от показаний первого. Вот с него и начинайте.

В любом удобном для вас месте, подготовьте пустую строчку и вбейте GlobalVariableCheck(), потом выделите и нажмите клавишу F1. Открется страничка с информацией, там не сложно.

А суть воплощаемой идеи -- Содайте Глобальную переменную, в транслирующем советнике, а принимающий пусть из нее считывает, при определенных показаниях будт срабатывать условие, ну и дальше по сценарию.

Sergey Voytsekhovsky #:
подготовьте пустую строчку и вбейте GlobalVariableCheck(),

Вы ж потом ее удалить не забудьте, это был просто быстрый путь в нужную справку. После прочтения сжечь.

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

Не пойму, какая формула, чтобы закрыть случаи противоположных трейдов?

Pср = (Open Price 1 × Lot 1 + Open Price 2 × Lot 2 + ... + Open Price X × Lot X) / (Lot 1 + Lot 2 + ... + Lot X)

Эта, вроде как, не подойдет?

Как рассчитать размер маржи по локированным сделкам | Альфа-Форекс
  • alfaforex.ru
Маржа (залог под открытую позицию) всегда берётся в базовой валюте - валюте, стоящей в обозначении пары на первом месте. После этого она конвертируется в валюту, в которой номинирован торговый счёт. Расчёт происходит в четыре этапа. 1. Вычисление средневзвешенной цены открытия позиции. Формула: Pср = (Open Price 1 × Lot 1 + Open Price 2 × Lot 2...
leonerd #:

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

Не пойму, какая формула, чтобы закрыть случаи противоположных трейдов?

Эта, вроде как, не подойдет?

Где скопипастил не помню, но работает хорошо.

   double NLb = 0, NLs = 0;

   long OT;
   int b = 0, s = 0;
   double PB = 0, PS = 0, OL = 0, LS = 0, LB = 0, OOP = 0;
   for(int i = 0; i < PositionsTotal(); i++)
     {
      if(_Symbol == PositionGetSymbol(i))
        {
         OL  = PositionGetDouble(POSITION_VOLUME);
         OOP = PositionGetDouble(POSITION_PRICE_OPEN);
         OT  = PositionGetInteger(POSITION_TYPE);
         if(OT == POSITION_TYPE_BUY)
           {
            PB += OOP * OL;
            LB += OL;
            b++;
           }
         if(OT == POSITION_TYPE_SELL)
           {
            PS += OOP * OL;
            LS += OL;
            s++;
           }
        }
     }
   if(LB != 0)
      NLb = PB / LB;
   if(LS != 0)
      NLs = PS / LS;

Это то же самое, что и вас написано, только разделено по направлениям позиций.

Думаю это то, что вам надо.