Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Небыло и не будет. Это наверное смесь mql и СБ, а там по любому цикл. Комиссия берётся за сделку, а не за позицию.
Вы правы, не будет, так как МТ5 заточен под биржу, где всяких комиссий и сборов может быть полно, также они могут отличаться в зависимости от объёма позиции, фазы луны, высадки марсиан и т.п. Так что даже Господь бог не сможет заранее рассчитать комиссию, не то что терминал.
В общем, я так сделал, это только для форекса с фиксированной комиссией за лот.
В OnInit()
В основном цикле
Функция расчета
Далее, там где надо, используем значение комиссии за 1 лот
для расчета.
Мне понравилось обращение к истории по id позиции, так как этот способ практически не грузит терминал, в отличие от запроса всей истории (или куска истории) для расчета комиссии за лот, тем более в тестере стратегий на старте этой истории нет. Так как расчет комиссии за лот может пригодится только при уже открытых позициях, этот способ имеет право на жизнь. Вполне себе можно подобную функцию встроить в терминал, конечно, с оговорками.
К сожалению, из-за специфики условий, выставляемых брокерами, комиссии многоуровневые и накопительные.
Я выше написал, это для форекса с фиксированной комиссией за лот.
тоже столкнулся...
OR=0;
COMISSION=0;
ltTV=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE);//стоимость пункта
если открытые ордера есть, то перебираю в цикле все и нахожу:
COMISSION=COMISSION+OrderCommission/(ltTV*OrderLots());
OR=OR+1;//количество
затем:
if(OR!=0)COMISSION=COMISSION/OR;
как вариант, можно взять только последний открытый
TmOr=OrderOpenTime();
if(TmOr>maxTmOr)
{
COMISSION=(OrderCommission()+OrderSwap())/(ltTV*lotOr);
maxTmOr=TmOr;
}
На Форекс для инструмента ***/USD я считаю следующим образом
размер контракта *лот*цена открытия сделки и от этого произведения взять процентную ставку комиссии из спецификации
На Форекс для инструмента ***/USD я считаю следующим образом
размер контракта *лот*цена открытия сделки и от этого произведения взять процентную ставку комиссии из спецификации
А можно как-то получить программными средствами процент комиссии, который указан в спецификации, а не ручками для форекса? Я пока не нашел, хотелось бы автоматом, так, мало ли...
Нет такого и Ринат писал, что это технически невозможно.
Функция расчета итоговой комиссии позиции при известной фиксированной комиссии, где full_commission - фиксированная комиссия брокера в единицах базовой валюты инструмента за 1 лот в обе стороны: открытие и закрытие. Может кому пригодится.
Столкнулся с тем, что моя функция не считает комиссию. Посмотрел спецификацию инструмента и увидел следующее:
Ну тут я уже не знаю, как считать. При открытии сделки комиссия не берется и мой код её не находит.
Вся комиссия берется сразу при закрытии сделки. Брать для расчета комиссии уже закрытую ранее сделку имхо бред, а если сделок в истории не было?
Может появилось какое-то решение новое с 2022 года или воз и ныне там?