Новая версия платформы MetaTrader 5 build 4150: экспорт торгового отчета и новые методы машинного обучения в MQL5 - страница 2

 
Maxim Kuznetsov #:

не про платформу, но про сайт

с недавних пор (день-полтора), последние сообщения в форуме приобрели загадочный вид:

именно последние, и при первом открытии (кнопка F5 "обновить" это дело исправляет)

что-то намудрили в JS с асинхронной загрузкой (и/или кешированием?).


сегодня было такое у меня, правда "загадочными" выглядели предпоследние сообщения.
 

В 4120 не отображаются коэффициенты маржи:


 в 4073:


 

Сервер MetaQuotes-Demo

Можно выставить ордер с deviation

Попытался протестировать deviation в тестере:

input int Deviation = 0;
input int TpSl = 50;

int stop=0;
void OnTick(){
  if(stop > 10000){return;}//10000 первые сделок

//--- объявление и инициализация запроса и результата
   MqlTradeRequest request={};
   MqlTradeResult  result={};
//--- параметры запроса
   request.action   =TRADE_ACTION_DEAL;                     // тип торговой операции
   request.symbol   =Symbol();                              // символ
   request.volume   =0.1;                                   // объем в 0.1 лот
   request.type     =ORDER_TYPE_BUY;                        // тип ордера
   request.price    =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
   request.tp    =SymbolInfoDouble(Symbol(),SYMBOL_BID) + TpSl*_Point; // цена для открытия
   request.sl    =SymbolInfoDouble(Symbol(),SYMBOL_BID) - TpSl*_Point; // цена для открытия
   request.deviation=Deviation;                                     // допустимое отклонение от цены
   request.magic    =1;                          // MagicNumber ордера
//--- отправка запроса
   if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());     // если отправить запрос не удалось, вывести код ошибки
  stop++;
}


Добавил задержку в 10 секунд, чтобы цена успела измениться с момента отправки ордера.



При deviation=0 результат

При deviation = 1 или 2, 5,10 результат точно такой же. А должны бы часть ордеров отклонится из за проскальзывания цены выше, чем указано в deviation. 
deviation = 1пт например, должен был бы часто отклонять ордера. 5пт реже, 100пт почти никогда, может при гэпах.

Т.е. установка deviation вообще не влияет на результат. Он вообще запрограммирован в тестере? Если да, то как им правильно пользоваться?

