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

 
Slava #:

Зачем нужен вызов CurvePlotAll? Вы не создали ни одной кривой для отрисовки

Издержки вырезки из своего кода, где были кривые (они рисуются норм), забыл убрать. Но сути не меняет, текста и линий не видно.
 
Is this a feature or a bug?
My (b. 4260) EA places a sell stop in the debugger and the first pop-up of OnTradeTransdaction has NO request and NO result (both have only zero values), but the transaction already claims to be placed, but an open order is not selectable?
  1. Can't MQ at least fill and submit request and result correctly?
  2. Why is everything, EVERYTHING zero in result and request, but the order is already placed?
  3. Why the hell is OnTradeTransaction such a mess? Who can use it seriously?

Это особенность или ошибка?
Мой (род. 4260) советник ставит в отладчик стоп на продажу и первое всплывающее окно OnTradeTransdaction не имеет НЕТ запроса и НЕТ результата (оба имеют только нулевые значения), но транзакция уже претендует на размещение, но открыт ордер не выбирается?

  1. Разве MQ не может хотя бы заполнить и отправить запрос и получить правильный результат?
  2. Почему всё, ВСЁ по результату и запросу ноль, а заказ уже оформлен?
  3. Какого черта в OnTradeTransaction такой беспорядок, кто может использовать его всерьез?


my code (partially): / мой код (частично):

