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

 
Aleksander Gladkov #:

Сегодня еще интереснее 12% просадка тоже критична и вызывает Stop out

На скрине написано что Стоп аут произошёл на 7% от всего времени тестирования, по Русски говоря, робот слил очень быстро. И второе, была открыта всего одна позиция по золоту за все время теста.

 
Доброго дня, уважаемые! Вопрос по копированию сигналов на mql5. Не получается копировать сигнал. Подписались на интересующий, подключили к счету. Но у поставщика сигнала нет суффиксов в парах, а у нас есть. Пока не нашел, как исправить ситуацию. Может быть кто нибудь подскажет?
 
Igor Subbotin #:
Доброго дня, уважаемые! Вопрос по копированию сигналов на mql5. Не получается копировать сигнал. Подписались на интересующий, подключили к счету. Но у поставщика сигнала нет суффиксов в парах, а у нас есть. Пока не нашел, как исправить ситуацию. Может быть кто нибудь подскажет?

Суффиксы тут не причем.
Если вы подписались и что-то не копируется, то причина будет написана в журнале Метатрейдера или в журнале MQL5 VPS если вы используете VPS.

В наиболее общем случае - это касается маппинга.
Детали - см пост и пост

 

Просьба починить прикрепленные файлы в блогах.

Например, если здесь поменять прикрепленный файл, то закачиваться будет все равно старая версия.

 

MT5. Раньше такой скрипт нормально работал, рисовал линию и текст. Сейчас пустое окно. Что-то изменилось или отвалилось?

#include <Graphics\Graphic.mqh>

void OnStart()
{
  CGraphic Graphic;
  Graphic.Create(ChartID(),"Test",0,20,20,320,320);
  uint Color=ColorToARGB(clrRed);
  Graphic.TextAdd(1,1,"Text",Color);
  Graphic.LineAdd(50,50,100,100,Color,STYLE_SOLID);
  Graphic.CurvePlotAll();
  Graphic.Update();
}
 
traveller00 #:

MT5. Раньше такой скрипт нормально работал, рисовал линию и текст. Сейчас пустое окно. Что-то изменилось или отвалилось?

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

 
Carl Schreiber #:

I place a sell stop in the debugger and the first pop-up of OnTradeTransdaction (OTT) 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?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

ФОРТС. Вопросы по исполнению

fxsaber, 2018.02.28 13:39

Всем, кто утверждает, что в OnTradeTransaction что-то не приходит, крайне рекомендую запустить этот советник

Если даже такого лога нет, то любые утверждения на тему OnTradeTransaction - говорильня, не более.

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

 
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?????.

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