П.С.
проверил этот советник с deviation = 1, на демо счете (в терминале, а не в тестере). Как и ожидалось, иногда возникают реквоты:
KE    0    23:55:29.150    Trades    '77187221': deal #2208098504 buy 0.1 EURUSD at 1.09529 done (based on order #2233369358)
HH    0    23:55:29.150    Trades    '77187221': order #2233369358 buy 0.1 / 0.1 EURUSD at 1.09529 done in 94.942 ms
DS    0    23:55:29.350    Trades    '77187221': instant buy 0.1 EURUSD at 1.09529 sl: 1.09478 tp: 1.09578 (deviation: 1)
HQ    0    23:55:29.440    Trades    '77187221': requote 1.09525 / 1.09526 (instant buy 0.1 EURUSD at 1.09529 sl: 1.09478 tp: 1.09578 (deviation: 1))
JS    0    23:55:29.440    Trades    '77187221': instant buy 0.1 EURUSD at 1.09525 sl: 1.09474 tp: 1.09574 (deviation: 1)
CQ    0    23:55:29.540    Trades    '77187221': requote 1.09523 / 1.09524 (instant buy 0.1 EURUSD at 1.09525 sl: 1.09474 tp: 1.09574 (deviation: 1))
FR    0    23:55:29.710    Trades    '77187221': instant buy 0.1 EURUSD at 1.09523 sl: 1.09472 tp: 1.09572 (deviation: 1)
QN    0    23:55:29.800    Trades    '77187221': accepted instant buy 0.1 EURUSD at 1.09523 sl: 1.09472 tp: 1.09572 (deviation: 1)
В тестере реквоты тоже есть, но как говорил выше, изменение deviation не изменяет итоговый результат:
OR    0    00:10:27.249    Core 1    2023.05.29 00:05:39   order performed buy 0.1 at 1.07267 [#7 buy 0.1 EURUSD at 1.07267]
RM    0    00:10:27.249    Core 1    2023.05.29 00:05:40   requote 1.07206 / 1.07263 (instant buy 0.1 EURUSD at 1.07266 sl: 1.07156 tp: 1.07256)
FN    0    00:10:27.249    Core 1    2023.05.29 00:05:40   requote 1.07206 / 1.07263 (instant buy 0.1 EURUSD at 1.07266 sl: 1.07156 tp: 1.07256)
CP    0    00:10:27.249    Core 1    2023.05.29 00:05:40   OrderSend error 4756
JK    0    00:10:27.249    Core 1    2023.05.29 00:05:43   instant buy 0.1 EURUSD at 1.07263 sl: 1.07157 tp: 1.07257 (1.07207 / 1.07263)
 

Эксперт:

input int TpSl = 20;

int stop=0;
void OnTick(){
  if(stop > 20){return;}//20 первых сделок
   Print (MscToString(SymbolInfoInteger(Symbol(),SYMBOL_TIME_MSC)), " a: ",SymbolInfoDouble(Symbol(),SYMBOL_ASK), " b: ", SymbolInfoDouble(Symbol(),SYMBOL_BID));
   double ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID);
//--- объявление и инициализация запроса и результата
   MqlTradeRequest request={};
   MqlTradeResult  result={};
//--- параметры запроса
   request.action   =TRADE_ACTION_DEAL;                     // тип торговой операции
   request.symbol   =Symbol();                              // символ
   request.volume   =10;                                   // объем в 0.1 лот
   request.type     =ORDER_TYPE_BUY;                        // тип ордера
   request.price    =ask; // цена для открытия + 2 пт для проверки deviation
   request.tp    =bid + TpSl*_Point; 
   request.sl    =bid - TpSl*_Point; 
   request.deviation=0;                             // допустимое отклонение от цены
   request.type_filling    = ORDER_FILLING_FOK; 
//--- отправка запроса
   if(!OrderSend(request,result)){ /*PrintFormat("OrderSend error %d",GetLastError());*/ }    // если отправить запрос не удалось, вывести код ошибки
   
   
   //--- параметры запроса
   request.action   =TRADE_ACTION_DEAL;                     // тип торговой операции
   request.symbol   =Symbol();                              // символ
   request.volume   =10;                                   // объем в 0.1 лот
   request.type     =ORDER_TYPE_SELL;                        // тип ордера
   request.price    =bid; // цена для открытия + 2 пт для проверки deviation
   request.tp    =ask - TpSl*_Point; 
   request.sl    =ask + TpSl*_Point; 
   request.deviation=0;                             // допустимое отклонение от цены
   request.type_filling    = ORDER_FILLING_FOK; 
//--- отправка запроса
   if(!OrderSend(request,result)){ /*PrintFormat("OrderSend error %d",GetLastError());*/ }    // если отправить запрос не удалось, вывести код ошибки
  stop++;
}

string MscToString(long ms){return (string)(datetime)(ms/1000)+"."+IntegerToString(ms%1000, 3, '0');}//время в мс - в строку
   

ДЦ MetaQuotes Demo.
Тест с задержкой 100мс.
Сначала тестируем с ТП и СЛ = 0 (т.е. отступ от цены ASK или BID будет = 0), потом с отступом 20. С тестом при отступе 20 пт все нормально. Каждый запрос обрабатывается 100мс.
При отступе=0 проблемы с Invalid stop, когда они случаются, то задержка в 100мс не применяется, но в реальности она будет, т.к. цена установлена правильной и получить Invalid stops она может стать только спустя 100 мс, если цена изменится, но тестер узнает цену заглядывая вперед, но не делая паузу в 100мс.
В результате из за разных пауз, эксперт  начинает обрабатываться разные тики.
И при 0 пт и при 20 пт отступа отправляется по 2 запроса на сервер. На каждый должно тратиться по 100мс (или по 200мс на оба запроса). При отступе 20пт так и есть, при отступе 0 пт, нет.

