MT5와 속도 - 페이지 50 1...434445464748495051525354555657...94 새 코멘트 fxsaber 2020.10.08 06:04 #491 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 MT5와 속도 fxsaber , 2020.10.07 11:13 #include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279 void OnTick () { _BV( Print ( "" ), 1 ); } 느린 VPS에서 어떻게 될지 확인할 수 없습니다. OrderSend 후에 일부 출력물(예: 주문 전송 결과)을 만든 경우 문자열 변수에 누적하고 On-function이 종료될 때 출력하도록 전송하는 것이 좋습니다. 그렇지 않으면 Print-snapshot 과의 연결에서 많은 것을 잃을 수 있습니다. 얼마나 - 누군가가 VPS에서 위의 고문을 시작하면 대답할 수 있습니다. 위협 가장 간단한 구현. #include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279 class PRINT { private : string Str; public : PRINT() : Str( NULL ) { :: StringSetLength ( this .Str, 5000 ); } ~PRINT() { if ( this .Str != NULL ) :: Print ( this .Str); } template < typename T> void Add( const T PrintStr ) { this .Str += (( this .Str == NULL ) ? NULL : "\n" ) + ( string )PrintStr; } }; #define Print PrintObj.Add // Закомментируйте, чтобы посмотреть скорость обычного Print. void OnTick () { PRINT PrintObj; // Накопитель Print-ов. for ( int i = 0 ; i < 5 ; i++) { _BV( Print (i), 1 ) Sleep ( 100 ); // Эмуляция OrderSend } } 빠른 시스템에서 이 솔루션은 일반적인 접근 방식보다 훨씬 빠릅니다. VPS에 관해서는 - 모르겠습니다. Edgar Akhmadeev 2020.10.08 06:53 #492 fxsaber : OrderSend 후에 일부 출력물(예: 주문 전송 결과)을 만든 경우 문자열 변수에 누적하고 On-function이 종료될 때 출력하도록 전송하는 것이 좋습니다. 그렇지 않으면 Print-snapshot 과의 연결에서 많은 손실을 입을 수 있습니다. 얼마나 - 누군가가 VPS에서 위의 고문을 시작하면 대답할 수 있습니다. 내 VPS에서 $3 2020.10 . 08 09 : 50 : 59.631 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 3121 mсs. 2020.10 . 08 09 : 50 : 59.724 Test Print (EURUSD,H1) 2020.10 . 08 09 : 50 : 59.724 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 78 mсs. 2020.10 . 08 09 : 50 : 59.837 Test Print (EURUSD,H1) 2020.10 . 08 09 : 50 : 59.837 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 86 mсs. 2020.10 . 08 09 : 50 : 59.930 Test Print (EURUSD,H1) 2020.10 . 08 09 : 50 : 59.931 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 159 mсs. 2020.10 . 08 09 : 51 : 00.036 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 00.036 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 84 mсs. 2020.10 . 08 09 : 51 : 00.138 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 00.138 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 94 mсs. 2020.10 . 08 09 : 51 : 00.243 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 00.243 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 86 mсs. 2020.10 . 08 09 : 51 : 00.380 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 00.380 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 54 mсs. 2020.10 . 08 09 : 51 : 00.973 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 00.973 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 79 mсs. 2020.10 . 08 09 : 51 : 01.129 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 01.129 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 91 mсs. 2020.10 . 08 09 : 51 : 01.186 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 01.186 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 60 mсs. 2020.10 . 08 09 : 51 : 01.320 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 01.321 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 75 mсs. 2020.10 . 08 09 : 51 : 01.402 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 01.402 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 86 mсs. 2020.10 . 08 09 : 51 : 01.546 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 01.555 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 72 mсs. 2020.10 . 08 09 : 51 : 02.158 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 02.158 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 67 mсs. 2020.10 . 08 09 : 51 : 04.651 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 04.651 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 74 mсs. 2020.10 . 08 09 : 51 : 04.929 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 04.930 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 200 mсs. 2020.10 . 08 09 : 51 : 07.200 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 07.200 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 58 mсs. 2020.10 . 08 09 : 51 : 07.330 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 07.330 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 68 mсs. 2020.10 . 08 09 : 51 : 07.452 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 07.460 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 77 mсs. 2020.10 . 08 09 : 51 : 07.728 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 07.728 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 64 mсs. 2020.10 . 08 09 : 51 : 07.870 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 07.870 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 72 mсs. 2020.10 . 08 09 : 51 : 07.967 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 07.967 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 58 mсs. 2020.10 . 08 09 : 51 : 08.130 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 08.130 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 56 mсs. 2020.10 . 08 09 : 51 : 11.274 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 11.275 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 63 mсs. 2020.10 . 08 09 : 51 : 11.409 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 11.409 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 73 mсs. 2020.10 . 08 09 : 51 : 11.903 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 11.903 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 86 mсs. 2020.10 . 08 09 : 51 : 12.022 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 12.022 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 79 mсs. 2020.10 . 08 09 : 51 : 12.699 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 12.700 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 69 mсs. 2020.10 . 08 09 : 51 : 12.977 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 12.977 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 67 mсs. 2020.10 . 08 09 : 51 : 13.226 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 13.226 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 98 mсs. 2020.10 . 08 09 : 51 : 13.412 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 13.412 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 93 mсs. 2020.10 . 08 09 : 51 : 13.854 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 13.854 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 59 mсs. 2020.10 . 08 09 : 51 : 14.000 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 14.000 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 62 mсs. 2020.10 . 08 09 : 51 : 18.343 Test Print (EURUSD,H1) 2020.10 . 08 09 : 51 : 18.343 Test Print (EURUSD,H1) Alert : Time[Test Print .mq5 5 : Print ()] = 86 mсs. fxsaber 2020.10.08 06:55 #493 Edgar Akhmadeev : 내 VPS에서 $3 고맙습니다. 확실히 더 나은 해결 방법입니다. Anton 2020.10.08 07:48 #494 fxsaber : #include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279 long GetAnotherChart() { long Chart = :: ChartFirst (); while (Chart == ChartID ()) Chart = ChartNext (Chart); return (Chart); } void OnTick () { const long Chart = GetAnotherChart(); if (Chart) _B( EventChartCustom (Chart, 123 , 0 , 0 , NULL ), 1 ); _B( EventChartCustom ( 0 , 123 , 0 , 0 , NULL ), 1 ); } 다른 사람의 차트로 보내는 것은 자신의 차트로 보내는 것보다 비용이 더 많이 듭니다. 다음과 같이 시도하십시오. _B( EventChartCustom (- 1 , 123 , 0 , 0 , NULL ), 1 ); fxsaber 2020.10.08 08:21 #495 Anton : 다음과 같이 시도하십시오. // https://www.mql5.com/ru/forum/342090/page50#comment_18647171 class PRINT { private : string Str; public : PRINT() : Str( NULL ) { :: StringSetLength ( this .Str, 5000 ); } ~PRINT() { if ( this .Str != NULL ) :: Print ( this .Str); } template < typename T> void Add( const T PrintStr ) { this .Str += (( this .Str == NULL ) ? NULL : "\n" ) + ( string )PrintStr; } }; #define Alert PrintObj.Add PRINT PrintObj; //#define BENCHMARK_OFF // Выключение замеров. #include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279 void OnTick () { _B( EventChartCustom (- 1 , 123 , GetMicrosecondCount (), 0 , NULL ), 1 ); } void OnChartEvent ( const int id, const long & lparam, const double & dparam, const string & sparam) { if (id == 1123 ) Print ( "Time[from OnTick To OnChartEvent] = " + ( string )( GetMicrosecondCount () - lparam) + " mcs." ); } 결과. 2020.10 . 08 11 : 35 : 52.050 Benchmark.mqh: TimeAvg[GetMicrosecondsCount()] = 0 mcs. 2020.10 . 08 11 : 35 : 52.050 Benchmark.mqh is On. 2020.10 . 08 11 : 35 : 55.617 Time[from OnTick To OnChartEvent ] = 14 mcs. 2020.10 . 08 11 : 35 : 55.821 Time[from OnTick To OnChartEvent ] = 3 mcs. 2020.10 . 08 11 : 35 : 56.729 Time[from OnTick To OnChartEvent ] = 4 mcs. 2020.10 . 08 11 : 35 : 56.932 Time[from OnTick To OnChartEvent ] = 9 mcs. 2020.10 . 08 11 : 35 : 57.841 Time[from OnTick To OnChartEvent ] = 9 mcs. 2020.10 . 08 11 : 35 : 58.177 Bench_Stack = 0 , 1 <= Time[Test9.mq5 23 in OnTick : EventChartCustom (- 1 , 123 , GetMicrosecondCount (), 0 , NULL )] = 2 mcs. 2020.10 . 08 11 : 35 : 58.177 Bench_Stack = 0 , 1 <= Time[Test9.mq5 23 in OnTick : EventChartCustom (- 1 , 123 , GetMicrosecondCount (), 0 , NULL )] = 2 mcs. 2020.10 . 08 11 : 35 : 58.177 Bench_Stack = 0 , 1 <= Time[Test9.mq5 23 in OnTick : EventChartCustom (- 1 , 123 , GetMicrosecondCount (), 0 , NULL )] = 2 mcs. 측정이 꺼져 있을 때. 2020.10 . 08 11 : 15 : 19.084 Benchmark.mqh: TimeAvg[GetMicrosecondsCount()] = 0 mcs. 2020.10 . 08 11 : 15 : 19.084 Benchmark.mqh is Off. 2020.10 . 08 11 : 15 : 24.171 Time[from OnTick To OnChartEvent ] = 4 mcs. 2020.10 . 08 11 : 15 : 24.376 Time[from OnTick To OnChartEvent ] = 3 mcs. 2020.10 . 08 11 : 15 : 27.010 Time[from OnTick To OnChartEvent ] = 3 mcs. 2020.10 . 08 11 : 15 : 31.859 Time[from OnTick To OnChartEvent ] = 5 mcs. 2020.10 . 08 11 : 15 : 32.266 Time[from OnTick To OnChartEvent ] = 4 mcs. 2020.10 . 08 11 : 15 : 32.470 Time[from OnTick To OnChartEvent ] = 3 mcs. 2020.10 . 08 11 : 15 : 32.670 Time[from OnTick To OnChartEvent ] = 6 mcs. 저것들. "OnEmpty"로의 전환은 10 µs 이내에 발생합니다. 0에 대해 동일한 작업을 수행하지 않는 이유는 무엇입니까? Anton 2020.10.08 09:00 #496 fxsaber : 저것들. "OnEmpty"로의 전환은 10 µs 이내에 발생합니다. 0에 대해 동일한 작업을 수행하지 않는 이유는 무엇입니까? 다른 의미와 다른 실행 메커니즘. 0 - "자체" 차트 대기열의 이벤트입니다. -1 - 자체 대기열의 이벤트입니다. fxsaber 2020.10.08 14:59 #497 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 MT5와 속도 fxsaber , 2020.10.07 12:41 어떤 이유로 TimeCurrentMsc는 반복 요청에도 불구하고 MQL5에 포함되지 않습니다. 할 것이다? fxsaber 2020.10.08 15:27 #498 Anton : 다른 의미와 다른 실행 메커니즘. 0 - "자체" 차트 대기열의 이벤트입니다. -1 - 자체 대기열의 이벤트입니다. -1을 통해 동일한 Alert의 비동기를 구현할 수 없다는 것이 밝혀졌습니다. A100 2020.10.08 20:57 #499 fxsaber : 저것들. "OnEmpty"로의 전환은 10 µs 이내에 발생합니다. 보시다시피, 당신의 도움으로 모든 것이 가장 낙관적 인 예측보다 빨리 해결되었으며 비밀 백도어가 있음이 밝혀졌습니다. Roman 2020.10.08 21:22 #500 fxsaber : 할 것이다? 정확히 같지는 않지만 mcs 간격에 따른 카운터입니다. 예 , TimeCurrentMcs 가 더 좋을 것입니다. 소원에 참여합니다. //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { ulong mcs = 0 ; while (! _StopFlag ) { mcs = GetMicrosecondCount (); switch (GetInterval(mcs, 5000000 )) //5 секунд { case 1 : Print (( string ) mcs); break ; case 0 : break ; } } } //-------------------------------------------------------------------- //Получить интервал ulong prevCount = 0 ; int GetInterval( ulong currCount, ulong mcsIntrval) { int res = 0 ; switch ((currCount - prevCount) > mcsIntrval) { case 1 : prevCount = currCount; res = 1 ; break ; default : break ; } return (res); } 2020.10 . 09 00 : 15 : 45.712 TestScript (MNQZ20,M1) 5000001 2020.10 . 09 00 : 15 : 50.712 TestScript (MNQZ20,M1) 10000002 2020.10 . 09 00 : 15 : 55.712 TestScript (MNQZ20,M1) 15000003 2020.10 . 09 00 : 16 : 00.712 TestScript (MNQZ20,M1) 20000004 2020.10 . 09 00 : 16 : 05.712 TestScript (MNQZ20,M1) 25000006 2020.10 . 09 00 : 16 : 10.712 TestScript (MNQZ20,M1) 30000007 2020.10 . 09 00 : 16 : 15.712 TestScript (MNQZ20,M1) 35000008 2020.10 . 09 00 : 16 : 20.712 TestScript (MNQZ20,M1) 40000009 2020.10 . 09 00 : 16 : 25.713 TestScript (MNQZ20,M1) 45000581 2020.10 . 09 00 : 16 : 30.713 TestScript (MNQZ20,M1) 50000582 1...434445464748495051525354555657...94 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MT5와 속도
fxsaber , 2020.10.07 11:13
느린 VPS에서 어떻게 될지 확인할 수 없습니다.
OrderSend 후에 일부 출력물(예: 주문 전송 결과)을 만든 경우 문자열 변수에 누적하고 On-function이 종료될 때 출력하도록 전송하는 것이 좋습니다.
그렇지 않으면 Print-snapshot 과의 연결에서 많은 것을 잃을 수 있습니다. 얼마나 - 누군가가 VPS에서 위의 고문을 시작하면 대답할 수 있습니다.
위협 가장 간단한 구현.
빠른 시스템에서 이 솔루션은 일반적인 접근 방식보다 훨씬 빠릅니다. VPS에 관해서는 - 모르겠습니다.
OrderSend 후에 일부 출력물(예: 주문 전송 결과)을 만든 경우 문자열 변수에 누적하고 On-function이 종료될 때 출력하도록 전송하는 것이 좋습니다.
그렇지 않으면 Print-snapshot 과의 연결에서 많은 손실을 입을 수 있습니다. 얼마나 - 누군가가 VPS에서 위의 고문을 시작하면 대답할 수 있습니다.
내 VPS에서 $3
내 VPS에서 $3
고맙습니다. 확실히 더 나은 해결 방법입니다.
다른 사람의 차트로 보내는 것은 자신의 차트로 보내는 것보다 비용이 더 많이 듭니다.
다음과 같이 시도하십시오.
다음과 같이 시도하십시오.
결과.
측정이 꺼져 있을 때.
저것들. "OnEmpty"로의 전환은 10 µs 이내에 발생합니다.
0에 대해 동일한 작업을 수행하지 않는 이유는 무엇입니까?
저것들. "OnEmpty"로의 전환은 10 µs 이내에 발생합니다.
0에 대해 동일한 작업을 수행하지 않는 이유는 무엇입니까?
다른 의미와 다른 실행 메커니즘. 0 - "자체" 차트 대기열의 이벤트입니다. -1 - 자체 대기열의 이벤트입니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MT5와 속도
fxsaber , 2020.10.07 12:41
어떤 이유로 TimeCurrentMsc는 반복 요청에도 불구하고 MQL5에 포함되지 않습니다.
할 것이다?
다른 의미와 다른 실행 메커니즘. 0 - "자체" 차트 대기열의 이벤트입니다. -1 - 자체 대기열의 이벤트입니다.
-1을 통해 동일한 Alert의 비동기를 구현할 수 없다는 것이 밝혀졌습니다.
저것들. "OnEmpty"로의 전환은 10 µs 이내에 발생합니다.
보시다시피, 당신의 도움으로 모든 것이 가장 낙관적 인 예측보다 빨리 해결되었으며 비밀 백도어가 있음이 밝혀졌습니다.
할 것이다?
정확히 같지는 않지만 mcs 간격에 따른 카운터입니다.
예 , TimeCurrentMcs 가 더 좋을 것입니다. 소원에 참여합니다.