Ошибки, баги, вопросы - страница 3514
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Зачем нужен вызов CurvePlotAll? Вы не создали ни одной кривой для отрисовки
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?
Это особенность или ошибка?
Мой (род. 4260) советник ставит в отладчик стоп на продажу и первое всплывающее окно OnTradeTransdaction не имеет НЕТ запроса и НЕТ результата (оба имеют только нулевые значения), но транзакция уже претендует на размещение, но открыт ордер не выбирается?
my code (partially): / мой код (частично):
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'. / Я присваиваю структуры массиву, чтобы получить имена полей в качестве заголовка "безвозмездно". )
Запустите этот советник на одном из чартов, и путь он собирает все торговые транзакции в файл. Когда возникнут вопросы, сможете хронологически точно посмотреть, что происходило.
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?
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 (или больше?).
А если звонок от OTT теперь еще и утверждает нечто (#2 размещен), чего, очевидно, еще не произошло (#2 не выбирается), то какой толк от величайших разработок AI?????.
Простите, но я не вижу причин, почему сервер, который отправляет данные на OTT, не отправляет полные данные!!!
Транзакция в таблицы live/history orders/deals/positions приходят не одновременно с приходом в советник. Более того, OnTradeTransaction внутри Терминала (скрытый, не советника) может иметь задержки обработки пришедшей информации. А советник, получивший то же сообщение, отработать без задержек. Верно и в обратную сторону.
Поэтому невозможно гарантировать, что OnTradeTransaction придет в советник сразу после того, как эта транзакция закончила обрабатываться в Терминале.
Транзакция в таблицы 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, когда советник его заполнил(!)?
Как советник теперь должен найти свой ордер?
Как советник теперь должен найти свой ордер? 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;
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 вызова, которые должны были бы!
Вот журнал OTT-вызовов лимитного ордера на покупку, который становится лимитным ордером и закрывается TP.
Мне сложно представить человека, который будет читать дальше этого предложения.
Нужно менять форму подачи сообщений, иначе просто потеряете свое время.
Мне сложно представить человека, который будет читать дальше этого предложения.
Нужно менять форму подачи сообщений, иначе просто потеряете свое время.
Как еще я могу показать проблематичный способ, с помощью которого функция 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!