Я недавно писал советника на заказ, столкнулся с похожей проблемой.
Вот некая формула:
double pr=MarketInfo(Symbol(),MODE_MARGINREQUIRED); { if (MarketInfo(Symbol(),MODE_DIGITS)==4) if (AccountProfit()>=(NormalizeDouble((pr/100*lot)/Bid,2))*close_at_profit) } { if (MarketInfo(Symbol(),MODE_DIGITS)==2) if (AccountProfit()>=(NormalizeDouble(((pr/100*lot)*100)/Bid,2))*close_at_profit) }
Была задача: вроде OrderProfit показывать прибыль не в валюте счета а в пунктах. Трудность была в чем, в том что нужно было по разных парах разчитатывать залог c extern double lot и сравнить с OrderProfit.
Я недавно писал советника на заказ, столкнулся с похожей проблемой.
Вот некая формула:
Была задача: вроде OrderProfit показывать прибыль не в валюте счета а в пунктах. Трудность была в чем, в том что нужно было по разных парах разчитатывать залог c extern double lot и сравнить с OrderProfit.
... ну и каким боком это отвечает на мой вопрос?
В хедж. моржа какая ?
Насколько я понимаю то что написано в документации, MODE_MARGINHEDGED - это как бы маржа взимаемая за "объем стандартного лота" в случае наличия одновременно открытых встречных поз. Однако Print("MODE_MARGINHEDGED = "+MarketInfo(OrderSymbol(),MODE_MARGINHEDGED)); выдал почему то 50000. Ладно - будем считать это размером контракта для перекрытых поз.
Из личного опыта. Да и на форуме не раз поднималась тема. Кстати в некоторых билдах бывают ошибки, а в некоторых нет.
Статистику не вёл, но спотыкался не раз. :(
Отличающиеся от реальных.
Возможно ...
Иногда МаркетИнфо можно заменить чем-то..
Вот вчера открыл на демке EURUSD "учебный пример" чтобы на выходных спокойно и правильно посчитать залог. По моим расчетам залог должен быть 103.89 а в терминале - 103.74
Начал разбираться со встречными позициями. Насколько я понимаю то что написано в документации, MODE_MARGINHEDGED - это как бы маржа взимаемая за "объем стандартного лота" в случае наличия одновременно открытых встречных поз. Однако Print("MODE_MARGINHEDGED = "+MarketInfo(OrderSymbol(),MODE_MARGINHEDGED)); выдал почему то 50000. Ладно - будем считать это размером контракта для перекрытых поз. Но тогда получается что залог должен быть 97.39 (половина за перекрытые 0.01 и полный за 0.07). Все равно не 103.74
Смотри здесь 'AccountStopout.. : опубликуйте пожалуста более подробную документацию'
Поиск рулит.. :)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вот вчера открыл на демке EURUSD "учебный пример" чтобы на выходных спокойно и правильно посчитать залог. По моим расчетам залог должен быть 103.89 а в терминале - 103.74
Начал разбираться со встречными позициями. Насколько я понимаю то что написано в документации, MODE_MARGINHEDGED - это как бы маржа взимаемая за "объем стандартного лота" в случае наличия одновременно открытых встречных поз. Однако Print("MODE_MARGINHEDGED = "+MarketInfo(OrderSymbol(),MODE_MARGINHEDGED)); выдал почему то 50000. Ладно - будем считать это размером контракта для перекрытых поз. Но тогда получается что залог должен быть 97.39 (половина за перекрытые 0.01 и полный за 0.07). Все равно не 103.74
Контракт
100,000.00
50,000.00
100,000.00
Плечо
100.00
100.00
100.00
Ask
1.2986
1.2986
1.2986
MARGINREQUIRED
1,298.60
649.30
1,298.60
Buy
0.01
12.99
0.00
0.00
Sell
0.01
12.99
0.01
6.49
0.00
Sell
0.07
90.90
0.00
0.07
90.90
Совокупный лот
0.08
103.89
0.01
6.49
0.07
90.90
Общий залог
103.89
97.39
Разница всего 0.15 и очень похоже на три раза взятый SWAPLONG. Но почему? Ведь у меня или совокупный SHORT или два SHORTa и один LONG.
Кто поможет разобраться - как всетаки правильно считать залог для этого примера?