Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite - страница 9

 
amando:

Ставка маржи По умолчанию всегда возвращается 0

нет никакого способа, чтобы прочитать начальную ставку маржи и обслуживание маржинальной ставки

оба находятся в SymbolsInfoDouble

и вы должны прочитать это с

но это всегда возвращает 0, на демо и на реальном счете.

я проверяю это с 2 брокерами, оба имеют это значение написано в


проблема в том, что он нужен для расчета, если у вас нет символов Форекс, а значение отличается от 1 или 0


https://www.mql5.com/de/docs/marketinformation/symbolinfomarginrate

Dokumentation zu MQL5: Marktinformation erhalten / SymbolInfoMarginRate
Dokumentation zu MQL5: Marktinformation erhalten / SymbolInfoMarginRate
  • www.mql5.com
[in] Variable vom Typ double für das Erhalten der anfänglichen Margin Rate. Anfängliche Margin – das ist der Wert des Sicherheitsbetrags für die Ausführung eines Trades mit dem Volumen von einem Lot in die entsprechende Richtung. Wenn wir die Rate mit der anfänglichen Margin multiplizieren können wir den Equity Wert bekommen, der nach der...
 
Roman :

https://www.mql5.com/de/docs/marketinformation/symbolinfomarginrate

там вы не получите эту ставку

 

Билд 2375.

Смотрите, что можно делать в редакторе MetaEditor, если нажать 'Ctrl' и покрутить колесико мышки

 
Vladimir Karputov:

Билд 2375.

Смотрите, что можно делать в редакторе MetaEditor, если нажать 'Ctrl' и покрутить колесико мышки (для анимации кликнуть на изображение)


Так было всегда. Это примочки windows

 

Нет WRONG_VALUE?

Эта:

 static ENUM_ORDER_TYPE SigTrend = WRONG_VALUE , 
                       SigAdd   = WRONG_VALUE , 
                       SigClose = WRONG_VALUE ;
...
 Print ( _Symbol , " " , TimeCurrent (), " " , TimeLocal (), " SigTrend: " , EnumToString (SigTrend), " SigAdd: " , EnumToString (SigAdd), " SigClose: " , EnumToString (SigClose));

Создает это в журнале экспертов:

CS       0        18 : 40 : 10.062     exp_HalfTrend v04 (GBPUSD,H1)   GBPUSD 2020.04 . 02 19 : 40 : 00 2020.04 . 02 18 : 40 : 10 SigTrend: ENUM_ORDER_TYPE ::- 1 SigAdd: ORDER_TYPE_BUY SigClose: ENUM_ORDER_TYPE ::- 1 

Я ожидаю WRONG_VALUE, но не -1

 
Carl Schreiber:

Нет WRONG_VALUE?

Эта:

Создает это в журнале экспертов:

Я ожидаю WRONG_VALUE, но не -1

WRONG_VALUE это и есть '-1' для перечисления

WRONG_VALUE

Константа может неявно приводиться к типу любого перечисления.

-1

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL5 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...
 
Carl Schreiber:

Нет WRONG_VALUE?

Эта:

Создает это в журнале экспертов:

Я ожидаю WRONG_VALUE, но не -1

Если распечатать в журнале константы перечисления ENUM_ORDER_TYPE, то увидим, что они начинаются от 0, и не увидим в списке значения -1.
Поэтому при выводе в журнал и пишется, что пытаетесь вывести -1 как значение перечисления, в котором нет этой величины.

Это работает для любых перечислений.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Artyom Trishkin :

Если распечатать в журнале константы перечисления ENUM_ORDER_TYPE, то увидим, что они начинаются от 0, и не увидим в списке значения -1.
Поэтому при выводе в журнал и пишется, что пытаетесь вывести -1 как значение перечисления, в котором нет этой величины.

Это работает для любых перечислений.

С точки зрения программиста, я понимаю это, но с точки зрения пользователя, я бы этого не ожидал. WRONG_VALUE также является допустимым значением перечисления.

From the programmer's point of view, I understand that, but from the user's point of view, I would not expect that. WRONG_VALUE is also a valid value of the enumeration.

 
Carl Schreiber:

Нет WRONG_VALUE?

Эта:

Создает это в журнале экспертов:

Я ожидаю WRONG_VALUE, но не -1

Каким образом Вы получили такой результата? Где полный код, который можно воспроизвести?

Я запустил тест на оборудовании:

MetaTrader 5 x64 build 2375 started for MetaQuotes Software Corp.
Windows 10 build 19041, Intel Core i3-3120M  @ 2.50GHz, 2 / 7 Gb memory, 72 / 415 Gb disk, IE 11, UAC, GMT+2
C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

Код:

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+

#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   static ENUM_ORDER_TYPE SigTrend = WRONG_VALUE,
                          SigAdd   = WRONG_VALUE,
                          SigClose = WRONG_VALUE;
   Print(_Symbol, " ", TimeCurrent(), " ", TimeLocal(),
         " SigTrend: ", EnumToString(SigTrend),
         " SigAdd: ", EnumToString(SigAdd),
         " SigClose: ", EnumToString(SigClose));
  }
//+------------------------------------------------------------------+

Результат:

EURUSD 2020.04.03 09:29:26 2020.04.03 09:29:27 SigTrend: ENUM_ORDER_TYPE::-1 SigAdd: ENUM_ORDER_TYPE::-1 SigClose: ENUM_ORDER_TYPE::-1
У меня всё правильно отработало.
Файлы:
1.mq5  3 kb
 
Vladimir Karputov:

Каким образом Вы получили такой результата? Где полный код, который можно воспроизвести?

Я запустил тест на оборудовании:

Код:

Результат:

У меня всё правильно отработало.

У него отработало всё точно так же:

GBPUSD 2020.04.02 19:40:00 2020.04.02 18:40:10 SigTrend: ENUM_ORDER_TYPE::-1 SigAdd: ORDER_TYPE_BUY SigClose: ENUM_ORDER_TYPE::-1 

Вопрос был в другом: почему в журнал пишется "ENUM_ORDER_TYPE::-1", а не "WRONG_VALUE".

Ответ я уже дал.

Причина обращения: