Ошибки, баги, вопросы - страница 1014

 

В справке:

struct MqlTradeRequest

  {

   ENUM_TRADE_REQUEST_ACTIONS    action;           // Тип выполняемого действия

   ulong                         magic;            // Штамп эксперта (идентификатор magic number)

   ulong                         order;            // Тикет ордера

   string                        symbol;           // Имя торгового инструмента

   double                        volume;           // Запрашиваемый объем сделки в лотах

   double                        price;            // Цена 

   double                        stoplimit;        // Уровень StopLimit ордера

   double                        sl;               // Уровень Stop Loss ордера

   double                        tp;               // Уровень Take Profit ордера

   ulong                         deviation;        // Максимально приемлемое отклонение от запрашиваемой цены

   ENUM_ORDER_TYPE               type;             // Тип ордера

   ENUM_ORDER_TYPE_FILLING       type_filling;     // Тип ордера по исполнению

   ENUM_ORDER_TYPE_TIME          type_time;        // Тип ордера по времени действия

   datetime                      expiration;       // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED)

   string                        comment;          // Комментарий к ордеру

  };

Однако, ниже в таблице, описание:

deviation

Максимально приемлемое отклонение от запрашиваемой цены, задаваемое в пунктах


Т.е. тип переменной должен быть по крайней мере float, но ни как не ulong.

 

Т.е. тип переменной должен быть по крайней мере float, но ни как не ulong.

deviation*_Point будет float
 
joo:

В справке:

struct MqlTradeRequest

  {

   ENUM_TRADE_REQUEST_ACTIONS    action;           // Тип выполняемого действия

   ulong                         magic;            // Штамп эксперта (идентификатор magic number)

   ulong                         order;            // Тикет ордера

   string                        symbol;           // Имя торгового инструмента

   double                        volume;           // Запрашиваемый объем сделки в лотах

   double                        price;            // Цена 

   double                        stoplimit;        // Уровень StopLimit ордера

   double                        sl;               // Уровень Stop Loss ордера

   double                        tp;               // Уровень Take Profit ордера

   ulong                         deviation;        // Максимально приемлемое отклонение от запрашиваемой цены

   ENUM_ORDER_TYPE               type;             // Тип ордера

   ENUM_ORDER_TYPE_FILLING       type_filling;     // Тип ордера по исполнению

   ENUM_ORDER_TYPE_TIME          type_time;        // Тип ордера по времени действия

   datetime                      expiration;       // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED)

   string                        comment;          // Комментарий к ордеру

  };

Однако, ниже в таблице, описание:

deviation

Максимально приемлемое отклонение от запрашиваемой цены, задаваемое в пунктах


Т.е. тип переменной должен быть по крайней мере float, но ни как не ulong.

 

Количество пунктов - целое число. 

 
19P2l2MaS0:
подскажите что такое MQL5 - пароль и где его посмотреть????
Имеются в виду аккаунт и пароль для авторизации на сайте MQL5.com.
 
Contender:

 

Количество пунктов - целое число. 

Где сказано про "Количество пунктов"?

По факту в структуре deviation типа ulong, а в табличном описалове ниже: double  Point();

В этом и есть расхождение. Либо поправить структуру и справку, либо только справку привести в соответствие со структурой.

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Типы char, short, int и long - Документация по MQL5
 

Здравствуйте!

Попытался адаптировать эксперта к работе на рынках отличных от форекса, в связи с чем, возникли следующие вопросы:

1.     Если на форексе котировка дается на единицу валютыто например на фьючесах и CFD на 1 контракт. Специально в документации этот вопрос не оговорен. Можно ли считать что вид котировки соответствует способу вычисления залоговых средств, из перечисления ENUM_SYMBOL_CALC_MODE. То есть: при  ENUM_SYMBOL_CALC_MODE: SYMBOL_CALC_MODE_FOREX котировка дается на единицу валюты (и курс валюты счета по отношению к валюте котировки вычисляется какSymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE)), а при значениях SYMBOL_CALC_MODE_FUTURESSYMBOL_CALC_MODE_CFDSYMBOL_CALC_MODE_CFDINDEX,SYMBOL_CALC_MODE_CFDLEVERAGE котировка дается на 1 контракт (и курс валюты счета по отношению к валюте котировки вычисляется как SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE)) или есть исключения?

2.     Что возвращает функция PositionGetDouble(POSITION_SWAP)? Накопленный к моменту запроса своп в валюте счета? Не зависит ли возвращаемое значение от способа начисления свопов из перечисления ENUM_SYMBOL_SWAP_MODE. Например не могут ли это быть пункты, базовая или маржинальная валюты?

3. В таблице расчетов маржи:

 Для получения информации о способе вычисления величины залоговых средств по инструменту (размера маржинальных требований) предназначено перечисление ENUM_SYMBOL_CALC_MODE.

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

 не указано в какой валюте вычисляется маржа и прибыль? Как запросить Percentage? В чем особенность режима CFD Leverage mode?

4. Функция запроса плеча AccountInfoInteger(ACCOUNT_LEVERAGE), которая корректно работает на форексе, на рынке фьючерсов дает 1. Как правильно запросить/определить плечо на фьючерсах?

5. Функция SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL) - работает только для фьючерсов? 

Нет ли более подробного описания этих вопросов применительно к MQL5.


 
Andrew1469:

Здравствуйте!


Нет ли более подробного описания этих вопросов применительно к MQL5.


Сами принципы расчета можно поискать в интернете, а выйти на правильный результат, ориентируясь на спецификацию инструмента путем проверки на конкретном инструменте и брокере.
 
zfs:
Сами принципы расчета можно поискать в интернете, а выйти на правильный результат, ориентируясь на спецификацию инструмента путем проверки на конкретном инструменте и брокере.

 

Не подскажете ли брокера, где можно было бы проверить с одного счета валютные пары и CFD всех видов, а желательно и фьючерсы с одного демо-счета?  

В MT4 у Финама есть валютные пары, CFD на акции и на индексы, но в MT5, к сожалению, только валютные пары.

Сейчас опробую валютные пары на Финаме, а фьючерсы на Открытии, но у открытия сервер на запрос SymbolInfoInteger(_Symbol,SYMBOL_TRADE_CALC_MODE) выдает 33 и 34 - чего нет в перечислении ENUM_SYMBOL_CALC_MODE.

По свопам тоже не нашел пока брокера, чтобы протестировать различные способы их вычисления, а из документации  не понять влияет ли способ начисления свопов на результат запроса  PositionGetDouble(POSITION_SWAP).

Заранее спасибо! 

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Andrew1469:
zfs:
Сами принципы расчета можно поискать в интернете, а выйти на правильный результат, ориентируясь на спецификацию инструмента путем проверки на конкретном инструменте и брокере.

 

Не подскажете ли брокера, где можно было бы проверить с одного счета валютные пары и CFD всех видов, а желательно и фьючерсы с одного демо-счета?  

В MT4 у Финама есть валютные пары, CFD на акции и на индексы, но в MT5, к сожалению, только валютные пары.

Сейчас опробую валютные пары на Финаме, а фьючерсы на Открытии, но у открытия сервер на запрос SymbolInfoInteger(_Symbol,SYMBOL_TRADE_CALC_MODE) выдает 33 и 34 - чего нет в перечислении ENUM_SYMBOL_CALC_MODE.

По свопам тоже не нашел пока брокера, чтобы протестировать различные способы их вычисления, а из документации  не понять влияет ли способ начисления свопов на результат запроса  PositionGetDouble(POSITION_SWAP).

Заранее спасибо! 

Такого брокера нет видимо. Используйте несколько терминалов. Значение там типа лонг, поэтому и выдает вам цифру, проводите сравнение, если не желаете вникать в цифры. Значение свопа PositionGetDouble(POSITION_SWAP)  фактическое по позиции. Да влияет, своп начисляется в один день за выходные.

 
zfs:

Такого брокера нет видимо. Используйте несколько терминалов. Значение там типа лонг, поэтому и выдает вам цифру, проводите сравнение, если не желаете вникать в цифры. Значение свопа PositionGetDouble(POSITION_SWAP)  фактическое по позиции. Да влияет, своп начисляется в один день за выходные.

Тогда подскажите где найти CFD под пятый метатрейдер?

В цифры я пытаюсь вникнуть, но несколько мешает недосказанность в документации, например в таблицах перечислений не приведены соответствующие цифры. Опытным путем установил, что SYMBOL_CALC_MODE_FOREX - это 0, но 33 и 34 в ответе сервера открытия не идентифицируется никак.

По поводу свопов - верно ли я понимаю, что  PositionGetDouble(POSITION_SWAP) и  HistoryDealGetDouble(Deal_Ticket,DEAL_SWAP) дают фактически накопленный своп в валюте депозита независимо от способа его начисления?

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
Причина обращения: