Trade Position Copy. Описание и настройки

15 сентября 2022, 20:58
Yuriy Bykov
0
148

Описание

Trade Position Copy - это советник-утилита для копирования сделок с одного MT5-счёта или MT4-счёта на другой MT5-счёт или MT4-счёт. Версии для запуска на MT4 и MT5 разные. Данный советник является дальнейшим развитием Real Trade Copy, в котором реализован новый режим копирования: не объемов, а отдельных позиций. Такой режим копирования позволяет реализовать новые возможности, которые были недоступны для режима копирования объемов позиций.

Также проведен глубокий рефакторинг кода:

  • Сделан графический интерфейс для установки параметров
  • Добавлено автообнаружение работающих отправителей
  • Улучшено быстродействие
  • Упрощены настройки и убраны параметры, задаваемые до запуска советника

На одном терминале советник запускается в режиме Sender (отправитель), на другом - в режиме Receiver (получатель).

Можно копировать позиции между Netting и Hedging счетами в любых комбинациях. Можно будет устанавливать фильтры по названию инструмента и магическим номерам позиций, которые будут копироваться. Отправитель посылает информацию только о рыночных позициях. Отложенные ордера обрабатываются в момент превращения их в открытые рыночные позиции.

Терминалы должны работать на одном сервере, чтобы у них была одинаковая общая папка данных, через которую они обмениваются данными.

Порядок установки:

  1. В терминале счёта-отправителя запускаем советник, и в открывшемся диалоге выбираем Sender. Разрешение на торговлю и импорт DLL не требуются.
  2. В диалоге свойств отправителя можно изменить название (по-умолчанию будет подставлен номер счёта) и запустить кнопкой Start

  3. В терминале счёта-получателя запускаем советник, и в открывшемся диалоге выбираем ReceiverРазрешение на торговлю требуется, на импорт DLL - не требуются.
  4. В диалоге свойств получателя должно отобразиться название запущенного отправителя и настройки по-умолчанию, устанавливающие копирование всех совпадающих символов с соотношением объёмов 1:1. 
  5. Если такие настройки устраивают, запускаем получатель кнопкой Start, иначе меняем настройки и запускаем после изменения.
Для копирования MT5 -> MT4 можно использовать Trade Position Copy MT5 как отправитель и Trade Position Copy MT4 как получатель.

Для копирования MT4 -> MT5 можно использовать Trade Position Copy MT5 как получатель и Trade Position Copy MT4 как отправитель.

Версия для MT5 скоро будет опубликована на Маркете, пока что доступна только версия для МТ4.

Запускать советник в режиме Sender можно на реальном и демо-счёте без какого-то риска, так как он не совершает никаких торговых операций.

Перед использованием советника в режиме Receiver на реальном счете настоятельно рекомендуется подобрать необходимые значения параметров на демо-счёте с параметрами, аналогичными реальному счёту.

Обратите дополнительное внимание на правильную установку параметра Ratio, если на торговых счетах Sender и Receiver используются разные валюты.



1. Параметры Sender (отправителя)

