알고리즘, 결정 방법, 성능 비교 - 페이지 20 1...1314151617181920212223 새 코멘트 Sergey Dzyublik 2017.12.11 11:21 #191 Реter Konow : 이상적인 솔루션에 엔터티를 추가해야 하는 이유를 모르겠습니다. 나는 요점이 보이지 않는다. 동시에 두 개의 모자를 쓰지 않습니다. 그리고 왜? 이것을 먼저 설명하십시오. )) "당신은 사람들을 고문하고 고통스럽게 만들고 도덕적으로, 심리적으로 낮추십시오.... " 저주받은 세계(컬렉션) 저자: Dmitry Ganin Реter Konow 2017.12.11 11:37 #192 Sergey Dzyublik : "당신은 사람들을 고문하고 고통스럽게 만들고 도덕적으로, 심리적으로 낮추십시오.... " 저주받은 세계(컬렉션) 저자: Dmitry Ganin 본의 아니게 도덕적, 정신적 고통을 겪을 모든 분들께 진심으로 사과드립니다. 특정 문제에 대한 이상적인 해결책을 찾는 것 외에는 어떤 목표도 추구하지 않았습니다. 오히려 그 자신도 이해할 수 없는 공격과 의욕 없는 공격을 당했다. 분명히이 대가는 사회를 따라 가고 싶지 않은 모든 사람이 지불합니다. 글쎄, 나는 내 선택을했고 나는 누구를 비난하지 않습니다 ... Alexandr Andreev 2017.12.11 11:40 #193 Реter Konow : 이상적인 솔루션에 엔터티를 추가해야 하는 이유를 모르겠습니다. 귀하의 코드를 이상적인 솔루션이라고 말하기에는 너무 이릅니다. 그리고 이것은 실제 모자 컬렉션입니다. Реter Konow 2017.12.11 11:47 #194 Alexandr Andreev : 귀하의 코드를 이상적인 솔루션으로 이야기하기에는 너무 이릅니다. 일반적으로 얘기했는데... "이상적인 솔루션(모든)에 엔터티를 추가해야 하는 이유" 나는 많은 사람들이 나에게 매우 귀중한 아이디어를 주고 올바른 실수를 지적했다고 말해야 합니다. 1. 문자 수 오류. 2. 공통 문자열 내에서 부분 문자열 자체의 충돌로 인해 발생하는 오류. 3. 각 특정 라인에 할당된 메모리가 부족합니다. 4. 배열의 크기를 변경하면 데이터가 지워진다는 잘못된 믿음. 이러한 오류를 지적해 주신 모든 분들께 감사드립니다! Реter Konow 2017.12.11 11:56 #195 Реter Konow : ... 이러한 오류를 지적해 주신 모든 분들께 감사드립니다! 객관적으로 말해서 가장 이상적인 솔루션 은 모두 의 몫입니다. 오류를 지적하고 사람들과 소통하고 교류하면서 오게 되었기 때문입니다. Alexandr Andreev 2017.12.11 12:00 #196 Реter Konow : 객관적으로 말해서 가장 이상적인 솔루션 은 모두 의 몫입니다. 오류를 지적하고 사람들과 소통하고 교류하면서 오게 되었기 때문입니다. 다시 한 번, 마지막 옵션은 옵션일 뿐이며 이전에는 옵션이 전혀 아니었습니다! 그리고 그가 완벽하다는 사실은 논란의 여지가 있는 진술입니다. Реter Konow 2017.12.11 12:02 #197 Alexandr Andreev : 다시 한 번, 마지막 옵션은 옵션일 뿐이며 이전에는 옵션이 전혀 아니었습니다! 그리고 그가 완벽하다는 사실은 논란의 여지가 있는 진술입니다. 좋은. 나를 위해 완벽하게 하자. 누구나 자신의 척도로 평가할 수 있습니다. Alexandr Andreev 2017.12.11 12:05 #198 나는 DEbug 지문과 혜성으로 넘어갈 것을 제안합니다. 누가 생각이 있습니까? Igor Makanu 2019.10.12 10:48 #199 함수가 다음과 같은 경우 실행 시간을 테스트했습니다. 1. 수업에 싸인 2. 클래스에 래핑된 경우 new 연산자를 사용하여 클래스의 인스턴스를 만듭니다. 3. 래퍼를 사용하지 않고 함수를 호출하기만 하면 됩니다. //+------------------------------------------------------------------+ #define SpeedTest(count_x10,msg,EX) { uint mss= GetTickCount (); ulong count=( ulong ) pow ( 10 ,count_x10); for ( ulong i= 0 ;i<count&&! _StopFlag ;i++){EX;} \ printf ( "%s: loops=%i ms=%u" ,msg,count, GetTickCount ()-mss);} //+------------------------------------------------------------------+ class COpen { private : string m_symbol; public : COpen( const string symbol): m_symbol(symbol) {} double getOpen( const int bar) const { return ( iOpen (m_symbol, 0 , bar)); } }; //+------------------------------------------------------------------+ void OnStart () { #define loop_x10 9 //1. COpen sym1( _Symbol ); srand ( GetTickCount ()); SpeedTest(loop_x10, "1. COpen" , sym1.getOpen( rand ())); //2. srand ( GetTickCount ()); SpeedTest(loop_x10, "2. new COpen" , COpen *sym2 = new COpen( _Symbol ); sym2.getOpen( rand ()); delete sym2; ); //3. srand ( GetTickCount ()); SpeedTest(loop_x10, "3. iOpen" , iOpen ( NULL , 0 , rand ());); } //_______________________________________________________________________ 2019.10.12 12:39:29.802 SpeedTst_class(EURUSD,M1) 1. COpen: 루프=1000000000ms=41016 2019.10.12 12:41:05.352 SpeedTst_class(EURUSD,M1) 2. 새로운 COpen: 루프=1000000000 ms=95562 2019.10.12 12:41:45.939 SpeedTst_class(EURUSD,M1) 3. iOpen: 루프=1000000000ms=40578 테스트 1과 3은 성능면에서 비슷합니다. 클래스에서 함수 호출을 래핑하는 것은 중요하지 않습니다. 생성자와 소멸자의 호출로 인해 테스트 2번 시간이 소진되었습니다. Algorithms, solution methods, comparison 루프 뒤 또는 루프 MQL4 및 MQL5에 대한 Igor Makanu 2019.12.11 17:19 #200 SymbolInfoDouble() 함수 호출 시 실행 속도 테스트 #property version "1.00" // количество итераций теста #define LOOPx10 8 #define SpeedTest(count_x10,msg,EX) { uint mss= GetTickCount (); ulong count=( ulong ) pow ( 10 ,count_x10); for ( ulong i= 0 ;i<count&&! _StopFlag ;i++){EX;} \ printf ( "%s: loops=%i ms=%u" ,msg,count, GetTickCount ()-mss);} //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { double lot; srand ( GetTickCount ()); SpeedTest(LOOPx10, "calcNormVol_my()" , lot = rand () / 1000.0 ; calcNormVol_my(lot)) srand ( GetTickCount ()); SpeedTest(LOOPx10, "calcNormVol_alexeyvik()" , lot = rand () / 1000.0 ; calcNormVol_alexeyvik(lot)) srand ( GetTickCount ()); SpeedTest(LOOPx10, "calcNormVol_fxsaber()" , lot = rand () / 1000.0 ; calcNormVol_fxsaber(lot)) srand ( GetTickCount ()); SpeedTest(LOOPx10, "calcNormVol_my_2()" , lot = rand () / 1000.0 ; calcNormVol_my_2(lot)) } //+------------------------------------------------------------------+ double calcNormVol_my( const double value) { const static string sym = _Symbol ; return ( NormalizeDouble ( fmax ( fmin ( SymbolInfoDouble (sym, SYMBOL_VOLUME_STEP ) * round (value / SymbolInfoDouble (sym, SYMBOL_VOLUME_STEP )), SymbolInfoDouble (sym, SYMBOL_VOLUME_MAX )), SymbolInfoDouble (sym, SYMBOL_VOLUME_MIN )), 2 )); } //+------------------------------------------------------------------+ double calcNormVol_alexeyvik( const double value) { // const string sym = _Symbol; return ( NormalizeDouble ( fmax ( fmin ( SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_STEP ) * round (value / SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_STEP )), SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_MAX )), SymbolInfoDouble ( Symbol (), SYMBOL_VOLUME_MIN )), 2 ) ); } //+------------------------------------------------------------------+ const double VolumeStep = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP ); const double VolumeMax = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MAX ); const double VolumeMin = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN ); const int O_DigitsInVolumeStep = 2 ; double calcNormVol_fxsaber( const double value ) { return ((value > VolumeMax) ? VolumeMax : ((value < VolumeMin) ? VolumeMin : NormalizeDouble (VolumeStep * ( int )(value / VolumeStep + 0.5 ), O_DigitsInVolumeStep))); } //+------------------------------------------------------------------+ double calcNormVol_my_2( const double value ) { const static double volumeStep = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP ); const static double volumeMax = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MAX ); const static double volumeMin = SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MIN ); const static int o_digitsInVolumeStep = 2 ; return ((value > volumeMax) ? volumeMax : ((value < volumeMin) ? volumeMin : NormalizeDouble (volumeStep * ( int )(value / volumeStep + 0.5 ), o_digitsInVolumeStep))); } //+------------------------------------------------------------------+ 2019.12.11 21:13:08.896 tst_volum (EURUSD,W1) calcNormVol_my(): 루프=100000000ms=173406 2019.12.11 21:15:45.425 tst_volum (EURUSD,W1) calcNormVol_alexeyvik(): 루프=100000000ms=156531 2019.12.11 21:15:45.533 tst_volum (EURUSD,W1) calcNormVol_fxsaber(): 루프=100000000ms=110 2019.12.11 21:15:45.916 tst_volum (EURUSD,W1) calcNormVol_my_2(): 루프=100000000ms=390 1...1314151617181920212223 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
이상적인 솔루션에 엔터티를 추가해야 하는 이유를 모르겠습니다. 나는 요점이 보이지 않는다.
동시에 두 개의 모자를 쓰지 않습니다. 그리고 왜?
이것을 먼저 설명하십시오. ))
"당신은 사람들을 고문하고 고통스럽게 만들고 도덕적으로, 심리적으로 낮추십시오.... "
저주받은 세계(컬렉션) 저자: Dmitry Ganin
"당신은 사람들을 고문하고 고통스럽게 만들고 도덕적으로, 심리적으로 낮추십시오.... "
저주받은 세계(컬렉션) 저자: Dmitry Ganin
본의 아니게 도덕적, 정신적 고통을 겪을 모든 분들께 진심으로 사과드립니다.
특정 문제에 대한 이상적인 해결책을 찾는 것 외에는 어떤 목표도 추구하지 않았습니다.
오히려 그 자신도 이해할 수 없는 공격과 의욕 없는 공격을 당했다.
분명히이 대가는 사회를 따라 가고 싶지 않은 모든 사람이 지불합니다.
글쎄, 나는 내 선택을했고 나는 누구를 비난하지 않습니다 ...
이상적인 솔루션에 엔터티를 추가해야 하는 이유를 모르겠습니다.
귀하의 코드를 이상적인 솔루션이라고 말하기에는 너무 이릅니다.
그리고 이것은 실제 모자 컬렉션입니다.
귀하의 코드를 이상적인 솔루션으로 이야기하기에는 너무 이릅니다.
일반적으로 얘기했는데...
"이상적인 솔루션(모든)에 엔터티를 추가해야 하는 이유"
나는 많은 사람들이 나에게 매우 귀중한 아이디어를 주고 올바른 실수를 지적했다고 말해야 합니다.
1. 문자 수 오류.
2. 공통 문자열 내에서 부분 문자열 자체의 충돌로 인해 발생하는 오류.
3. 각 특정 라인에 할당된 메모리가 부족합니다.
4. 배열의 크기를 변경하면 데이터가 지워진다는 잘못된 믿음.
이러한 오류를 지적해 주신 모든 분들께 감사드립니다!
...
이러한 오류를 지적해 주신 모든 분들께 감사드립니다!
객관적으로 말해서 가장 이상적인 솔루션 은 모두 의 몫입니다. 오류를 지적하고 사람들과 소통하고 교류하면서 오게 되었기 때문입니다.
객관적으로 말해서 가장 이상적인 솔루션 은 모두 의 몫입니다. 오류를 지적하고 사람들과 소통하고 교류하면서 오게 되었기 때문입니다.
다시 한 번, 마지막 옵션은 옵션일 뿐이며 이전에는 옵션이 전혀 아니었습니다! 그리고 그가 완벽하다는 사실은 논란의 여지가 있는 진술입니다.
다시 한 번, 마지막 옵션은 옵션일 뿐이며 이전에는 옵션이 전혀 아니었습니다! 그리고 그가 완벽하다는 사실은 논란의 여지가 있는 진술입니다.
나는 DEbug 지문과 혜성으로 넘어갈 것을 제안합니다. 누가 생각이 있습니까?
함수가 다음과 같은 경우 실행 시간을 테스트했습니다.
1. 수업에 싸인
2. 클래스에 래핑된 경우 new 연산자를 사용하여 클래스의 인스턴스를 만듭니다.
3. 래퍼를 사용하지 않고 함수를 호출하기만 하면 됩니다.
2019.10.12 12:39:29.802 SpeedTst_class(EURUSD,M1) 1. COpen: 루프=1000000000ms=41016
2019.10.12 12:41:05.352 SpeedTst_class(EURUSD,M1) 2. 새로운 COpen: 루프=1000000000 ms=95562
2019.10.12 12:41:45.939 SpeedTst_class(EURUSD,M1) 3. iOpen: 루프=1000000000ms=40578
테스트 1과 3은 성능면에서 비슷합니다. 클래스에서 함수 호출을 래핑하는 것은 중요하지 않습니다. 생성자와 소멸자의 호출로 인해 테스트 2번 시간이 소진되었습니다.
SymbolInfoDouble() 함수 호출 시 실행 속도 테스트
2019.12.11 21:13:08.896 tst_volum (EURUSD,W1) calcNormVol_my(): 루프=100000000ms=173406
2019.12.11 21:15:45.425 tst_volum (EURUSD,W1) calcNormVol_alexeyvik(): 루프=100000000ms=156531
2019.12.11 21:15:45.533 tst_volum (EURUSD,W1) calcNormVol_fxsaber(): 루프=100000000ms=110
2019.12.11 21:15:45.916 tst_volum (EURUSD,W1) calcNormVol_my_2(): 루프=100000000ms=390