См. комментарии ниже в местах где происходят пропуски задержек в 100 мс.

c tp=sl=ask/bid
Отступ = 0

EURUSD : real ticks begin from 2023.05.29 00:00:00
2023.05.29 00:02:41   2023.05.29 00:02:41.107 a: 1.07251 b: 1.07178
2023.05.29 00:02:41   requote 1.07178 / 1.07241 (instant buy 10 EURUSD at 1.07251 sl: 1.07178 tp: 1.07178)
2023.05.29 00:02:41   requote 1.07178 / 1.07241 (instant buy 10 EURUSD at 1.07251 sl: 1.07178 tp: 1.07178)
2023.05.29 00:02:41   failed instant sell 10 EURUSD at 1.07178 sl: 1.07251 tp: 1.07251 [Invalid stops]
Следущий тик через 37 секунд, поэтому отличие пауз не сказалось на результате.
c tp=sl=ask|bid +- 20пт
Отступ = 20пт

EURUSD : real ticks begin from 2023.05.29 00:00:00
2023.05.29 00:02:41   2023.05.29 00:02:41.107 a: 1.07251 b: 1.07178
2023.05.29 00:02:41   requote 1.07178 / 1.07241 (instant buy 10 EURUSD at 1.07251 sl: 1.07158 tp: 1.07198)
2023.05.29 00:02:41   requote 1.07178 / 1.07241 (instant buy 10 EURUSD at 1.07251 sl: 1.07158 tp: 1.07198)
2023.05.29 00:02:41   instant sell 10 EURUSD at 1.07178 sl: 1.07271 tp: 1.07231 (1.07178 / 1.07241)
2023.05.29 00:02:41   deal #2 sell 10 EURUSD at 1.07178 done (based on order #2)
2023.05.29 00:02:41   deal performed [#2 sell 10 EURUSD at 1.07178]
2023.05.29 00:02:41   order performed sell 10 at 1.07178 [#2 sell 10 EURUSD at 1.07178]

 2023.05.29 00:03:18   2023.05.29 00:03:18.390 a: 1.07254 b: 1.07165
2023.05.29 00:03:18   instant buy 10 EURUSD at 1.07254 sl: 1.07165 tp: 1.07165 (1.07165 / 1.07254)
2023.05.29 00:03:18   deal #2 buy 10 EURUSD at 1.07254 done (based on order #2)
2023.05.29 00:03:18   deal performed [#2 buy 10 EURUSD at 1.07254]
2023.05.29 00:03:18   order performed buy 10 at 1.07254 [#2 buy 10 EURUSD at 1.07254]
2023.05.29 00:03:18   instant sell 10 EURUSD at 1.07165 sl: 1.07254 tp: 1.07254 (1.07165 / 1.07254)
2023.05.29 00:03:18   deal #3 sell 10 EURUSD at 1.07165 done (based on order #3)
2023.05.29 00:03:18   deal performed [#3 sell 10 EURUSD at 1.07165]
2023.05.29 00:03:18   order performed sell 10 at 1.07165 [#3 sell 10 EURUSD at 1.07165]
2023.05.29 00:03:59   stop loss triggered #2 buy 10 EURUSD 1.07254 sl: 1.07165 tp: 1.07165 [#4 sell 10 EURUSD at 1.07165]
2023.05.29 00:03:59   deal #4 sell 10 EURUSD at 1.07165 done (based on order #4)
2023.05.29 00:03:59   deal performed [#4 sell 10 EURUSD at 1.07165]
2023.05.29 00:03:59   order performed sell 10 at 1.07165 [#4 sell 10 EURUSD at 1.07165]
2023.05.29 00:03:59   take profit triggered #3 sell 10 EURUSD 1.07165 sl: 1.07254 tp: 1.07254 [#5 buy 10 EURUSD at 1.07254]
2023.05.29 00:03:59   deal #5 buy 10 EURUSD at 1.07235 done (based on order #5)
2023.05.29 00:03:59   deal performed [#5 buy 10 EURUSD at 1.07235]
2023.05.29 00:03:59   order performed buy 10 at 1.07235 [#5 buy 10 EURUSD at 1.07254]
2023.05.29 00:03:18   2023.05.29 00:03:18.390 a: 1.07254 b: 1.07165
2023.05.29 00:03:18   instant buy 10 EURUSD at 1.07254 sl: 1.07145 tp: 1.07185 (1.07165 / 1.07254)
2023.05.29 00:03:18   deal #3 buy 10 EURUSD at 1.07254 done (based on order #3)
2023.05.29 00:03:18   deal performed [#3 buy 10 EURUSD at 1.07254]
2023.05.29 00:03:18   order performed buy 10 at 1.07254 [#3 buy 10 EURUSD at 1.07254]
2023.05.29 00:03:18   instant sell 10 EURUSD at 1.07165 sl: 1.07274 tp: 1.07234 (1.07165 / 1.07254)
2023.05.29 00:03:18   deal #4 sell 10 EURUSD at 1.07165 done (based on order #4)
2023.05.29 00:03:18   deal performed [#4 sell 10 EURUSD at 1.07165]
2023.05.29 00:03:18   order performed sell 10 at 1.07165 [#4 sell 10 EURUSD at 1.07165]

2023.05.29 00:03:59   2023.05.29 00:03:59.227 a: 1.07235 b: 1.07165
2023.05.29 00:03:59   requote 1.07159 / 1.07246 (instant buy 10 EURUSD at 1.07235 sl: 1.07165 tp: 1.07165)
2023.05.29 00:03:59   requote 1.07159 / 1.07246 (instant buy 10 EURUSD at 1.07235 sl: 1.07165 tp: 1.07165)
2023.05.29 00:03:59   failed instant sell 10 EURUSD at 1.07165 sl: 1.07235 tp: 1.07235 [Invalid stops]
Invalid stops - не произвел задержку в 100мс
Применена пауза 100мс только для одного запроса 227+100 = 327. Поэтому ниже обработан тик 331мс,
а не 430 мс, как в правом столбце

2023.05.29 00:03:59   2023.05.29 00:03:59.227 a: 1.07235 b: 1.07165
2023.05.29 00:03:59   requote 1.07159 / 1.07246 (instant buy 10 EURUSD at 1.07235 sl: 1.07145 tp: 1.07185)
2023.05.29 00:03:59   requote 1.07159 / 1.07246 (instant buy 10 EURUSD at 1.07235 sl: 1.07145 tp: 1.07185)
2023.05.29 00:03:59   requote 1.07170 / 1.07245 (instant sell 10 EURUSD at 1.07165 sl: 1.07255 tp: 1.07215)
2023.05.29 00:03:59   requote 1.07170 / 1.07245 (instant sell 10 EURUSD at 1.07165 sl: 1.07255 tp: 1.07215)
пауза на 2 сделки по 100 мс: 227 + 100 + 100 = 427
2023.05.29 00:03:59   2023.05.29 00:03:59.331 a: 1.07244 b: 1.07165
2023.05.29 00:03:59   requote 1.07168 / 1.07241 (instant buy 10 EURUSD at 1.07244 sl: 1.07165 tp: 1.07165)
2023.05.29 00:03:59   requote 1.07168 / 1.07241 (instant buy 10 EURUSD at 1.07244 sl: 1.07165 tp: 1.07165)
2023.05.29 00:03:59   failed instant sell 10 EURUSD at 1.07165 sl: 1.07244 tp: 1.07244 [Invalid stops]
применена пауза для одного запроса 331+100=431мс
после 427мс будет обработан тик на 430 мс:

поэтому тик на 430мс (который обработан в правом столбце) пропущен
обработан только тик на 870 мс ниже
2023.05.29 00:03:59   2023.05.29 00:03:59.430 a: 1.07241 b: 1.07168
2023.05.29 00:03:59   instant buy 10 EURUSD at 1.07241 sl: 1.07148 tp: 1.07188 (1.07168 / 1.07241)
2023.05.29 00:03:59   deal #5 buy 10 EURUSD at 1.07241 done (based on order #5)
2023.05.29 00:03:59   deal performed [#5 buy 10 EURUSD at 1.07241]
2023.05.29 00:03:59   order performed buy 10 at 1.07241 [#5 buy 10 EURUSD at 1.07241]
2023.05.29 00:03:59   instant sell 10 EURUSD at 1.07168 sl: 1.07261 tp: 1.07221 (1.07168 / 1.07241)
2023.05.29 00:03:59   deal #6 sell 10 EURUSD at 1.07168 done (based on order #6)
2023.05.29 00:03:59   deal performed [#6 sell 10 EURUSD at 1.07168]
2023.05.29 00:03:59   order performed sell 10 at 1.07168 [#6 sell 10 EURUSD at 1.07168]

2023.05.29 00:04:25   2023.05.29 00:04:25.870 a: 1.07241 b: 1.07159
2023.05.29 00:04:25   instant buy 10 EURUSD at 1.07241 sl: 1.07159 tp: 1.07159 (1.07159 / 1.07241)
2023.05.29 00:04:25   deal #6 buy 10 EURUSD at 1.07241 done (based on order #6)
2023.05.29 00:04:25   deal performed [#6 buy 10 EURUSD at 1.07241]
2023.05.29 00:04:25   order performed buy 10 at 1.07241 [#6 buy 10 EURUSD at 1.07241]
2023.05.29 00:04:25   take profit triggered #6 buy 10 EURUSD 1.07241 sl: 1.07159 tp: 1.07159 [#7 sell 10 EURUSD at 1.07159]
2023.05.29 00:04:25   deal #7 sell 10 EURUSD at 1.07160 done (based on order #7)
2023.05.29 00:04:25   deal performed [#7 sell 10 EURUSD at 1.07160]
2023.05.29 00:04:25   order performed sell 10 at 1.07160 [#7 sell 10 EURUSD at 1.07159]
2023.05.29 00:04:26   requote 1.07166 / 1.07239 (instant sell 10 EURUSD at 1.07159 sl: 1.07241 tp: 1.07241)
2023.05.29 00:04:26   requote 1.07166 / 1.07239 (instant sell 10 EURUSD at 1.07159 sl: 1.07241 tp: 1.07241)

2023.05.29 00:04:25   2023.05.29 00:04:25.870 a: 1.07241 b: 1.07159
2023.05.29 00:04:25   instant buy 10 EURUSD at 1.07241 sl: 1.07139 tp: 1.07179 (1.07159 / 1.07241)
2023.05.29 00:04:25   deal #7 buy 10 EURUSD at 1.07241 done (based on order #7)
2023.05.29 00:04:25   deal performed [#7 buy 10 EURUSD at 1.07241]
2023.05.29 00:04:25   order performed buy 10 at 1.07241 [#7 buy 10 EURUSD at 1.07241]
2023.05.29 00:04:26   requote 1.07166 / 1.07239 (instant sell 10 EURUSD at 1.07159 sl: 1.07261 tp: 1.07221)
2023.05.29 00:04:26   requote 1.07166 / 1.07239 (instant sell 10 EURUSD at 1.07159 sl: 1.07261 tp: 1.07221)





2023.05.29 00:04:26   2023.05.29 00:04:26.082 a: 1.07239 b: 1.07171
2023.05.29 00:04:26   requote 1.07172 / 1.07238 (instant buy 10 EURUSD at 1.07239 sl: 1.07171 tp: 1.07171)
2023.05.29 00:04:26   requote 1.07172 / 1.07238 (instant buy 10 EURUSD at 1.07239 sl: 1.07171 tp: 1.07171)
2023.05.29 00:04:26   failed instant sell 10 EURUSD at 1.07171 sl: 1.07239 tp: 1.07239 [Invalid stops]
Применена пауза 100мс только для одного запроса 082+100 = 182. Поэтому ниже обработан тик 235мс
2023.05.29 00:04:26   2023.05.29 00:04:26.082 a: 1.07239 b: 1.07171
2023.05.29 00:04:26   requote 1.07172 / 1.07238 (instant buy 10 EURUSD at 1.07239 sl: 1.07151 tp: 1.07191)
2023.05.29 00:04:26   requote 1.07172 / 1.07238 (instant buy 10 EURUSD at 1.07239 sl: 1.07151 tp: 1.07191)
2023.05.29 00:04:26   requote 1.07167 / 1.07237 (instant sell 10 EURUSD at 1.07171 sl: 1.07259 tp: 1.07219)
2023.05.29 00:04:26   requote 1.07167 / 1.07237 (instant sell 10 EURUSD at 1.07171 sl: 1.07259 tp: 1.07219)
пауза на 2 сделки по 100 мс: 082+ 100 + 100 = 282
2023.05.29 00:04:26   2023.05.29 00:04:26.235 a: 1.07237 b: 1.07167
2023.05.29 00:04:26   failed instant buy 10 EURUSD at 1.07237 sl: 1.07167 tp: 1.07167 [Invalid stops]
2023.05.29 00:04:26   requote 1.07162 / 1.07238 (instant sell 10 EURUSD at 1.07167 sl: 1.07237 tp: 1.07237)
2023.05.29 00:04:26   requote 1.07162 / 1.07238 (instant sell 10 EURUSD at 1.07167 sl: 1.07237 tp: 1.07237)
Применена пауза 100мс только для одного запроса 235+100 = 335. Поэтому ниже обработан тик 485мс
  после 282мс будет обработан тик на 295 мс:
Тик на 295мс пропущен  (справа он обработан)
2023.05.29 00:04:26   2023.05.29 00:04:26.295 a: 1.07237 b: 1.07172
2023.05.29 00:04:26   requote 1.07162 / 1.07238 (instant buy 10 EURUSD at 1.07237 sl: 1.07152 tp: 1.07192)
2023.05.29 00:04:26   requote 1.07162 / 1.07238 (instant buy 10 EURUSD at 1.07237 sl: 1.07152 tp: 1.07192)
2023.05.29 00:04:26   requote 1.07167 / 1.07238 (instant sell 10 EURUSD at 1.07172 sl: 1.07257 tp: 1.07217)
2023.05.29 00:04:26   requote 1.07167 / 1.07238 (instant sell 10 EURUSD at 1.07172 sl: 1.07257 tp: 1.07217)

 2023.05.29 00:04:26   2023.05.29 00:04:26.485 a: 1.0723799999999999 b: 1.07167
2023.05.29 00:04:26   failed instant buy 10 EURUSD at 1.07238 sl: 1.07167 tp: 1.07167 [Invalid stops]
2023.05.29 00:04:26   failed instant sell 10 EURUSD at 1.07167 sl: 1.07238 tp: 1.07238 [Invalid stops]
 
 дальше то  же самое, обрабатывает разные тики,
лишь иногда после больших пауз между тиками (>200мс) сходится.

 

Для справки. Полный список тиков без пропусков из за пауз (можно получить, если закомментирвать торговые команды):
2023.05.29 00:02:41.107 a: 1.07251 b: 1.07178
 2023.05.29 00:02:41.107 a: 1.07241 b: 1.07178
 2023.05.29 00:03:18.390 a: 1.07254 b: 1.07165
 2023.05.29 00:03:59.227 a: 1.07235 b: 1.07165
 2023.05.29 00:03:59.281 a: 1.07246 b: 1.07159
 2023.05.29 00:03:59.331 a: 1.07244 b: 1.07165
 2023.05.29 00:03:59.380 a: 1.07245 b: 1.0717
 2023.05.29 00:03:59.430 a: 1.07241 b: 1.07168
 2023.05.29 00:04:25.870 a: 1.07241 b: 1.07159
 2023.05.29 00:04:25.972 a: 1.0724  b: 1.0716
 2023.05.29 00:04:26.031 a: 1.07239 b: 1.07166
 2023.05.29 00:04:26.082 a: 1.07239 b: 1.07171
 2023.05.29 00:04:26.131 a: 1.07238 b: 1.07167
 2023.05.29 00:04:26.181 a: 1.07238 b: 1.07172
 2023.05.29 00:04:26.235 a: 1.07237 b: 1.07167
 2023.05.29 00:04:26.295 a: 1.07237 b: 1.07172
 2023.05.29 00:04:26.390 a: 1.07238 b: 1.07162
 2023.05.29 00:04:26.485 a: 1.07238 b: 1.07167
 2023.05.29 00:04:26.545 a: 1.07238 b: 1.07162
 2023.05.29 00:04:26.620 a: 1.07237 b: 1.07162
 2023.05.29 00:04:26.680 a: 1.07237 b: 1.07167

Так же кждой отклоненной сделке печатается 2 раза одинаковое сообщение. На работу не влияет, но забивает логи дублирующей информацией.

 
Если в эксперте применить OrderSendAsync (), то пауз быть не должно, обрабатываться должен каждый тик, ведь ожидания ответа сервера не должно быть. Только цены срабатывания должны быть те,что будут через 100мс.
Но этого не происходит, логи со сделками точно такие же, как с OrderSend(), т.е. режим с задержками для OrderSendAsync() не реализован.
Хорошо бы сделать... это даже проще, чем  с OrderSend()
 
Forester #:

Эксперт:

ДЦ MetaQuotes Demo.
Тест с задержкой 100мс.
Сначала тестируем с ТП и СЛ = 0 (т.е. отступ от цены ASK или BID будет = 0), потом с отступом 20. С тестом при отступе 20 пт все нормально. Каждый запрос обрабатывается 100мс.
При отступе=0 проблемы с Invalid stop, когда они случаются, то задержка в 100мс не применяется, но в реальности она будет, т.к. цена установлена правильной и получить Invalid stops она может стать только спустя 100 мс, если цена изменится, но тестер узнает цену заглядывая вперед, но не делая паузу в 100мс.
В результате из за разных пауз, эксперт  начинает обрабатываться разные тики.
И при 0 пт и при 20 пт отступа отправляется по 2 запроса на сервер. На каждый должно тратиться по 100мс (или по 200мс на оба запроса). При отступе 20пт так и есть, при отступе 0 пт, нет.

См. комментарии ниже в местах где происходят пропуски задержек в 100 мс.

Пока обедал, понял, что после 1-й торговой команды, проходит 100мс и эксперт к началу 2-й команды получает новые цены и уже может сразу же отклонить вторую, если цены не совпадают, т.е. ждать дополнительно 100 мс не нужно.
Будем считать, что все сделано правильно.

А вот OrderSendAsync () - хорошо бы сделать.

 

Анонс теперь - смена шапки.

 
b4127, меняется результат при использовании макроса.
#define MACROS input int i = 0;

MACROS // Input
// input int i = 0; // Input

void OnInit() {}

Выделенные строки - не одно и то же.


Макрос.


Без макроса.



Возможно ли вариант с макросом привести к восприятию комментария? Спасибо.

Строка для поиска: Uluchshenie 080.
 

Сортировка истории по символам работает не корректно( нет истории по некоторым символам, хотя если выбрать "Все символы" то  сделки, позиции, ордера присутствуют как положено во всей истории)Билд 4137 от 18.01.24 года.

  2 скриншота,   видно, что выбор  символа из списка-отсутствует, хотя история присутствует.

Файлы:
gm4ajxx2.jpg  136 kb
95s3x4y3.jpg  173 kb
 
Алексей #:

2 скриншота,   видно, что выбор  символа из списка-отсутствует, хотя история присутствует.

В меню "текущий символ" соответствует символу, на строке которого нажали ПКМ.

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