Скачать MetaTrader 5

авто определение типа лота

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Andrey Khomich
228
Andrey Khomich  
Можно ли в MQL5 автоматически определить тип торгового счета. BASE, mini или micro? Иными словами определить сколько базовой валюты в 1 лоте для текущего типа счета?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
Yedelkin
4532
Yedelkin  

Вы об этом:

SYMBOL_TRADE_CONTRACT_SIZE

Размер торгового контракта

double

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
Sergey Gritsay
6729
Sergey Gritsay  
supremum:
Можно ли в MQL5 автоматически определить тип торгового счета. BASE, mini или micro? Иными словами определить сколько базовой валюты в 1 лоте для текущего типа счета?

Есть еще такие свойства

SYMBOL_VOLUME_MIN

Минимальный объем для заключения сделки

double

SYMBOL_VOLUME_MAX

Максимальный объем для заключения сделки

double

SYMBOL_VOLUME_STEP

Минимальный шаг изменения объема для заключения сделки

double


P.S Если хорошо покопаться в документации, много ответов найдете на свои вопросы.

Vladimir Batrudinov
4942
Vladimir Batrudinov  
supremum:
Можно ли в MQL5 автоматически определить тип торгового счета. BASE, mini или micro? Иными словами определить сколько базовой валюты в 1 лоте для текущего типа счета?

Насколько я помню автоматом можно определить только: валюту счета (для брокеров с возможностью открыть мультивалютные счета), тип счета (реал, демо или конкурсный), максимальное количество лимитных ордеров (если 0 - не ограничено), максимально допустимое торговое плечо (стандартно - 100).

Однозначно автомате дать ответ на заданный вопрос не возможно (на сколько я знаю). Если только не анализировать название торгового сервера и брокера (заранее зная где какой тип счета).

PS

Если в ДЦ есть два типа счетов (BASE и mini) с лотами 0,10 и 0,01 (к примеру как в Альпари) то тогда вполне возможно определить какой счет мы юзаем. Но если скажем речь идет о mini и micro (обычно центы) и лоты у них одинаковые однозначно определить вряд ли выйдет.

Если конечно разработчики не добавят новую характеристику к инфе по счету...

PPS

Если известно какие именно суммы поступали на пополнение счета вполне возможно определить счет в $ или в центах (но это не универсально и прокатит не всегда).

Поэтому в самом советнике рекомендую создать необходимый параметр, которым трейдер осознано укажет нужный тип счета...

Andrey Khomich
228
Andrey Khomich  
Yedelkin:

Вы об этом:

SYMBOL_TRADE_CONTRACT_SIZE

Размер торгового контракта

double

Близко. Вот только в документации слишком скупо сказано "Размер торгового контракта". Размер в чем? Всегда в базовой единице базовой валюты (USD - в долларах, EUR в евро и т.д.) или, к примеру на микро-счете, в центах? А для металлов всегда в тройских унциях? Хотелось бы точных комментариев со стороны разработчиков.
Sergey Gritsay
6729
Sergey Gritsay  
supremum:
Близко. Вот только в документации слишком скупо сказано "Размер торгового контракта". Размер в чем? Всегда в базовой единице базовой валюты (USD - в долларах, EUR в евро и т.д.) или, к примеру на микро-счете, в центах? А для металлов всегда в тройских унциях? Хотелось бы точных комментариев со стороны разработчиков.
размер контракта всегда выражался в базовой валюте инструмента
Yedelkin
4532
Yedelkin  
supremum:
Близко. Вот только в документации слишком скупо сказано "Размер торгового контракта". Размер в чем? Всегда в базовой единице базовой валюты (USD - в долларах, EUR в евро и т.д.) или, к примеру на микро-счете, в центах? А для металлов всегда в тройских унциях? Хотелось бы точных комментариев со стороны разработчиков.

:) Первоначально вопрос прозвучал так: "...Сколько базовой валюты в 1 лоте для текущего типа счета?" Ответ вроде как очевиден.

 Теперь же Вы задаёте новый вопрос: "...Всегда ли в базовой валюте?". Поэтому посоветую уточнить, что именно Вы хотите узнать от разработчиков, а то ответа непосредственно от них можно и не дождаться.

Скромное мнение. Если конкретный брокер/дилер захочет определить базовую валюту нестандартно (например, в центах), то кто ему сможет в этом помешать? 

Sergey Gritsay
6729
Sergey Gritsay  

Разберем такой пример:

Для инструмента EURUSD базовый контракт 1 лота равен 100 000 евро, если вы хотите получит это например в валюте USD то необходимо умножить размер базового контракта на текущий курс инструмента EURUSD 100 000*1.31=131 000 USD. ну и так далее в зависимости в какой валюте вы хотите получить стоимость базового контракта. Что бы запросить программно размер базового контракта небходимо вызвать функцию

double contract_baze = SymbolInfoDouble("EURUSD",SYMBOL_TRADE_CONTRACT_SIZE);

Andrey Khomich
228
Andrey Khomich  
Yedelkin:

:) Первоначально вопрос прозвучал так: "...Сколько базовой валюты в 1 лоте для текущего типа счета?" Ответ вроде как очевиден.

 Теперь же Вы задаёте новый вопрос: "...Всегда ли в базовой валюте?". Поэтому посоветую уточнить, что именно Вы хотите узнать от разработчиков, а то ответа непосредственно от них можно и не дождаться.

Скромное мнение. Если конкретный брокер/дилер захочет определить базовую валюту нестандартно (например, в центах), то кто ему сможет в этом помешать? 

Уточненный вопрос 

SymbolInfoDouble(Symbol(), SYMBOL_TRADE_CONTRACT_SIZE) вернет размер контракта в каких единицах измерения?

Например:

1) Для микро-счета и EUR\USD ?

2) Для классического счета и XAG\USD? 

При условии, что брокер ПРАВИЛЬНО поддерживает MT5. 

Sergey Gritsay
6729
Sergey Gritsay  
supremum:

Уточненный вопрос 

SymbolInfoDouble(Symbol(), SYMBOL_TRADE_CONTRACT_SIZE) вернет размер контракта в каких единицах измерения?

Например:

1) Для микро-счета и EUR\USD ?

2) Для классического счета и XAG\USD? 

При условии, что брокер ПРАВИЛЬНО поддерживает MT5. 

1. вернет размер контракта для EURUSD = 100 000 евро

2. для классики EURUSD = 100 000 евро

3. для XAGUSD 5000 унций скорее всего(это на альпари)

P.S размер контракта не зависит от типа счета. тип счета влияет только на маржинальные свойства

P.P.S Почитайте у своего брокера спецификации контрактов, там все написано


вот спецификации контрактов альпари

Торговые инструменты 1 лот Максимальное кредитное плечо / Залог Минимальный
лот/Шаг
Тройной
своп
Комиссия Стоп аут
Forex 100 000 1:500* 0.01/0.01 среда - четверг 0 20%
Металлы спот 100-5000 troy oz 0,5%** 0.01/0.01 среда - четверг 0 20%
CFD на Акции США 100 акций 10% 0.01/0.01 пятница - суббота 0 20%
CFD на ETF 100 акций 10% 0.01/0.01 пятница - суббота 0 20%


более подробно здесь http://www.alpari.ru/ru/cspec/



Спецификация контрактов
Спецификация контрактов
  • www.alpari.ru
Минимальный спред, пункты Пункт В пятизначных котировках это четвертый знак после запятой (0.0001). В трехзначных котировках — второй знак после запятой (0.01). Например: в котировке EURUSD — 1.28340; в котировке GBPJPY — 128.519. На счетах типа Standard и Nano отложенные ордера выставляются на...
Andrey Khomich
228
Andrey Khomich  
sergey1294:

1. вернет размер контракта для EURUSD = 100 000 евро

2. для классики EURUSD = 100 000 евро

1) То есть хоть микро, хоть мини, хоть классик все равно для XXX\YYY размер контракта , возвращаемый SymbolInfoDouble(Symbol(), SYMBOL_TRADE_CONTRACT_SIZE), всегда измеряется в количестве XXX? 

2) Простите за вопрос, вы разработчик MT5? Тоесть это не просто ваше предположение, а документированное свойство? 

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий