Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В Справке же написано
ENUM_SYMBOL_CALC_MODE
Идентификатор
Описание
Формула
SYMBOL_CALC_MODE_FOREX
Forex mode – расчет прибыли и маржи для Форекс
Margin: Lots*Contract_Size/Leverage
Profit: (close_price-open_price)*Contract_Size*Lots
SYMBOL_CALC_MODE_FUTURES
Futures mode – расчет залога и прибыли для фьючерсов
Margin: Lots *InitialMargin*Percentage/100
Profit: (close_price-open_price)*TickPrice/TickSize*Lots
SYMBOL_CALC_MODE_CFD
CFD mode – расчет залога и прибыли для CFD
Margin: Lots *ContractSize*MarketPrice*Percentage/100
Profit: (close_price-open_price)*Contract_Size*Lots
SYMBOL_CALC_MODE_CFDINDEX
CFD index mode – расчет залога и прибыли для CFD на индексы
Margin: (Lots*ContractSize*MarketPrice)*TickPrice/TickSize
Profit: (close_price-open_price)*Contract_Size*Lots
SYMBOL_CALC_MODE_CFDLEVERAGE
CFD Leverage mode – расчет залога и прибыли для CFD при торговле с плечом
Margin: (Lots*ContractSize*MarketPrice*Percentage)/Leverage
Profit: (close_price-open_price)*Contract_Size*Lots
SYMBOL_CALC_MODE_EXCH_STOCKS
Exchange mode – расчет залога и прибыли для торговли ценными бумагами на бирже
Margin: Lots*ContractSize*OpenPrice
Profit: (close_price-open_price)*Contract_Size*Lots
SYMBOL_CALC_MODE_EXCH_FUTURES
Futures mode – расчет залога и прибыли для торговли фьючерсными контрактами на бирже
Margin: Lots*InitialMargin или Lots*MaintenanceMargin
Profit: (close_price-open_price)*Lots*TickPrice/TickSize
SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS
FORTS Futures mode – расчет залога и прибыли для торговли фьючерсными контрактами на FORTS. Размер маржи может уменьшаться на величину отклонения MarginDiscount по следующим правилам:
1. Если цена длинной позиции (ордера на покупку) меньше расчетной цены, то MarginDiscount = Lots*((PriceSettle-PriceOrder)*TickPrice/TickSize)
2. Если цена короткой позиций (ордера на продажу) больше расчетной цены, то MarginDiscount = Lots*((PriceOrder-PriceSettle)*TickPrice/TickSize)
где:
Margin: Lots*InitialMargin или Lots*MaintenanceMargin
Profit: (close_price-open_price)*Lots*TickPrice/TickSize
SYMBOL_CALC_MODE_SERV_COLLATERAL
Collateral mode - инструмент используется в качестве неторгуемого актива на торговом счете. Рыночная стоимость открытой позиции рассчитывается на основании объема, текущей цены рынка, размера контракта и коэффициента ликвидности. Стоимость учитывается в Активах (Assets), которые суммируются с собственными средствами (Equity). Тем самым открытые позиции по такому инструменту увеличивают размер свободных средств (Free Margin) и служат дополнительным обеспечением под открытые позиции по торгуемым инструментам
Margin: нет
Profit: нет
Рыночная стоимость: Lots*ContractSize*MarketPrice*LiqudityRate
В Справке же написано
При всём уважении, намерен вернуть вас назад к чтению
P.S.
Можно получить, но если рассчитываем по AUDCAD, то залог получим в валюте AUD, а счёт то долларовый. Если подставить цену AUDUSD, то получим нужный размер маржи, но это не универсально и паскудно, потому, что есть счета с префиксами и суффиксами, и тут начинается целая история. Так-же может просто не быть открытой пары в обзоре рынка, и расчёт накроется "медным тазом"
Программа которая работает с деньгами (утверждение разработчиков), не может эти деньги посчитать. Старый, плохой и медленный мт4 мог работать с деньгами, а новый и модный мт5 не может. Как так?
Вот по формуле со ссылки:
Считаем к примеру залог по CADJPY, получаем залог в CAD
Там где 0.7625, это цена CADUSD, но в терминале даже нет такой пары, чтоб её применить в расчёте.
Неужели так сложно перенести методом "copypaste" функцию расчёта "MODE_MARGINREQUIRED" в мт5, тем самым облегчить жизнь разработчикам.
Хотелось бы расчёт, не зависимый от типа программы.
При всём уважении, намерен вернуть вас назад к чтению
Признаю, был невнимателен. Мне расчет маржи как-то всегда был за ненадобностью. Тем более - в индикаторах. Где это может быть нужно в индикаторах?
Думаю, решение очень простое. Освобожусь - придумаю.
Можно получить, но если рассчитываем по AUDCAD, то залог получим в валюте AUD, а счёт то долларовый. Если подставить цену AUDUSD, то получим нужный размер маржи, но это не универсально и паскудно, потому, что есть счета с префиксами и суффиксами, и тут начинается целая история. Так-же может просто не быть открытой пары в обзоре рынка, и расчёт накроется "медным тазом"
А что вернет четверка, если AUDUSD нет в обзоре рынка?
Для специфической задачи отображения маржи в индикаторе можно и костыль соорудить, учитывающий префиксы и суффиксы (или использующий вспомогательного советника). А для торговли вроде бы все есть.
А что вернет четверка, если AUDUSD нет в обзоре рынка?
Для специфической задачи отображения маржи в индикаторе можно и костыль соорудить, учитывающий префиксы и суффиксы (или использующий вспомогательного советника). А для торговли вроде бы все есть.
Четвёрка вернёт "MODE_MARGINREQUIRED" )
Разрабы считают, что вычисление маржи (и кое-что еще из инф. функций) - это торговая функция и в индикаторах должна быть запрещена. Я заводил серьезную ветку на эту тему - модераторы ее мгновенно порезали, как всегда, анонимно. Теперь мне на это плевать, выложил в КБ кастрированный индикатор без маржи.
Правда торговая? ))) Хотя да, отжигать не запрещено. Интересно чем она торгует, открывает или закрывает, или просто модифицирует ордера?
Признаю, был невнимателен. Мне расчет маржи как-то всегда был за ненадобностью. Тем более - в индикаторах. Где это может быть нужно в индикаторах?
Думаю, решение очень простое. Освобожусь - придумаю.
Кроме МА и стохастика, есть ещё информационные индикаторы. Не все торгуют ботами, к примеру нужно с информационного индикатора узнать залог перед совершением сделки (соблюсти ММ), высчитать лот и посмотреть, подходит ли он по условиям к вашей ТС, или всё-же не входить в сделку и подождать другой сигнал. И это всего единичный пример использования.
Думаю, решение очень простое. Освобожусь - придумаю.
double GetMarginRequired( const string Symb )
{
MqlTick Tick;
return(SymbolInfoTick(Symb, Tick) ? Tick.ask * SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_VALUE) /
(SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_SIZE) * AccountInfoInteger(ACCOUNT_LEVERAGE)) : 0);
}
Решение пришло сразу.
double GetMarginRequired( const string Symb )
{
MqlTick Tick;
return(SymbolInfoTick(Symb, Tick) ? Tick.ask * SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_VALUE) * SymbolInfoDouble(Symb, SYMBOL_TRADE_CONTRACT_SIZE) *
SymbolInfoDouble(Symb, SYMBOL_POINT) / (SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_SIZE) * AccountInfoInteger(ACCOUNT_LEVERAGE)) : 0);
}
Спасибо большое, остался баг с йеновыми парами