Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересуют возможности MQL5? Загляни в документацию!
4x4ever
439
4x4ever 2014.12.13 15:00 

Обясните пожалуйста как преводить значения MODE_SWAPTYPE (mql4) в SWAP_MODE (mql5) и наоборот. В MQL4 swaptype может принимать значения от 0 до 3:

MODE_SWAPTYPE:

Swap calculation method. 
0 - in points; 
1 - in the symbol base currency; 
2 - by interest; 
3 - in the margin currency

 В MQL5 их гораздо больше.

ENUM_SYMBOL_SWAP_MODE

Идентификатор

Описание

0 - SYMBOL_SWAP_MODE_DISABLED

Нет свопов

1 - SYMBOL_SWAP_MODE_POINTS

Свопы начисляются в пунктах

2 - SYMBOL_SWAP_MODE_CURRENCY_SYMBOL

Свопы начисляются в деньгах в базовой валюте символа

3 - SYMBOL_SWAP_MODE_CURRENCY_MARGIN

Свопы начисляются в деньгах в маржинальной валюте символа

SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT

Свопы начисляются в деньгах в валюте депозита клиента

SYMBOL_SWAP_MODE_INTEREST_CURRENT

Свопы начисляются в годовых процентах от цены инструмента на момент расчета свопа(банковский режим – 360 дней в году)

SYMBOL_SWAP_MODE_INTEREST_OPEN

Свопы начисляются в годовых процентах от цены открытия позиции по символу (банковский режим – 360 дней в году)

SYMBOL_SWAP_MODE_REOPEN_CURRENT

Свопы начисляются переоткрытием позиции. В конце торгового дня позиция принудительно закрывается. На следующий день позиция переоткрывается по цене закрытия +/- указанное количество пунктов (в параметрах SYMBOL_SWAP_LONG и SYMBOL_SWAP_SHORT)

SYMBOL_SWAP_MODE_REOPEN_BID

Свопы начисляются переоткрытием позиции. В конце торгового дня позиция принудительно закрывается. На следующий день позиция переоткрывается по текущей цене Bid +/- указанное количество пунктов (в параметрах SYMBOL_SWAP_LONG и SYMBOL_SWAP_SHORT)

 

Тоесть совпадение есть только когда  'Свопы начисляются в маржинальной валюте символа' - тогда значение в обоих случаях 3. Во всех остальн. случаях надо писать функцию перевода одного значенбия в другое.

Верно ли что:

"0 - in points"   ==  SYMBOL_SWAP_MODE_POINTS (1)

   и

"1 - in the symbol base currency"  ==  SYMBOL_SWAP_MODE_CURRENCY_SYMBOЛ  (2)


И в таком случае что из всех SYMBOL_SWAP_MODE_... соответствует "2 - by interest"?

4x4ever
439
4x4ever 2014.12.15 09:33  

Кстати, заметил что если открыть счета у брокеров которые предлагают и MT4 и MT5 то числовые значения определяющие тип суопов в обоих одинаковы. Что не должно быть так ибо в МТ5/MQL5  отсчет начинается с DISABLED (0) а в МТ4 значение 0 означает "In Points" a DISABLED вообще нет и единственное значение которое совпадает в обоих ето 3 (margin).... Для примера можете попробовать AGM Markets, пару берем например "EURAUDecn". Проверяем что рапортует терминал и что скрипт (в mql4 --> MarketInfo(Symbol(), MODE_SWAPTYPE) а в mql5 --> SymbolInfoInteger(Symbol(), SYMBOL_SWAP_MODE) ).

Получаем:

  • МТ4  -->  "in points"  (т.е. 0)
  • MQL4  --> 0  (т.е. "in points", ок здесь все правильно...)
  • МТ5  ---> "in points" (т.е. 1 так как ENUM_SYMBOL_SWAP считает с нуля а 0 там значит "disabled")
  • MQL5 --> 0 ??? disabled? почему??
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий