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

 

Проблема в ArrayInsert() - не работает для статических массивов.
При вставке значений в статический массив изменение последнего не происходит.
Возвращаемая ошибка - 4007 (Недостаточно памяти для перераспределения массива либо попытка изменения размера статического массива).

Не работает пример из справки к данной функции.


 

Символы- спецификация.

Когда запускаешь поиск в какой нить группе ищет по всем ипнструментам а не в текущей выбранной группе.

Сделайте надстройку на поиск в группе. А то на каком нибудь супер брокере с кучей инструментов выбрать нереально долго. Проще бросить

 

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


я нашел ошибку в ENUM_SYMBOL_CALC_MODE

у меня другой брокер, который использует разные режимы расчета для DAX и DOW

 int     iCM1 = SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_CALC_MODE );
   ENUM_SYMBOL_CALC_MODE TradeCalcMode = ( ENUM_SYMBOL_CALC_MODE ) SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_CALC_MODE ); 
   string sCM1 = EnumToString (TradeCalcMode);
   Print ( "iCM1: " ,iCM1, "  sCM1: " ,sCM1);


Брокер 1 (Пепперстоун): используйте SYMBOL_CALC_MODE_CFD. в SymbolInfoInteger записывается значение 2, что означает SYMBOL_CALC_MODE_FUTURES

с

 ENUM_SYMBOL_CALC_MODE TradeCalcMode = ( ENUM_SYMBOL_CALC_MODE ) SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_CALC_MODE ); 
   string sCM1 = EnumToString (TradeCalcMode);

я получил значение SYMBOL_CALC_MODE_CFD



Брокер 2:

это тот же вопрос между 4 и CFDLeverage и CFDIndex


 

FileSelectDialog

filter

[in]  Фильтр расширений файлов, которые будут показаны в диалоговом окне для выбора. Файлы других форматов будут скрыты.

Код

   string   sm                = Symbol();
   string   tf                = EnumToString(Period()); //IntegerToString(PeriodSeconds());
   string   flname[];
   string   filter            = "expbin";
   if(FileSelectDialog("Вабор файла","NCYK",filter,FSD_COMMON_FOLDER|FSD_FILE_MUST_EXIST,flname) <= 0)

Фильтр не работает

Тоже самое, если ставлю фильтр "txt"...

 

Мелочь, а было бы приятно... Не хватает возможности терминале расположения окон "мозайка", но с выбором вариантов (3, 4, 5, 6 столбиков)

мои 18 или 15 окон постоянно выставляет в 4 столбика, что совсем не удобно. Приходится в ручную по долгу ковыряться выстраивая по удобнее.

Еще круче еслиб этот режим был без рамок окон, а то много полезной площади на них теряется.

Кто тоже этим заморачивается, прошу поддержите мою просьбу...

 
Сергей Таболин:

FileSelectDialog

Такого диалога не хватает при задании значения input-переменной.

 
Сергей Таболин:

FileSelectDialog

Код

Фильтр не работает

Тоже самое, если ставлю фильтр "txt"...

Попробуйте фильтры в следующем жестком формате:

"Text files (*.txt)|*.txt|All files (*.*)|*.*"


 

Вопрос понимания для CloseBy.

Обычно, если есть две открытые позиции (с одинаковым объемом), номер билета будет получен из обоих, и для закрытия обоих будет вызван метод PositionCloseBy (const ulong ticket, const ulong ticket_by).

Я (MQ-Demo-Hedge-Account) теперь хотел бы удалить несколько открытых позиций одного и того же направления (5 покупок по 0,1 лоту), отправив один противоположный LimitOrder (с 0,5 лотом), который (автоматически?) Удалит все открытые позиции как как только он активируется. Я написал прилагаемый скрипт для тестирования.

К сожалению, это генерирует эту ошибку:

GD 0 15 : 00 : 25.491 test_CloseByLimits (EURUSD,M5) resRet: 10013 ( TRADE_RETCODE_INVALID ) extRet: 0 deal 0 vol: 0.0 lstErr: 4756 ( ERR_TRADE_SEND_FAILED )


Означает ли это, что я не могу использовать противоположный отложенный ордер для закрытия открытых позиций?
Нужно ли ждать, пока активируется отложенный ордер, и (только?) Закрывать все открытые позиции по closeBy?

Если это так, я хочу, чтобы это стало возможным! Что говорит против этого?
Отложенный ордер сохраняет номер билета во время активации?

A question of understanding for CloseBy.

Normally, if there are two open positions (with the same volume), the ticket number would be retrieved from both and the PositionCloseBy(const ulong ticket,const ulong ticket_by) method would be called to close both.

I (MQ-Demo-Hedge-Account) would now like to delete several open positions of the same direction (5 buys of 0.1 lot) by sending one opposite LimitOrder (with 0.5 lot) which will (automatically?) delete all open positions as soon as it is activated. I have written the attached script for testing purposes.

Unfortunately it generates this error:

GD 0 15:00:25.491 test_CloseByLimits (EURUSD,M5) resRet: 10013 (TRADE_RETCODE_INVALID) extRet: 0 deal 0 vol: 0.0 lstErr: 4756 (ERR_TRADE_SEND_FAILED)


Does this mean  I can't use an opposite Pending Order to close open positions?
Do I have to wait until the Pending Order is activated and (only?) then close all open positions by a closeBy?

If that is the case, I wish that this becomes possible! What speaks against it?
A Pending Order keeps its ticket number during the activation?

Файлы:
 
Carl Schreiber:

Вопрос понимания для CloseBy.

Есть пять открытых позиций 0.1 Buy с тикетами #1, #2, #3, #4 и #5. Нам нужно их закрыть одной противоположной позицией 0.5 Sell с идентификатором позиции #6.

Что делаем (схематично):

  1. PositionCloseBy(1,6); - позиция 0.1 Buy #1 закрыта встречной 0.5 Sell #6. Объём Sell #6 теперь равен 0.4.
  2. PositionCloseBy(2,6); - позиция 0.1 Buy #2 закрыта встречной 0.4 Sell #6. Объём Sell #6 теперь равен 0.3.
  3. PositionCloseBy(3,6); - позиция 0.1 Buy #3 закрыта встречной 0.3 Sell #6. Объём Sell #6 теперь равен 0.2.
  4. PositionCloseBy(4,6); - позиция 0.1 Buy #4 закрыта встречной 0.2 Sell #6. Объём Sell #6 теперь равен 0.1.
  5. PositionCloseBy(5,6); - позиция 0.1 Buy #5 закрыта встречной 0.1 Sell #6. Позиции Sell #6 теперь нету.
 
Artyom Trishkin :

Es gibt fünf offene Positionen für 0.1 Buy mit den Tickets Nr. 1, Nr. 2, Nr. 3, Nr. 4 und Nr. 5. Wir müssen sie mit einer gegenüberliegenden 0,5-Verkaufsposition mit der Positionskennung Nr. 6 schließen.

Was wir machen (schematisch):

  1. PositionCloseBy (1.6); - Position 0.1 Kaufen # 1 wird durch das Gegenteil geschlossen 0,5 Verkaufen # 6. Volume Sell # 6 ist jetzt 0.4.
  2. PositionCloseBy (2.6); - Position 0.1 Kaufen # 2 wird durch das Gegenteil geschlossen 0.4 Verkaufen # 6. Volume Sell # 6 ist jetzt 0.3.
  3. PositionCloseBy (3.6); - Position 0.1 Kaufen # 3 wird durch das Gegenteil geschlossen 0.3 Verkaufen # 6. Volume Sell # 6 ist jetzt 0.2.
  4. PositionCloseBy (4.6); - Position 0.1 Buy # 4 wird durch den entgegenkommenden 0.2 Sell # 6 geschlossen. Volume Sell # 6 ist jetzt 0.1.
  5. PositionCloseBy (5.6); - Position 0.1 Buy # 5 wird durch das Gegenteil von 0.1 Sell # 6 geschlossen. Verkauf # 6 Positionen sind jetzt weg.

Должна ли (!) Это быть открытая позиция или же это может быть противоположный лимитный ордер, чтобы получить лучшую цену и не обременять систему (или мое терпение) постоянным наблюдением и ожиданием?

Или эта форма CloseBy возможна только через OnTradeTransaction () - чтобы узнать, когда LimitOrder активирован, и только потом отправлять CloseBy?

Does(!) this have to be an open position or can't it also be an opposite limit order to get a better price and not burden the system (or my patience) with constant watching and waiting?

Or is this form of CloseBy only possible via OnTradeTransaction() - to recognize when the LimitOrder is activated and only then send the CloseBy?

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