요새. 실행 질문 - 페이지 100 1...93949596979899100101102103104105106107...156 새 코멘트 prostotrader 2018.02.28 13:32 #991 캠 코드 //+------------------------------------------------------------------+ //| DelayTest.mq5 | //| Copyright 2017 prostotrader | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017 prostotrader" #property link "https://www.mql5.com" #property version "1.00" // #define max_orders 100 // struct MY_ORDERS { uint req_id[max_orders]; ulong ticket[max_orders]; ulong magic[max_orders]; }; MY_ORDERS my_orders; ulong st_magic= 9988776655 ; //+------------------------------------------------------------------+ //| Expert remove order function | //+------------------------------------------------------------------+ void RemoveOrder( const ulong a_ticket, const int idx) { my_orders.req_id[idx]= 0 ; MqlTradeRequest request = { 0 }; MqlTradeResult result = { 0 }; request.action= TRADE_ACTION_REMOVE ; request.order = a_ticket; if ( OrderSendAsync (request,result)) { my_orders.req_id[idx]=result.request_id; } else { Print ( __FUNCTION__ , ": Ордер не отправлен! Билет = " ,a_ticket, " Причина: " ,result.retcode); } } //+------------------------------------------------------------------+ //| Expert place order function | //+------------------------------------------------------------------+ void PlaceOrder( double price, int idx, ulong magic) { MqlTradeRequest request = { 0 }; MqlTradeResult result = { 0 }; my_orders.ticket[idx] = 0 ; my_orders.req_id[idx] = 0 ; my_orders.magic[idx]=magic; request.action = TRADE_ACTION_PENDING ; request.magic = magic; request.symbol = Symbol (); request.volume = 1 ; request.price = price; request.type= ORDER_TYPE_SELL_LIMIT ; request.comment= "Отложенный ордер..." ; request.type_filling= ORDER_FILLING_RETURN ; request.type_time= ORDER_TIME_DAY ; if ( OrderSendAsync (request,result)) { my_orders.req_id[idx]=result.request_id; magic++; } else { Print ( __FUNCTION__ , ": Ордер не отправлен! Порядковый номер: " , idx, " Причина: " ,result.retcode); } } //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { double step= SymbolInfoDouble ( Symbol (), SYMBOL_TRADE_TICK_SIZE ); double max_price= SymbolInfoDouble ( Symbol (), SYMBOL_SESSION_PRICE_LIMIT_MAX ); for ( int i= 0 ; i<max_orders;i++) { PlaceOrder(max_price,i,st_magic); max_price-=step; } return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { for ( int i= 0 ; i<max_orders;i++) { if (my_orders.ticket[i]> 0 ) { RemoveOrder(my_orders.ticket[i],i); } } } //+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction ( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { // Print("Trans type: ", EnumToString(trans.type), "; Order satte: ", EnumToString(trans.order_state)); switch (trans.type) { case TRADE_TRANSACTION_REQUEST : for ( int i= 0 ; i<max_orders;i++) { if ((my_orders.req_id[i]==result.request_id) && (my_orders.req_id[i]> 0 )) { my_orders.ticket[i]=result.order; break ; } } break ; case TRADE_TRANSACTION_HISTORY_ADD : for ( int i= 0 ; i<max_orders;i++) { if ((my_orders.ticket[i]==trans.order) && (my_orders.ticket[i]> 0 )) { my_orders.ticket[i]= 0 ; Print ( __FUNCTION__ , ": Ордер удалён. Билет = " ,trans.order); break ; } } break ; case TRADE_TRANSACTION_ORDER_UPDATE : switch (trans.order_state) { case ORDER_STATE_PLACED : for ( int i= 0 ; i<max_orders;i++) { if ((my_orders.ticket[i]==trans.order) && (my_orders.ticket[i]> 0 )) { RemoveOrder(my_orders.ticket[i],i); Print ( __FUNCTION__ , ": Ордер установлен. Билет = " ,trans.order); break ; } } break ; } break ; } } //+------------------------------------------------------------------+ fxsaber 2018.02.28 13:39 #992 prostotrader : 나는 하루에 4000건의 거래를 하고 있으며, 각 거래는 OnTradeTransaction을 5-6번 "당긴다" 누가 이 "풋웨어"를 이해할까요? :) 결국, 그들은 로그와 터미널, 그리고 MT5 서버의 로그가 필요합니다. 로그에 기가바이트가 걸리면 이해하겠습니다. 서버 로그는 필요하지 않습니다. OnTradeTransaction 에 문제가 있다고 주장하는 사람은 이 Expert Advisor를 실행하는 것이 좋습니다. // Советник записывает подробно каждый OnTradeTransaction в файл. // Время последнего тика символа long GetSymbolTime( const string Symb ) { MqlTick Tick; return ( SymbolInfoTick (Symb, Tick) ? Tick.time_msc : 0 ); } // Время последнего тика Обзора рынка long GetMarketWatchTime( void ) { long Res = 0 ; for ( int i = SymbolsTotal ( true ) - 1 ; i >= 0 ; i--) { const long TmpTime = GetSymbolTime( SymbolName (i, true )); if (TmpTime > Res) Res = TmpTime; } return (Res); } // Текущее время на торговом сервере без учета пинга long GetCurrenTime( void ) { static ulong StartTime = GetMicrosecondCount (); static long PrevTime = 0 ; const long TmpTime = GetMarketWatchTime(); if (TmpTime > PrevTime) { PrevTime = TmpTime; StartTime = GetMicrosecondCount (); } return (PrevTime + ( long )(( GetMicrosecondCount () - StartTime) / 1000 )); } string TimeToString ( const long Value ) { return (( string )( datetime )(Value / 1000 ) + "." + ( string ) IntegerToString (Value % 1000 , 3 , '0' )); } class FILE { public : const string Name; const int handle; #define _H(A) if ( this .handle != INVALID_HANDLE ) A FILE( const string FileName ) : Name(FileName), handle( FileOpen ( this .Name, FILE_READ | FILE_WRITE | FILE_IS_TEXT )) { _H( FileSeek ( this .handle, 0 , SEEK_END )); } ~FILE() { _H( FileClose ( this .handle)); } uint Write( const string Str ) const { return ( FileWrite ( this .handle, Str)); } }; void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result ) { static FILE File( __FUNCTION__ + ".txt" ); File.Write( TimeToString (GetCurrenTime()) + "\n" + ToString(Trans) + ToString(Request) + ToString(Result)); } #define TOSTRING(A) #A + " = " + ( string )(A) + "\n" #define TOSTRING2(A) #A + " = " + EnumToString (A) + " (" + ( string )(A) + ")\n" string ToString( const MqlTradeTransaction &Trans ) { return (TOSTRING(Trans.deal) + TOSTRING(Trans.order) + TOSTRING(Trans.symbol) + TOSTRING2(Trans.type) + TOSTRING2(Trans.order_type) + TOSTRING2(Trans.order_state) + TOSTRING2(Trans.deal_type) + TOSTRING2(Trans.time_type) + TOSTRING(Trans.time_expiration) + TOSTRING(Trans.price) + TOSTRING(Trans.price_trigger) + TOSTRING(Trans.price_sl) + TOSTRING(Trans.price_tp) + TOSTRING(Trans.volume) + TOSTRING(Trans.position) + TOSTRING(Trans.position_by)); } string ToString( const MqlTradeRequest &Request ) { return (TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) + TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) + TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) + TOSTRING(Request.tp) + TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) + TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) + TOSTRING(Request.position) + TOSTRING(Request.position_by)); } string ToString( const MqlTradeResult &Result ) { return (TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) + TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) + TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) + TOSTRING(Result.retcode_external)); } 파일의 결과는 다음과 같습니다. 2018.02 . 28 14 : 28 : 27.907 Trans.deal = 0 Trans.order = 213465763 Trans.symbol = EURUSD Trans.type = TRADE_TRANSACTION_ORDER_ADD ( 0 ) Trans.order_type = ORDER_TYPE_SELL ( 1 ) Trans.order_state = ORDER_STATE_STARTED ( 0 ) Trans.deal_type = DEAL_TYPE_BUY ( 0 ) Trans.time_type = ORDER_TIME_GTC ( 0 ) Trans.time_expiration = 1970.01 . 01 00 : 00 : 00 Trans.price = 1.22178 Trans.price_trigger = 0.0 Trans.price_sl = 0.0 Trans.price_tp = 0.0 Trans.volume = 1.0 Trans.position = 0 Trans.position_by = 0 Request.action = ENUM_TRADE_REQUEST_ACTIONS :: 0 ( 0 ) Request.magic = 0 Request.order = 0 Request.symbol = Request.volume = 0.0 Request.price = 0.0 Request.stoplimit = 0.0 Request.sl = 0.0 Request.tp = 0.0 Request.deviation = 0 Request.type = ORDER_TYPE_BUY ( 0 ) Request.type_filling = ORDER_FILLING_FOK ( 0 ) Request.type_time = ORDER_TIME_GTC ( 0 ) Request.expiration = 1970.01 . 01 00 : 00 : 00 Request.comment = Request.position = 0 Request.position_by = 0 Result.retcode = 0 Result.deal = 0 Result.order = 0 Result.volume = 0.0 Result.price = 0.0 Result.bid = 0.0 Result.ask = 0.0 Result.comment = Result.request_id = 0 Result.retcode_external = 0 2018.02 . 28 14 : 28 : 27.913 Trans.deal = 196986814 Trans.order = 213465763 Trans.symbol = EURUSD Trans.type = TRADE_TRANSACTION_DEAL_ADD ( 6 ) .... 그러한 로그가 없더라도 OnTradeTransaction 주제에 대한 모든 진술은 더 이상 아무것도 아닙니다. ZY 시간은 이 경우 이상적으로 고려되지 않았지만 다른 컨텍스트에서 분리된 결정을 복잡하게 만들기 시작하지 않았습니다. 파일: OnTradeTransaction.mq5 4 kb prostotrader 2018.02.28 20:24 #993 fxsaber : 로그에 기가바이트가 걸리면 이해하겠습니다. 서버 로그는 필요하지 않습니다. OnTradeTransaction 에 문제가 있다고 주장하는 사람은 이 Expert Advisor를 실행하는 것이 좋습니다. 파일의 결과는 다음과 같습니다. 그러한 로그가 없더라도 OnTradeTransaction 주제에 대한 모든 진술은 더 이상 아무것도 아닙니다. ZY 시간은 이 경우 이상적으로 고려되지 않았지만 다른 컨텍스트에서 분리된 결정을 복잡하게 만들기 시작하지 않았습니다. 울타리에 왜 그런 "정원"이 있습니까? 충분할 것입니다. void OnTradeTransaction ( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { Print ( "Trans type: " , EnumToString (trans.type), "; Order satte: " , EnumToString (trans.order_state), " Order ticket: " , trans.order); } fxsaber 2018.02.28 20:44 #994 prostotrader : 울타리에 왜 그런 "정원"이 있습니까? 충분할 것입니다. 부족한. Aleksey Vyazmikin 2018.03.14 08:05 #995 손으로 열림, 브레이크 확인 2018.03.14 10:01:29.516 Trades '289': exchange sell 10.00 Si-3.18 at market 2018.03.14 10:01:40.680 Trades '289': accepted exchange sell 10.00 Si-3.18 at market 2018.03.14 10:01:40.692 Trades '289': exchange sell 10.00 Si-3.18 at market placed for execution 2018.03.14 10:01:40.781 Trades '289': order #85223736 sell 10.00 / 10.00 Si-3.18 at market done in 11265.537 ms 2018.03.14 10:01:40.782 Trades '289': deal #47039430 sell 3.00 Si-3.18 at 57027 done (based on order #85223736) 2018.03.14 10:01:40.786 Trades '289': deal #47039431 sell 2.00 Si-3.18 at 57026 done (based on order #85223736) 2018.03.14 10:01:40.787 Trades '289': deal #47039432 sell 3.00 Si-3.18 at 57026 done (based on order #85223736) 2018.03.14 10:01:40.790 Trades '289': deal #47039433 sell 1.00 Si-3.18 at 57026 done (based on order #85223736) 2018.03.14 10:01:40.795 Trades '289': deal #47039434 sell 1.00 Si-3.18 at 57025 done (based on order #85223736) 그리고 가장 중요한 것은 누가 이 불명예를 대가를 치르게 될 것인지... prostotrader 2018.03.14 15:10 #996 Aleksey Vyazmikin : 손으로 열림, 브레이크 확인 그리고 가장 중요한 것은 누가 이 불명예를 대가를 치르게 될 것인지... 이 로그를 첨부하여 브로커에 작성하십시오. 개발자에게 비용을 지불하지 않아 문의가 어려우며, 라이선스 계약에 (모든 소프트웨어와 마찬가지로) 누구도 책임을 지지 않는다는 내용으로 작성되었습니다. Aleksey Vyazmikin 2018.03.14 15:15 #997 prostotrader : 이 로그를 첨부하여 브로커에 작성하십시오. 개발자에게 비용을 지불하지 않아 문의가 어려우며, 라이선스 계약에 (모든 소프트웨어와 마찬가지로) 누구도 책임을 지지 않는다는 내용으로 작성되었습니다. 이것은 수사학적 질문이었다. prostotrader 2018.03.14 15:16 #998 Aleksey Vyazmikin : 이것은 수사학적 질문이었다. :) 하지만 어쨌든 브로커에게 prostotrader 2018.03.19 08:18 #999 Expert Advisor의 로깅을 약간 변경했는데 다음과 같습니다. CheckOrders() 함수는 1-1.5초 이내에 서버로부터 응답이 없으면 트리거됩니다. 주문 티켓이 없으면 메시지가 표시됩니다. CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 티켓이 수신되면 ProcessOrders() 함수가 호출되어 주문에 무슨 일이 일어났는지 확인합니다. 결과는 다음과 같습니다. 2018.03 . 19 10 : 00 : 02.248 Trades 'xxxxx' : buy limit 2.00 TRNF- 9.18 at 168831 2018.03 . 19 10 : 00 : 02.254 Trades 'xxxxx' : accepted buy limit 2.00 TRNF- 9.18 at 168831 2018.03 . 19 10 : 00 : 02.257 Trades 'xxxxx' : buy limit 2.00 TRNF- 9.18 at 168831 placed for execution in 8.978 ms 2018.03 . 19 10 : 00 : 06.380 Trades 'xxxxx' : modify order # 85508034 buy limit 2.00 TRNF- 9.18 at 168831 sl: 0 tp: 0 -> 170108 , sl: 0 tp: 0 2018.03 . 19 10 : 00 : 08.318 Trades 'xxxxx' : accepted modify order # 85508034 buy limit 2.00 TRNF- 9.18 at 168831 sl: 0 tp: 0 -> 170108 , sl: 0 tp: 0 2018.03 . 19 10 : 00 : 08.335 Trades 'xxxxx' : modify order # 85508034 buy limit 2.00 TRNF- 9.18 at 168831 sl: 0 tp: 0 -> 170108 , sl: 0 tp: 0 placed for execution in 1955.038 ms 2018.03 . 19 10 : 00 : 08.364 Trades 'xxxxx' : modify order # 85508034 buy limit 2.00 TRNF- 9.18 at 170108 sl: 0 tp: 0 -> 170110 , sl: 0 tp: 0 2018.03 . 19 10 : 00 : 08.364 Trades 'xxxxx' : modify # 85508034 buy limit 2.00 TRNF- 9.18 -> price: 170110 , sl: 0 , tp: 0 ) done in 0.390 ms 2018.03 . 19 10 : 01 : 00.575 Trades 'xxxxx' : buy limit 2.00 TRNF- 9.18 at 170112 2018.03 . 19 10 : 01 : 01.581 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 02.591 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 03.606 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 04.627 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 05.633 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 06.647 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 07.662 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 08.677 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 09.689 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 10.708 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 11.718 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 12.732 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 13.764 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 15.273 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 16.287 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 17.301 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 18.319 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 19.332 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 20.343 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 21.357 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 22.371 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 23.388 trader (TRNF- 6.18 ,M1) CheckOrders: Не получен билет. Задержка ответа сервера. Ожидание продолжается... 2018.03 . 19 10 : 01 : 24.263 Trades 'xxxxx' : accepted buy limit 2.00 TRNF- 9.18 at 170112 2018.03 . 19 10 : 01 : 24.399 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 25.413 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 25.685 Trades 'xxxxx' : buy limit 2.00 TRNF- 9.18 at 170112 placed for execution in 25114.794 ms 2018.03 . 19 10 : 01 : 26.427 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 27.444 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 28.456 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 29.475 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 30.484 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 31.501 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 32.515 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 2018.03 . 19 10 : 01 : 33.540 trader (TRNF- 6.18 ,M1) ProcessOrders: Состояние Buy ордера не определено. Билет = 85508330 지연은 브로커 때문이 아닐 가능성이 큽니다. prostotrader 2018.03.22 14:00 #1000 주문을 비동기식으로 보낼 때 다음이 제공됩니다. 터미널이 주문을 보냈습니다 (1) 2018.03.19 10:01:00.575 Trades 'xxxxx': buy limit 2.00 TRNF-9.18 at 170112 서버가 주문을 확인하고 티켓을 할당했습니다 (2) 2018.03.19 10:01:24.263 Trades 'xxxxx': accepted buy limit 2.00 TRNF-9.18 at 170112 서버가 거래소에 주문을 보냈습니다 (3) 2018.03.19 10:01:25.685 Trades 'xxxxx': buy limit 2.00 TRNF-9.18 at 170112 placed for execution in 25114.794 ms 거래소에서 주문을 수락 했다는 서버 응답은 기록되지 않습니다. 하지만 다음 항목으로 판단하면 거래소에서 주문한다는 서버의 응답이 왔다 (4) 2018.03.19 10:01:39.952 Trades 'xxxxx': modify order #85508330 buy limit 2.00 TRNF-9.18 at 170112 sl: 0 tp: 0 -> 170114, sl: 0 tp: 0 티켓이 오더에 배정되어 거래소로 보내진 후 1.4 SEC가 지났다는 사실과 모든 조치로 판단 서버 자체에서 발생한 지연은 서버 자체에서 발생한다고 가정합니다. log(2) - log(3). 글쎄, 이것은 매우 "즐거워" GP 0 19 : 17 : 29.663 Trades 'xxxxx' : cancel # 85167146 buy limit 3.00 UCHF- 9.18 at market done in 132608.665 ms HR 0 19 : 17 : 29.678 Trades 'xxxxx' : cancel # 85167164 buy limit 3.00 AUDU- 9.18 at market done in 132623.761 ms HK 0 19 : 17 : 29.698 Trades 'xxxxx' : cancel # 85167165 sell limit 3.00 AUDU- 9.18 at market done in 132642.978 ms OE 0 19 : 17 : 29.721 Trades 'xxxxx' : cancel # 85167070 buy limit 1.00 GOLD- 12.18 at market done in 132653.264 ms NG 0 19 : 17 : 29.741 Trades 'xxxxx' : cancel # 85167172 sell limit 1.00 ALRS- 9.18 at market done in 132686.437 ms MR 0 19 : 17 : 29.755 Trades 'xxxxx' : cancel # 85167177 sell limit 2.00 NLMK- 9.18 at market done in 132700.889 ms HP 0 19 : 17 : 29.783 Trades 'xxxxx' : cancel # 85167183 buy limit 1.00 PLT- 12.18 at market done in 132727.785 ms CO 0 19 : 17 : 29.801 Trades 'xxxxx' : cancel # 85167254 sell limit 1.00 GMKR- 9.18 at market done in 132746.755 ms FN 0 19 : 17 : 29.819 Trades 'xxxxx' : cancel # 85167689 sell limit 2.00 SBRF- 12.18 at market done in 132722.855 ms QJ 0 19 : 17 : 29.839 Trades 'xxxxx' : cancel # 85167774 sell limit 3.00 UCHF- 9.18 at market done in 132783.830 ms GH 0 19 : 17 : 29.855 Trades 'xxxxx' : cancel # 85167936 sell limit 2.00 MOEX- 9.18 at market done in 132800.500 ms EH 0 19 : 17 : 29.870 Trades 'xxxxx' : cancel # 85167942 buy limit 1.00 SNGR- 9.18 at market done in 132815.113 ms IR 0 19 : 17 : 29.889 Trades 'xxxxx' : cancel # 85167943 sell limit 2.00 SNGR- 9.18 at market done in 132834.156 ms KN 0 19 : 17 : 29.916 Trades 'xxxxx' : cancel # 85168487 buy limit 2.00 CY- 9.18 at market done in 132860.907 ms JP 0 19 : 17 : 29.935 Trades 'xxxxx' : cancel # 85168192 buy limit 3.00 UCAD- 9.18 at market done in 132944.703 ms KL 0 19 : 17 : 29.950 Trades 'xxxxx' : cancel # 85170324 sell limit 1.00 VTBR- 9.18 at market done in 132895.471 ms FJ 0 19 : 17 : 29.965 Trades 'xxxxx' : cancel # 85170435 sell limit 3.00 UJPY- 9.18 at market done in 132910.178 ms RE 0 19 : 17 : 29.979 Trades 'xxxxx' : cancel # 85167688 buy limit 1.00 SBRF- 12.18 at market done in 132883.188 ms KD 0 19 : 17 : 29.999 Trades 'xxxxx' : cancel # 85170988 sell limit 1.00 CHMF- 9.18 at market done in 132943.997 ms PN 0 19 : 17 : 30.021 Trades 'xxxxx' : cancel # 85171201 buy limit 1.00 ED- 12.18 at market done in 133030.275 ms DN 0 19 : 17 : 30.044 Trades 'xxxxx' : cancel # 85171303 buy limit 1.00 UJPY- 9.18 at market done in 132989.636 ms 1...93949596979899100101102103104105106107...156 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
캠 코드
나는 하루에 4000건의 거래를 하고 있으며, 각 거래는 OnTradeTransaction을 5-6번 "당긴다"
누가 이 "풋웨어"를 이해할까요? :) 결국, 그들은 로그와 터미널, 그리고 MT5 서버의 로그가 필요합니다.
로그에 기가바이트가 걸리면 이해하겠습니다. 서버 로그는 필요하지 않습니다.
OnTradeTransaction 에 문제가 있다고 주장하는 사람은 이 Expert Advisor를 실행하는 것이 좋습니다.
파일의 결과는 다음과 같습니다.
그러한 로그가 없더라도 OnTradeTransaction 주제에 대한 모든 진술은 더 이상 아무것도 아닙니다.
ZY 시간은 이 경우 이상적으로 고려되지 않았지만 다른 컨텍스트에서 분리된 결정을 복잡하게 만들기 시작하지 않았습니다.
로그에 기가바이트가 걸리면 이해하겠습니다. 서버 로그는 필요하지 않습니다.
OnTradeTransaction 에 문제가 있다고 주장하는 사람은 이 Expert Advisor를 실행하는 것이 좋습니다.
파일의 결과는 다음과 같습니다.
그러한 로그가 없더라도 OnTradeTransaction 주제에 대한 모든 진술은 더 이상 아무것도 아닙니다.
ZY 시간은 이 경우 이상적으로 고려되지 않았지만 다른 컨텍스트에서 분리된 결정을 복잡하게 만들기 시작하지 않았습니다.
울타리에 왜 그런 "정원"이 있습니까?
충분할 것입니다.
울타리에 왜 그런 "정원"이 있습니까?
충분할 것입니다.
부족한.
손으로 열림, 브레이크 확인
그리고 가장 중요한 것은 누가 이 불명예를 대가를 치르게 될 것인지...
손으로 열림, 브레이크 확인
그리고 가장 중요한 것은 누가 이 불명예를 대가를 치르게 될 것인지...
이 로그를 첨부하여 브로커에 작성하십시오.
개발자에게 비용을 지불하지 않아 문의가 어려우며, 라이선스 계약에
(모든 소프트웨어와 마찬가지로) 누구도 책임을 지지 않는다는 내용으로 작성되었습니다.
이 로그를 첨부하여 브로커에 작성하십시오.
개발자에게 비용을 지불하지 않아 문의가 어려우며, 라이선스 계약에
(모든 소프트웨어와 마찬가지로) 누구도 책임을 지지 않는다는 내용으로 작성되었습니다.
이것은 수사학적 질문이었다.
이것은 수사학적 질문이었다.
:)
하지만 어쨌든 브로커에게
Expert Advisor의 로깅을 약간 변경했는데 다음과 같습니다.
CheckOrders() 함수는 1-1.5초 이내에 서버로부터 응답이 없으면 트리거됩니다.
주문 티켓이 없으면 메시지가 표시됩니다.
티켓이 수신되면 ProcessOrders() 함수가 호출되어 주문에 무슨 일이 일어났는지 확인합니다.
결과는 다음과 같습니다.
지연은 브로커 때문이 아닐 가능성이 큽니다.
주문을 비동기식으로 보낼 때 다음이 제공됩니다.
터미널이 주문을 보냈습니다 (1)
서버가 주문을 확인하고 티켓을 할당했습니다 (2)
서버가 거래소에 주문을 보냈습니다 (3)
거래소에서 주문을 수락 했다는 서버 응답은 기록되지 않습니다.
하지만 다음 항목으로 판단하면 거래소에서 주문한다는 서버의 응답이 왔다 (4)
티켓이 오더에 배정되어 거래소로 보내진 후 1.4 SEC가 지났다는 사실과 모든 조치로 판단
서버 자체에서 발생한 지연은 서버 자체에서 발생한다고 가정합니다. log(2) - log(3).
글쎄, 이것은 매우 "즐거워"