Run Mode: режим работы Sender. При нажатии на кнопку можно поменять режим на Receiver

    Sender name: название отправителя. Под этим именем отправитель сохраняет информацию о позициях, а получатель ищет эту информацию
    На отправителе этот параметр можно сделать пустым - в этом случае в качестве имени будет использован номер торгового счёта отправителя.
    На получателе этот параметр выбирается из списка имён уже запущенных отправителей.

    Symbols: выбор символов, с которых будут посылаться данные о позициях и ордерах.


    2. Параметры Receiver (получателя)

    Run Mode: режим работы Receiver .При нажатии на кнопку можно поменять режим на Sender

    Sender name: название отправителя. Список значений формируется автоматически из имён уже запущенных отправителей и постоянно обновляется. Поэтому как только запускается новый отправитель, он сразу появляется в этом списке. Если ни один отправитель не запущен, то список не показывается. Когда хотя бы один отправитель будет запущен, то список покажется снова.

    Symbols: названия торговых инструментов, позиции которых будут копироваться. Разделяются символом ";"

    Например: 

    EURGBP;EURUSD;GBPUSD

    Если на отправителе и получателе инструменты называются по-разному, то можно указать сначала имя инструмента на отправителе, а затем имя инструмента на получателе, разделив их символом "="
    Например: 

    EURUSD_x=EURUSD;GOLD=XAUUSD


    Можно смешивать эти два варианта.
    Например: 

    GOLD=XAUUSD;EURGBP;EURUSD;GBPUSD

    Если названия инструментов на Sender и Receiver отличаются только префиксами и/или суффиксами, то вместо перечисления всех пар имен торговых инструментов можно указать маску, задающую правило преобразования. В маске символ звёздочки * обозначает совпадающую часть названий торговых инструментов.
    Например, если на Sender используются имена торговых инструментов без префиксов и суффиксов, а на Receiver у имен торговых инструментов есть суффикс "_x", то маска должна быть задана таким образом:

    *=*_x

    Если на Sender используются имена торговых инструментов c префиксом "r" и без суффиксов, а на Receiver у имен торговых инструментов есть префикс "_" и суффикс ".r", то маска должна быть задана таким образом:

    r*=_*.r


    Если значение не указано, то получатель будет принимать те символы, которые были в списке Market Watch на момент запуска.


    How calculate volumes: Способ расчёта объемов позиций на получателе. Возможен один из трех способов.

    • Use fixed ratio: объемы позиций на отправителе умножается на коэффициент Ratio.

      R_vol = S_vol * Ratio

    • Use balances and ratio: рассчитывается соотношение балансов на получателе и отправителе и умножается на коэффициент Ratio.


      R_vol = S_vol * Ratio * (R_bal / S_bal)

    • Use balances, leverage and ratio: рассчитывается соотношение балансов и плеч на получателе и отправителе и умножается на коэффициент Ratio. Если плечо на получателе больше, то их соотношение считается равным 1.


      R_vol = S_vol * Ratio * (R_bal / S_bal) * (R_lev / S_lev),

      В данных формулах используются следующие обозначения:
      R_vol - объем позиции на Receiver
      S_vol - объем позиции на Sender
      Ratio - коэффициент из параметра Ratio
      R_bal - баланс торгового счёта на Receiver
      S_bal - баланс торгового счёта на Sender
      R_lev - плечо торгового счёта на Receiver
      S_lev - плечо торгового счёта на Sender

    Ratio: коэффициент для формул выше.
    Использование этого коэффициента со значением, отличным от 1.0, может быть необходимым в двух случаях:

    • Если на Sender и Receiver используются разные валюты торговых счетов и при расчёте учитывается соотношение балансов счетов Sender и Receiver.

      Например, предположим, что используется RUB на Sender и USD на Receiver. На оба счёта было внесено по 1000 USD (что превратилось условно в 100 000 RUB на Sender). Тогда величина соотношения балансов
      (R_bal / S_bal) = 1000 / 100000 = 0.01.
      В этом случае необходимо установить Ratio = 100, чтобы получить на Receiver открытие позиций такого же объема, как и на Sender. Если этого не сделать, то для небольших объемов на Sender позиции на Receiver открываться не будут, так как их размер, уменьшенный в 100 раз, скорее всего, будет меньше минимально возможного размера позиции на Receiver.

      В обратной ситуации, предположим, что используется USD на Sender и RUB на Receiver. На оба счёта снова было внесено по 1000 USD (что превратилось условно в 100 000 RUB но теперь уже на Receiver). Тогда величина соотношения балансов
      (R_bal / S_bal) = 100000 / 1000 = 100.
      В этом случае необходимо установить Ratio = 0.01, чтобы получить на Receiver открытие позиций такого же объема, как и на Sender. Если этого не сделать, то для небольших объемов на Sender позиции на Receiver открываться размером в 100 раз больше, что  очень опасно.

    • Если надо пропорционально изменить размер позиций на Sender по сравнению с Receiver.


    Другие параметры будут перенесены в графический интерфейс позже.

    По мере развития это пост будет пополняться.


    Поделитесь с друзьями: