Цена открытия зачем-то нормализована по Digits.
Комиссия считается с ошибкой и медленно: нормализуется и удваивается на каждом шаге цикла.
Цена открытия зачем-то нормализована по Digits.
Комиссия считается с ошибкой и медленно: нормализуется и удваивается на каждом шаге цикла.
Спасибо за мнение.
Проверил код относительно нормализации. В классе CHedgePositionInfo есть только в двух случаях: комиссия и маржа. Цены остаются ненормализованными. Цена открытия, насколько понял, неявно нормализуется для принта в тестовом скрипте Test_hedge_properties.mq5.
Потом насчёт комиссии. Вы сравнивали с записями на вкладке "История"? Там по каждой сделке величина комиссии нормализована с точностью до 2. А удвоение - это учёт момента выхода (DEAL_ENTRY_OUT). Т.е. в Панели отражается комиссия за полный цикл - открытие и закрытие. В статье есть упоминание об этом.
Спасибо за мнение.
Проверил код относительно нормализации. В классе CHedgePositionInfo есть только в двух случаях: комиссия и маржа. Цены остаются ненормализованными. Цена открытия, насколько понял, неявно нормализуется для принта в тестовом скрипте Test_hedge_properties.mq5.
Да, речь шла про распринтовку.
Потом насчёт комиссии. Вы сравнивали с записями на вкладке "История"? Там по каждой сделке величина комиссии нормализована с точностью до 2. А удвоение - это учёт момента выхода (DEAL_ENTRY_OUT). Т.е. в Панели отражается комиссия за полный цикл - открытие и закрытие. В статье есть упоминание об этом.
Нет, судил по коду. Откройте позицию, а затем закройте ее часть. По Вашему коду комиссия текущей позиции не изменится.
Более того, удвоение - это благое намерение, которое создает проблему. Дело в том, что Вам нужно, чтобы После закрытия всех позиций Balance стал равен Equity + PositionCommission. Но тогда никакого удвоения быть не должно, т.к. MT5 на открытии позиций уже в балансе отразил комиссию открытия.
Ну и при подсчете комиссии очень дорого проводить нормализацию на каждом шаге цикла. Важно при Оптимизации.
...Нет, судил по коду. Откройте позицию, а затем закройте ее часть. По Вашему коду комиссия текущей позиции не изменится.
Более того, удвоение - это благое намерение, которое создает проблему. Дело в том, что Вам нужно, чтобы После закрытия всех позиций Balance стал равен Equity + PositionCommission. Но тогда никакого удвоения быть не должно, т.к. MT5 на открытии позиций уже в балансе отразил комиссию открытия.
Да, не изменится. Цель была показать максимальную величину комиссии, которую платим в общем за текущий хедж. И, причём, часть уже заплатили, а вторую заплатим позже. Но есть нюансы.
К примеру, есть ещё такой тип сделки как DEAL_ENTRY_OUT_BY. Там вообще нет комиссии, по крайней мере у моего брокера. Ещё комиссия может меняться (вход и выход могут неодинаково стоить), если валюта счёта не совпадает с базовой валютой. Так что мой пример далеко не идеален...
А почему Вы решили, что мне это нужно? Я просто показал один из способов расчёта таких накладных расходов как комиссия.
Ну и при подсчете комиссии очень дорого проводить нормализацию на каждом шаге цикла. Важно при Оптимизации.
Ну разве что для оптимизации. Ну так никто же не мешает внести свои изменения и учесть их в коде.
Да, не изменится. Цель была показать максимальную величину комиссии, которую платим в общем за текущий хедж. И, причём, часть уже заплатили, а вторую заплатим позже. Но есть нюансы.
К примеру, есть ещё такой тип сделки как DEAL_ENTRY_OUT_BY. Там вообще нет комиссии, по крайней мере у моего брокера.
CloseBy не облагается комиссией по определению.
Ещё комиссия может меняться (вход и выход могут неодинаково стоить), если валюта счёта не совпадает с базовой валютой. Так что мой пример далеко не идеален...
А почему Вы решили, что мне это нужно? Я просто показал один из способов расчёта таких накладных расходов как комиссия.
Потому что на языке того же MT4 Equity = Balance + Profit + Swap + Commission. Это самая распространенная логика. Но у Вас, конечно, может быть своя.
Ну разве что для оптимизации. Ну так никто же не мешает внести свои изменения и учесть их в коде.
Разработчики распинаются, чтобы сделать Оптимизатор быстрее. А в Статьях допускается медленный код. Выглядит странно.
Потому что на языке того же MT4 Equity = Balance + Profit + Swap + Commission. Это самая распространенная логика. Но у Вас, конечно, может быть своя.
Не поверите, я так же считаю относительно эквити :-))
Сделаю выбор для метода комиссии, как считать. Внесу изменения в код...
...Разработчики распинаются, чтобы сделать Оптимизатор быстрее. А в Статьях допускается медленный код. Выглядит странно.
Как бы это сказать языком дипломатов... Вы всё ещё кипятите? - Я давно тестирую всё в облаке и не парюсь, что где-то есть лишние нормировки и нет многострочных макросов...
давно тестирую всё в облаке и не парюсь, что где-то есть лишние нормировки и нет многострочных макросов...
Даже простейшую алгоритмическую оптимизацию заменять мощью железа - это, видимо, давно сформировавшийся тренд. Так не могу.
Даже простейшую алгоритмическую оптимизацию заменять мощью железа - это, видимо, давно сформировавшийся тренд. Так не могу.
Поколение гигагерц и гигабайт.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Рецепты MQL5 – Получаем свойства открытой хеджевой позиции:
Платформа MetaTrader 5 является не только мультирыночной, но и позволяет применять различные системы учёта позиций. Такие возможности существенно расширяют инструментарий для реализации и формализации торговых идей. В статье идёт речь о том, как обрабатывать и учитывать свойства позиций при их независимом учете ("хеджинг"). Предлагается производный класс, приводятся примеры обработки и получения свойств хеджевой позиции.
Относительно недавно в торговом терминале MetaTrader 5 появилась возможность открывать разнонаправленные ордера. Такая система учёта ордеров называется «хеджинг». Наличие этой ордерной системы позволяет легко переносить торговые алгоритмы из MetaTrader 4 в пятую версию терминала, пользуясь всеми преимуществами последнего. Более подробно о хеджинге в MetaTrader 5 можно узнать в материале статьи "В MetaTrader 5 добавлена хеджинговая система учёта позиций".
В данной статье речь пойдёт о свойствах совокупной позиции, работа с которой идёт в системе «хеджинг».
Рис.4 Панель свойств хеджевой позиции
Торговый терминал MetaTrader 5 на данном этапе является не только мультирыночным, но и позволяет применять различные системы учёта позиций. Такие возможности существенно расширяют инструментарий для реализации и формализации торговых идей.
Надеюсь, что данная статья вызовет интерес у тех, кто желает заняться переводом своих стратегий из MetaTrader 4 в MetaTrader 5.
Автор: Denis Kirichenko