...
void OnTradeTransaction(const MqlTradeTransaction& trans,
                        const MqlTradeRequest& rquest,
                        const MqlTradeResult& result)
   {
... 
    ulong    p  = fmax(trans.position,rquest.position),            // ticket number of a position
             o  = fmax3(trans.order,rquest.order,result.order),    // ticket number of an order
             d  = fmax(trans.deal,result.deal),                    // ticket number of a deal
             pB = fmax(trans.position_by,rquest.position_by),      // ticket number of a conjugated position
             m  = rquest.magic;                                    // magic numbers now and later
    bool   pSel = (p>0 ? PositionSelectByTicket(p) : false),
           oSel = (o>0 ? OrderSelect(p) : false),
          slept = false;
     ulong pMag = (pSel ? PositionGetInteger(POSITION_MAGIC) : 0),
           oMag = (oSel ? OrderGetInteger(ORDER_MAGIC) : 0);
...
    Print(
       "=====================================\n",FunLine+"nOTT:",iCallsOnTrTrans,"  nPos:",DeBgPos,"  nOrd:",DeBgOrd," at "+_t2Sec(TimeCurrent()),
       _newL,"p#",p,(pSel?"(o":"(x"),") o#",o,(oSel?"(o":"(x"),") d#",d," m>",m,"< pB:",pB,
       "  POS:",PositionsTotal()," tP:",totPos," arr:",ArrayRange(wrkPos,0)," lst:",ArraySize(oPoBU),"+",ArraySize(oPoSE),
       "  ORD:",OrdersTotal()   ," tO:",totOrd," arr:",ArrayRange(wrkOrd,0)," lst:",ArraySize(oOrBU),"+",ArraySize(oOrSE),
       _newL+"REQ "+_rq2a(rquest.action)+" "+_tr2o(rquest.type)+ // 4003
           "  RES ",_se2s(result.retcode),"  o#:",result.order," d#:",result.deal,
       _newL+"TRA "+_tr2s(trans.type)+" "+_rq2s(trans.order_type)+" "+_dl2s(trans.deal_type)+" "+_rq2x(trans.order_state)+"  ping:",TerminalInfoInteger(TERMINAL_PING_LAST),
       "\n=====================================\n");
       
   prtRequ(rquest,FunLine);
   prtResult(result,FunLine);
   prtTrans(trans,FunLine);
...

The result in the log of the debugger: результат в журнале отладчика:

2024.03.27 12:13:27.537    2022.02.03 12:00:00   sell stop 0.05 EURUSD at 1.12760 sl: 1.13300 tp: 1.12665 (1.12842 / 1.12842)

2024.03.27 12:13:27.539    2022.02.03 12:00:00   =====================================
2024.03.27 12:13:27.539    2022.02.03 12:00:00   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:1  nPos:0  nOrd:0 at 12:00:00
2024.03.27 12:13:27.539    2022.02.03 12:00:00      p#0(x) o#2(x) d#0 m>0< pB:0  POS:0 tP:0 arr:0 lst:0+0  ORD:1 tO:0 arr:0 lst:0+1
2024.03.27 12:13:27.539    2022.02.03 12:00:00      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
2024.03.27 12:13:27.539    2022.02.03 12:00:00      TRA T:ORDER_ADD[0]  X:SELL_STOP[5]  D:TYPE_BUY[0]  X:PLACED[1]   ping:0
2024.03.27 12:13:27.539    2022.02.03 12:00:00   =====================================
2024.03.27 12:13:27.539    2022.02.03 12:00:00  
2024.03.27 12:13:27.539    2022.02.03 12:00:00   ETE_Trade.mqh[1867] TrdRequest() rq[0] action:QUEST_ACTIONS::0[0]  cmmt:
2024.03.27 12:13:27.539    2022.02.03 12:00:00       [uID] [uMag] [uInf] [uClBy] [uParCls] [dOpn] [dCls] [dSL] [dTP] [dStLim] [dVol] [dPrf] [dUpd] [dLst] [€typ] [€clBy] [€state] [€tPeOrd]              [tUpd]              [tOpn]              [tCls]             [tDiff]              [tFrc]            [tPeOrd]
2024.03.27 12:13:27.539    2022.02.03 12:00:00   [0]     0      0      0       0         0 0.0000 0.0000 0.000 0.000  0.00000 0.0000 0.0000 0.0000 0.0000      0       0        0         0 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00

2024.03.27 12:13:27.539    2022.02.03 12:00:00   ETE_Trade.mqh[1868] Err[4003] ERR_INVALID_PARAMETER TrdResult rs[0] ask:0.0 bid:0.0 ret:€TRADE_RETCODE_NOT_SET cmmt:
2024.03.27 12:13:27.539    2022.02.03 12:00:00       [uID] [uMag] [uInf] [uClBy] [uParCls] [dOpn] [dCls] [dSL] [dTP] [dStLim] [dVol] [dPrf] [dUpd] [dLst] [€typ] [€clBy] [€state] [€tPeOrd]              [tUpd]              [tOpn]              [tCls]             [tDiff]              [tFrc]            [tPeOrd]
2024.03.27 12:13:27.539    2022.02.03 12:00:00   [0]     0      0      0       0         0 0.0000 0.0000 0.000 0.000  0.00000 0.0000 0.0000 0.0000 0.0000      0       0        0         0 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00


2024.03.27 12:13:27.539    2022.02.03 12:00:00   ETE_Trade.mqh[1869] TranAction(EURUSD) tr[0].Type: DEAL_TYPE_BUY tr.OrdState: ORDER_STATE_PLACED
2024.03.27 12:13:27.539    2022.02.03 12:00:00       [uID] [uMag] [uInf] [uClBy] [uParCls]  [dOpn] [dCls]   [dSL]   [dTP] [dStLim]  [dVol] [dPrf] [dUpd] [dLst] [€typ] [€clBy] [€state] [€tPeOrd]              [tUpd]              [tOpn]              [tCls]             [tDiff]              [tFrc]            [tPeOrd]
2024.03.27 12:13:27.539    2022.02.03 12:00:00   [0]     2      0      0       0         0 1.12760 0.0000 1.13300 1.12665  0.00000 0.05000 0.0000 0.0000 0.0000      5       0       18         0 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00 1970.01.01 00:00:00

(I assign the structures to an array in order to obtain the field names as a header 'at no cost'. / Я присваиваю структуры массиву, чтобы получить имена полей в качестве заголовка "безвозмездно". )

 
fxsaber #:

Запустите этот советник на одном из чартов, и путь он собирает все торговые транзакции в файл. Когда возникнут вопросы, сможете хронологически точно посмотреть, что происходило.

Excuse me, but I don't see any reason why the server that sends the data to OTT (OnTradeTransaction) doesn't send complete data!!!

It's about money for the traders, possibly a lot of money, and I'm supposed to start a puzzle game a la Memory, when the right card is revealed?
How does the message, order placed in trans, fit in with the fact that order #2 is not selectable in my example?

This makes OTT a game of chance, especially because sometimes only one call happens, but sometimes 4 (or more?).
How should this be used?

  1. Which call is the right one?
  2. Which is the last one - in order to then analyze the collected data?
  3. Both are unknown and undefined!

And if a call from OTT claims something (#2 placed) that obviously hasn't even happened yet (#2 not selectable), what good are the greatest developments of AI ?????

Простите, но я не вижу причин, почему сервер, который отправляет данные на OTT, не отправляет полные данные!!!

Речь идет о деньгах для торговцев, возможно, о больших деньгах, а я должен начать головоломку а-ля "память", когда будет раскрыта нужная карта?
Как сообщение, что заказ размещен в трансе, согласуется с тем, что заказ №2 в моем примере не выбирается?

Это превращает OTT в азартную игру, особенно потому, что иногда делается только один звонок, а иногда 4 (или больше?).

  1. Как это должно использоваться? Какой звонок правильный?
  2. Какой из них последний - чтобы затем проанализировать собранные данные?
  3. И то, и другое неизвестно и не определено!

А если звонок от OTT теперь еще и утверждает нечто (#2 размещен), чего, очевидно, еще не произошло (#2 не выбирается), то какой толк от величайших разработок AI?????.

 
Carl Schreiber #:

Простите, но я не вижу причин, почему сервер, который отправляет данные на OTT, не отправляет полные данные!!!

Транзакция в таблицы live/history orders/deals/positions приходят не одновременно с приходом в советник. Более того, OnTradeTransaction внутри Терминала (скрытый, не советника) может иметь задержки обработки пришедшей информации. А советник, получивший то же сообщение, отработать без задержек. Верно и в обратную сторону.


Поэтому невозможно гарантировать, что OnTradeTransaction придет в советник сразу после того, как эта транзакция закончила обрабатываться в Терминале.

 
fxsaber #:

Транзакция в таблицы live/history orders/deals/positions приходят не одновременно с приходом в советник. Более того, OnTradeTransaction внутри Терминала (скрытый, не советника) может иметь задержки обработки пришедшей информации. А советник, получивший то же сообщение, отработать без задержек. Верно и в обратную сторону.


Поэтому невозможно гарантировать, что OnTradeTransaction придет в советник сразу после того, как эта транзакция закончила обрабатываться в Терминале.

And if everything gets random and mixed up because of this, what sense does OnTradeTransaction (OTT) make?
I know this is a thread race problem, but parallel processing does not explain the missing information: Request{} = Result{} = {Zero} ??

How is the EA supposed to find its order now? The MagicNumber is missing in MqlTradeTransaction. Symbol is missing in MqlTradeResult. ...
Very often two of the three structures OTT's are not filled in (=all zero).
TRhe MQ-rule of 1 second? For many EAs? When does the EA know that everything has arrived to go on if OTT is called again and again due to the other EAs?
Tell me a valid, programmable rule! I don't see one, and that in a financial software for professional use. It's a runaway.
Would it be so difficult(?) to at least(!) always(!) send MqlTradeRequest as the EA has filled it out(!)?

И если из-за этого все перемешивается, то какой смысл имеет OnTradeTransaction (OTT)?
Я знаю, что это проблема гонки потоков, но параллельная обработка не объясняет отсутствие информации: Request{} = Result{} = {Zero} ?

Как советник теперь должен найти свой ордер? MagicNumber отсутствует в MqlTradeTransaction. Символ отсутствует в MqlTradeResult. ...
Очень часто две из трех структур OTT не заполнены (=все нули).
TRhe MQ-правило 1 секунды? Для многих советников? Когда советник понимает, что все готово к продолжению работы, если OTT вызывается снова и снова из-за других советников?
Назовите мне действующее, программируемое правило! Я не вижу ни одного, и это в финансовом программном обеспечении для профессионального использования. Это бегство.
Неужели так сложно(?) хотя бы(!) всегда(!) отправлять MqlTradeRequest, когда советник его заполнил(!)?

 
Carl Schreiber #:

Как советник теперь должен найти свой ордер?

https://www.mql5.com/ru/forum/463563
Асинхронная обработка отсылки ордеров. - Вводите флаги. Проверьте на завершено нет
Асинхронная обработка отсылки ордеров. - Вводите флаги. Проверьте на завершено нет
  • 2024.03.05
  • Aleksandr Dziuba
  • www.mql5.com
Как проверяете к примеру что ордер на модификацию в работ. то можно заранее выставлять отложку далеко от текущей цены через OrderSend. Затем в OntradeTransaction проверял бы что транзакция закончилась. Некий bool - как признак что операция вообще принята
 
Carl Schreiber #:

Как советник теперь должен найти свой ордер? MagicNumber отсутствует в MqlTradeTransaction. Символ отсутствует в MqlTradeResult. ...
Очень часто две из трех структур OTT не заполнены (=все нули).

Неужели так сложно(?) хотя бы(!) всегда(!) отправлять MqlTradeRequest, когда советник его заполнил(!)?

Согласен. Заполнение  MqlTradeTransaction весьма запутанно(не продумано).

MqlTradeTransaction  работает.

Для того, чтоб получить в этой функции нужные данные, приходится попотеть  :)

 

Вот журнал OTT-вызовов лимитного ордера на покупку, который становится лимитным ордером и закрывается TP.

В 17:00 OTT с транзакцией X:PLACED[1], а затем X:STARTED[0]

В 19:57 срабатывает стоп => ТОЛЬКО ОДИН вызов ОТТ: X:PLACED[1]

В 12:20 срабатывает лимит (отложенный ордер становится открытой позицией OTT вызывается 3 раза: X:STARTED[0], X:FILLED[4], X:FILLED[4]

В 15:42 срабатывает ТП => 3 вызова ОТТ: X:STARTED[0], X:FILLED[4], X:FILLED[4]

Как ОТТ может заранее знать, сколько раз он будет вызываться дополнительно после первого звонка??

Это с 19:57 единственный вызов сработавшего отложенного ордера:
p#0(x) означает pos.ID=0 и «эту» позицию нельзя выбрать (x), => ОК, правильно
o#2(x) означает order.ID=2 и этот порядок можно выбрать (x) => ??????
должен быть(!!) либо открытый стоп-лимитный ордер, либо лимитный ордер!!

Вот мой журнал;

Here is the log of OTT calls of a buy stop limit order that becomes a limit order and is closed by TP.

At 17:00 OTT with trans X:PLACED[1] and then X:STARTED[0]

At 19:57 the stop is triggered => ONLY ONE call of OTT: X:PLACED[1]

At 12:20 the limit is triggered (pend. order becomes an open position OTT is called 3 times: X:STARTED[0], X:FILLED[4], X:FILLED[4]

At 15:42 TP is triggered => 3 calls of OTT: X:STARTED[0], X:FILLED[4], X:FILLED[4]

How can OTT in advance know how many times it will be called additionally after the first call ??

This from 19:57 the only call of the triggered pending order:
  p#0(x) means pos.ID=0 and "this" position is not selectable (x), => OK, correct   
  o#2(x) means order.ID=2 and this order is selectable (x)  => ??????
              there must be(!!) either an open stop limit order or a limit order !!

  m>0< means no mag number available

Here my log;

2024.03.27 18:15:50.703 EURUSD,Daily: history begins from 2021.01.04 00:00
2024.03.27 18:15:50.769 EURUSD : real ticks begin from 2011.12.19 00:00:00

02 17:00:00   buy stop limit 0.05 EURUSD at 1.13122 (1.12800) sl: 1.12586 tp: 1.13300 (1.13048 / 1.13048)

02 17:00:00   =====================================
02 17:00:00   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:1  nPos:0  nOrd:0 at 17:00:00
02 17:00:00      p#0(x) o#2(x) d#0 m>0< pB:0  POS:0 tP:0 arr:0 lst:0+0  ORD:1 tO:0 arr:0 lst:1+0
02 17:00:00      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
02 17:00:00      TRA T:ORDER_ADD[0]  X:BUY_STOP_LIMIT[6]  D:TYPE_BUY[0]  X:PLACED[1]   ping:0
02 17:00:00   =====================================

02 17:00:00   =====================================
02 17:00:00   ETE_Trade.mqh[1858] nOTT:2  nPos:0  nOrd:0 at 17:00:00
02 17:00:00      p#0(x) o#2(x) d#0 m>1006< pB:0  POS:0 tP:0 arr:0 lst:0+0  ORD:1 tO:1 arr:1 lst:1+0
02 17:00:00      REQ A:PENDING[5]  O:BUY_STOP_LIMIT[6]   RES S:DONE[10009]   o#:2 d#:0
02 17:00:00      TRA T:REQUEST[10]  X:BUY[0]  D:TYPE_BUY[0]  X:STARTED[0]   ping:0
02 17:00:00   =====================================
02 17:00:00   

02 19:57:27   order [#2 buy stop limit 0.05 EURUSD at 1.13122 (1.12800)] triggered
02 19:57:27   =====================================
02 19:57:27   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:3  nPos:0  nOrd:0 at 19:57:27
02 19:57:27      p#0(x) o#2(x) d#0 m>0< pB:0  POS:0 tP:0 arr:0 lst:0+0  ORD:1 tO:1 arr:1 lst:0+0
02 19:57:27      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
02 19:57:27      TRA T:ORDER_UPDATE[1]  X:BUY_LIMIT[2]  D:TYPE_BUY[0]  X:PLACED[1]   ping:0
02 19:57:27   =====================================

03 12:20:31   order [#2 buy limit 0.05 EURUSD at 1.12800] triggered
03 12:20:31   deal #2 buy 0.05 EURUSD at 1.12799 done (based on order #2)
03 12:20:31   deal performed [#2 buy 0.05 EURUSD at 1.12799]
03 12:20:31   order performed buy 0.05 at 1.12799 [#2 buy limit 0.05 EURUSD at 1.12800]

03 12:20:31   =====================================
03 12:20:31   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:4  nPos:0  nOrd:0 at 12:20:31
03 12:20:31      p#2(o) o#2(x) d#2 m>1006< pB:0  POS:1 tP:0 arr:0 lst:0+0  ORD:0 tO:1 arr:1 lst:0+0
03 12:20:31      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
03 12:20:31      TRA T:DEAL_ADD[6]  X:BUY[0]  D:TYPE_BUY[0]  X:STARTED[0]   ping:0
03 12:20:31   =====================================
03 12:20:31   

03 12:20:32   
03 12:20:32   =====================================
03 12:20:32   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:5  nPos:0  nOrd:0 at 12:20:32
03 12:20:32      p#2(o) o#2(x) d#0 m>1006< pB:0  POS:1 tP:1 arr:1 lst:0+0  ORD:0 tO:0 arr:1 lst:0+0
03 12:20:32      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
03 12:20:32      TRA T:ORDER_DELETE[2]  X:BUY_LIMIT[2]  D:TYPE_BUY[0]  X:FILLED[4]   ping:0
03 12:20:32   =====================================
03 12:20:32   

03 12:20:32   =====================================
03 12:20:32   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:6  nPos:0  nOrd:0 at 12:20:32
03 12:20:32      p#2(o) o#2(x) d#0 m>1006< pB:0  POS:1 tP:1 arr:1 lst:0+0  ORD:0 tO:0 arr:1 lst:0+0
03 12:20:32      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
03 12:20:32      TRA T:HISTORY_ADD[3]  X:BUY_LIMIT[2]  D:TYPE_BUY[0]  X:FILLED[4]   ping:0
03 12:20:32   =====================================

03 15:42:43   take profit triggered #2 buy 0.05 EURUSD 1.12799 sl: 1.12586 tp: 1.13300 [#3 sell 0.05 EURUSD at 1.13300]
03 15:42:43   deal #3 sell 0.05 EURUSD at 1.13310 done (based on order #3)
03 15:42:43   deal performed [#3 sell 0.05 EURUSD at 1.13310]
03 15:42:43   order performed sell 0.05 at 1.13310 [#3 sell 0.05 EURUSD at 1.13300]

03 15:42:43   =====================================
03 15:42:43   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:7  nPos:0  nOrd:0 at 15:42:43
03 15:42:43      p#2(x) o#3(x) d#3 m>0< pB:0  POS:0 tP:1 arr:1 lst:0+0  ORD:0 tO:0 arr:1 lst:0+0
03 15:42:43      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
03 15:42:43      TRA T:DEAL_ADD[6]  X:BUY[0]  D:TYPE_SELL[1]  X:STARTED[0]   ping:0
03 15:42:43   =====================================
03 15:42:43   

03 15:42:43   =====================================
03 15:42:43   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:8  nPos:0  nOrd:0 at 15:42:43
03 15:42:43      p#2(x) o#3(x) d#0 m>0< pB:0  POS:0 tP:0 arr:1 lst:0+0  ORD:0 tO:0 arr:2 lst:0+0
03 15:42:43      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
03 15:42:43      TRA T:ORDER_DELETE[2]  X:SELL[1]  D:TYPE_BUY[0]  X:FILLED[4]   ping:0
03 15:42:43   =====================================
03 15:42:43   

03 15:42:43   =====================================
03 15:42:43   ETE_Trade.mqh[1858] Err[4003] ERR_INVALID_PARAMETER nOTT:9  nPos:0  nOrd:0 at 15:42:43
03 15:42:43      p#2(x) o#3(x) d#0 m>0< pB:0  POS:0 tP:0 arr:1 lst:0+0  ORD:0 tO:0 arr:2 lst:0+0
03 15:42:43      REQ A:QUEST_ACTIONS::0[0]  O:BUY[0]   RES S:NOT_SET[0]   o#:0 d#:0
03 15:42:43      TRA T:HISTORY_ADD[3]  X:SELL[1]  D:TYPE_BUY[0]  X:FILLED[4]   ping:0
03 15:42:43   =====================================
03 15:42:43   
04 14:00:00   
04 14:00:00   *********** ETE-EA ### END OF EA ### Kill-Order given at/after: 2022.02.04 14:30:00    ************************

How can OTT be used to get the information about what has happened to which orders and/or positions of an EA, if other EAs with other symbols even the same symbol are trading as well ??

BTW: Here: "nOTT:9" I counted the numbers of calls of OTT:  9 times, for 1) sending a buy stop limit, being noticed for the 2 triggers 2+3) and the exit at TP 4) which makes only 4 calls that would need!

Как можно использовать OTT для получения информации о том, что произошло с ордерами и/или позициями советника, если другие советники с другими символами, даже с тем же самым символом, также торгуют?

BTW: Здесь: "nOTT:9" Я подсчитал количество вызовов OTT: 9 раз, для 1) отправки лимита buy stop, будучи замеченным для 2 триггеров 2+3) и выхода на TP 4), что составляет всего 4 вызова, которые должны были бы!

 
Carl Schreiber #:

Вот журнал OTT-вызовов лимитного ордера на покупку, который становится лимитным ордером и закрывается TP.

Мне сложно представить человека, который будет читать дальше этого предложения.

Нужно менять форму подачи сообщений, иначе просто потеряете свое время.

 
fxsaber #:

Мне сложно представить человека, который будет читать дальше этого предложения.

Нужно менять форму подачи сообщений, иначе просто потеряете свое время.

Как еще я могу показать проблематичный способ, с помощью которого функция OnTradeTransaction предстает перед нами, трейдерами? Слишком много звонков с отсутствующей информацией!

How else can I show the problematic way in which the OnTradeTransaction function presents itself to us traders? Too many calls with missing information!