위대하고 끔찍한 MT4 영원히 (또는 전환 전략을 올바르게 개발하는 방법) - 페이지 24 1...171819202122232425262728293031 새 코멘트 Igor Makanu 2021.05.10 13:19 #231 Artyom Trishkin : 러시아어로? 스페인어? 영어로? 에 무슨? 단말기가 지원하는 모든 언어로 자연스럽게 형식은 중요하지 않습니다. 생성자가 언어를 매개변수로 받는 클래스 형태의 SB일 수 있습니다. 또는 GetTxtErrDescription_RU()로 끝나는 언어 인코딩이 있는 사용자 정의 함수 그룹일 수 있습니다. 또는 GetLastError()와 같은 일반 함수 욕망이있을 것입니다 좋아, 가자, 나는 모든 것을 가지고 있지만 내 계급은 보편적 복지를 돌볼 수 없으며 특별히 훈련 된 사람들이 사용성과 사용자 편의성을 다루도록합니다. Alexey Viktorov 2021.05.10 13:44 #232 나는 당신의 위치가 두 배로 된 이유를 추측했습니다.))) CodeBase에 두 개의 라이브러리를 배치했기 때문에))) Fast235 2021.05.10 15:42 #233 GetTickCount()보다는; 나는 그것을 좋아하지 않는다. 그것은 전체 코드를 늦추지 않는다. Sleep과 달리, ping이 높으면 적어도 500ms를 고정 할 수 있습니다. 내 다중 문자에서 각 쌍에 대해 별도의 카운터가 OrderSend 후에 활성화되고 나머지 논리는 계속 작동합니다. void OnStart () { MqlTradeRequest BuyRequest = { 0 }; MqlTradeResult result = { 0 }; BuyRequest.action = TRADE_ACTION_DEAL ; BuyRequest.type = ORDER_TYPE_BUY ; BuyRequest.symbol = _Symbol ; BuyRequest.volume = 0.1 ; BuyRequest.type_filling = GetFilling(); //--- while ( 1 && ! IsStopped ()) { static uint LastOnCalculate = GetTickCount (); if ( GetTickCount () - LastOnCalculate > 5 ) //--- { BuyRequest.price = SymbolInfoDouble ( _Symbol , SYMBOL_ASK ); OrderSend (BuyRequest, result); LastOnCalculate = GetTickCount (); continue ; } if ( PositionGetTicket ( 0 ) > 0 && PositionsTotal () >= 10 ) { Sleep ( 100 ); Print ( PositionsTotal ()); return ; } } } //+------------------------------------------------------------------+ ENUM_ORDER_TYPE_FILLING GetFilling( const uint Type = ORDER_FILLING_FOK ) { const ENUM_SYMBOL_TRADE_EXECUTION ExeMode = ( ENUM_SYMBOL_TRADE_EXECUTION ):: SymbolInfoInteger ( _Symbol , SYMBOL_TRADE_EXEMODE ); const int FillingMode = ( int ):: SymbolInfoInteger ( _Symbol , SYMBOL_FILLING_MODE ); return ((FillingMode == 0 || (Type >= ORDER_FILLING_RETURN ) || ((FillingMode & (Type + 1 )) != Type + 1 )) ? (((ExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE ) || (ExeMode == SYMBOL_TRADE_EXECUTION_INSTANT )) ? ORDER_FILLING_RETURN : ((FillingMode == SYMBOL_FILLING_IOC ) ? ORDER_FILLING_IOC : ORDER_FILLING_FOK )) : ( ENUM_ORDER_TYPE_FILLING )Type); } //+------------------------------------------------------------------+ traveller00 2021.05.10 15:58 #234 Fast235 : GetTickCount()보다는; 나는 그것을 좋아하지 않는다. 그것은 전체 코드를 늦추지 않는다. Sleep과 달리, ping이 높으면 적어도 500ms를 고정 할 수 있습니다. 활성 주기이며 프로세서를 먹습니다. 그리고 터미널에 그런 Expert Advisors가 50명 있다면? 이 중 한 쌍에 8개, 머리핀에 8개 주문이 모두 발송됩니다. Fast235 2021.05.10 15:59 #235 traveller00 : 활성 주기이며 프로세서를 먹습니다. 그리고 터미널에 그런 Expert Advisors가 50명 있다면? 이 중 한 쌍에 8개, 머리핀에 8개 주문이 모두 발송됩니다. 그것은 0.5초 동안 활성화 되고 주문을 보낸 후의 모든 것입니다. 그런 다음 명령이 없으면 먼저 열려 있는 위치에 대한 확인이 있습니다. 내 코드를 최적화한 방법, 더 빠르게 작동하기 시작했고 각각 2개 조각을 열기 시작했습니다) 처음에는 수면이 도움이 되었지만 모든 것이 느려졌습니다. 저는 7자를 가지고 있습니다. fxsaber 2021.05.11 09:05 #236 fxsaber : 아직 MT4 스타일을 직접 사용해 본 적은 없습니다. 이론적으로 작동해야 합니다. 아직 볼 방법이 없습니다. 공장. 두 가지 옵션(포지션 기대 유무)을 비교하는 것은 흥미로웠습니다. OrderSend 이후의 포지션 기대와 함께. #include <MT4Orders.mqh> #define Ask SymbolInfoDouble ( _Symbol , SYMBOL_ASK ) void OnStart () { while ( OrdersTotal () < 30 ) OrderSend ( _Symbol , OP_BUY, 0.1 , Ask, 0 , 0 , 0 ); Print ( OrdersTotal ()); } 위치를 기다리지 않고 결과가 즉시 나타납니다. #include <fxsaber\TradesID\ByPass.mqh> #include <MT4Orders.mqh> #define Ask SymbolInfoDouble ( _Symbol , SYMBOL_ASK ) void OnStart () { BYPASS ByPass; MT4ORDERS::OrderSend_MaxPause = 0 ; // Запрет на ожидание позиции после OrderSend while ( OrdersTotal () < 30 ) if (ByPass.Is()) ByPass += OrderSend ( _Symbol , OP_BUY, 0.1 , Ask, 0 , 0 , 0 ); Print ( OrdersTotal ()); } 두 번째 옵션이 더 빠를 것이라고 확신했습니다. 동일한 실행 시간이 나타났습니다. 기다릴 때 ByPass.Is()는 740번까지 기다리지 않고 false를 반환하지 않았습니다. 일반적으로 목발이 작동하는 것 같습니다. fxsaber 2021.05.11 09:42 #237 이것은 제시된 유일한 작동 솔루션인 것 같습니다. 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 위대하고 끔찍한 MT4 영원히 (또는 전환 전략을 올바르게 개발하는 방법) 이고르 마카누 , 2021.05.10 10:28 다음과 같이 작동하는 것 같습니다. #include <Trade\Trade.mqh> void OnStart () { CTrade Trade; while ( PositionsTotal () < 30 ) { if ( OrdersTotal () > 0 ) continue ; if (!Trade.Buy( 0.01 )) continue ; if ( OrdersTotal () == 0 && PositionsTotal () >= 30 ) return ; } } 그러나 매우 천천히, 그리고 해결책은 그저 그렇습니다 그의 속도는 정상입니다. 동기화 부족 37회. Igor Makanu 2021.05.11 11:47 #238 fxsaber : 그의 속도는 정상입니다. 동기화 부족 37회. 이제 fx에서 확인했습니다... n - 이 스크립트는 빠르게 각각 10개 주문을 5번 열었습니다. 마지막으로 빨랐을 때는 데모에서 10개 주문을 여는 데 10초가 걸렸고 마감 주문도 빠르지 않았습니다. 나는 주문 11143290에 대한 로그에서 그것을 긁었습니다. 엘 0 11:19:31.444 거래 '20615687': 주문 번호 11143290 시장에서 0.1 / 0.1 EURUSD를 1580.643ms에 완료 포 0 11:19:33.621 거래 '20615687': 거래 #1865643 1.21460에 0.1 EURUSD 구매 완료(주문 #11143290 기준) 씨엘 0 11:19:33.622 거래 '20615687': 시장 매수 0.1 EURUSD 제이에프 0 11:19:33.679 거래 '20615687': 허용된 시장 구매 0.1 EURUSD QO 0 11:19:33.679 거래 '20615687': 시장 매수 0.1 EURUSD 실행 KM 0 11:22:41.224 거래 '20615687': 시장에서 0.1 EURUSD 매도, #11143290 매수 0.1 EURUSD 1.21460 박사 0 11:22:41.280 거래 '20615687': 허용된 시장 매도 0.1 EURUSD, 종가 #11143290 매수 0.1 EURUSD 1.21460 KQ 0 11:22:41.282 거래 '20615687': 시장 매도 0.1 EURUSD, 종가 #11143290 매수 0.1 EURUSD 1.21460 실행 켜짐 0 11:22:43.824 거래 '20615687': 시장에서 0.1 EURUSD 매도, #11143290 매수 0.1 EURUSD 1.21460 ~하다 2 11:22:43.880 거래 '20615687': 실패한 시장 매도 0.1 EURUSD, 종가 #11143290 0.1 EURUSD 1.21460 매수 [이 포지션을 청산하기 위한 주문이 이미 존재합니다] 제이엔 0 11:22:46.280 거래 '20615687': 시장에서 0.1 EURUSD 매도, #11143290 매수 0.1 EURUSD 1.21460 올 2 11:22:46.336 거래 '20615687': 실패한 시장 매도 0.1 EURUSD, 종가 #11143290 0.1 EURUSD 1.21460 매수 [이 포지션을 청산하기 위한 주문이 이미 존재합니다] fxsaber 2021.05.11 12:13 #239 Igor Makanu : 이제 fx ... n에서 확인되었습니다. 이 서버를 확인해봐야겠습니다. 여기에서 제안하는 목발 을 확인하는 것이 좋을 것입니다. 누구에게 중요해 보입니다. 나는 잠시 후에 이 주제로 돌아가고 싶지 않습니다. 버그가 있으면 즉시 지적하는 것이 좋습니다. Igor Makanu 2021.05.11 12:35 #240 fxsaber : 이 서버를 확인해봐야겠습니다. 여기에서 제안하는 목발 을 확인하는 것이 좋을 것입니다. 누구에게 중요해 보입니다. 나는 잠시 후에 이 주제로 돌아가고 싶지 않습니다. 버그가 있으면 즉시 지적하는 것이 좋습니다. LAN에서 서버 삭제 1...171819202122232425262728293031 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
러시아어로? 스페인어? 영어로? 에 무슨?
단말기가 지원하는 모든 언어로 자연스럽게
형식은 중요하지 않습니다. 생성자가 언어를 매개변수로 받는 클래스 형태의 SB일 수 있습니다.
또는 GetTxtErrDescription_RU()로 끝나는 언어 인코딩이 있는 사용자 정의 함수 그룹일 수 있습니다.
또는 GetLastError()와 같은 일반 함수
욕망이있을 것입니다
좋아, 가자, 나는 모든 것을 가지고 있지만 내 계급은 보편적 복지를 돌볼 수 없으며 특별히 훈련 된 사람들이 사용성과 사용자 편의성을 다루도록합니다.
나는 당신의 위치가 두 배로 된 이유를 추측했습니다.))) CodeBase에 두 개의 라이브러리를 배치했기 때문에)))
GetTickCount()보다는; 나는 그것을 좋아하지 않는다. 그것은 전체 코드를 늦추지 않는다. Sleep과 달리, ping이 높으면 적어도 500ms를 고정 할 수 있습니다.
내 다중 문자에서 각 쌍에 대해 별도의 카운터가 OrderSend 후에 활성화되고 나머지 논리는 계속 작동합니다.
GetTickCount()보다는; 나는 그것을 좋아하지 않는다. 그것은 전체 코드를 늦추지 않는다. Sleep과 달리, ping이 높으면 적어도 500ms를 고정 할 수 있습니다.
활성 주기이며 프로세서를 먹습니다. 그리고 터미널에 그런 Expert Advisors가 50명 있다면? 이 중 한 쌍에 8개, 머리핀에 8개 주문이 모두 발송됩니다.
활성 주기이며 프로세서를 먹습니다. 그리고 터미널에 그런 Expert Advisors가 50명 있다면? 이 중 한 쌍에 8개, 머리핀에 8개 주문이 모두 발송됩니다.
그것은 0.5초 동안 활성화 되고 주문을 보낸 후의 모든 것입니다. 그런 다음 명령이 없으면 먼저 열려 있는 위치에 대한 확인이 있습니다.
내 코드를 최적화한 방법, 더 빠르게 작동하기 시작했고 각각 2개 조각을 열기 시작했습니다) 처음에는 수면이 도움이 되었지만 모든 것이 느려졌습니다. 저는 7자를 가지고 있습니다.아직 MT4 스타일을 직접 사용해 본 적은 없습니다. 이론적으로 작동해야 합니다. 아직 볼 방법이 없습니다.
공장. 두 가지 옵션(포지션 기대 유무)을 비교하는 것은 흥미로웠습니다.
OrderSend 이후의 포지션 기대와 함께.
위치를 기다리지 않고 결과가 즉시 나타납니다.
두 번째 옵션이 더 빠를 것이라고 확신했습니다. 동일한 실행 시간이 나타났습니다.
기다릴 때 ByPass.Is()는 740번까지 기다리지 않고 false를 반환하지 않았습니다. 일반적으로 목발이 작동하는 것 같습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
위대하고 끔찍한 MT4 영원히 (또는 전환 전략을 올바르게 개발하는 방법)
이고르 마카누 , 2021.05.10 10:28
다음과 같이 작동하는 것 같습니다.
그러나 매우 천천히, 그리고 해결책은 그저 그렇습니다
그의 속도는 정상입니다. 동기화 부족 37회.
그의 속도는 정상입니다. 동기화 부족 37회.
이제 fx에서 확인했습니다... n - 이 스크립트는 빠르게 각각 10개 주문을 5번 열었습니다. 마지막으로 빨랐을 때는 데모에서 10개 주문을 여는 데 10초가 걸렸고 마감 주문도 빠르지 않았습니다.
나는 주문 11143290에 대한 로그에서 그것을 긁었습니다.
엘 0 11:19:31.444 거래 '20615687': 주문 번호 11143290 시장에서 0.1 / 0.1 EURUSD를 1580.643ms에 완료
포 0 11:19:33.621 거래 '20615687': 거래 #1865643 1.21460에 0.1 EURUSD 구매 완료(주문 #11143290 기준)
씨엘 0 11:19:33.622 거래 '20615687': 시장 매수 0.1 EURUSD
제이에프 0 11:19:33.679 거래 '20615687': 허용된 시장 구매 0.1 EURUSD
QO 0 11:19:33.679 거래 '20615687': 시장 매수 0.1 EURUSD 실행
KM 0 11:22:41.224 거래 '20615687': 시장에서 0.1 EURUSD 매도, #11143290 매수 0.1 EURUSD 1.21460
박사 0 11:22:41.280 거래 '20615687': 허용된 시장 매도 0.1 EURUSD, 종가 #11143290 매수 0.1 EURUSD 1.21460
KQ 0 11:22:41.282 거래 '20615687': 시장 매도 0.1 EURUSD, 종가 #11143290 매수 0.1 EURUSD 1.21460 실행
켜짐 0 11:22:43.824 거래 '20615687': 시장에서 0.1 EURUSD 매도, #11143290 매수 0.1 EURUSD 1.21460
~하다 2 11:22:43.880 거래 '20615687': 실패한 시장 매도 0.1 EURUSD, 종가 #11143290 0.1 EURUSD 1.21460 매수 [이 포지션을 청산하기 위한 주문이 이미 존재합니다]
제이엔 0 11:22:46.280 거래 '20615687': 시장에서 0.1 EURUSD 매도, #11143290 매수 0.1 EURUSD 1.21460
올 2 11:22:46.336 거래 '20615687': 실패한 시장 매도 0.1 EURUSD, 종가 #11143290 0.1 EURUSD 1.21460 매수 [이 포지션을 청산하기 위한 주문이 이미 존재합니다]
이제 fx ... n에서 확인되었습니다.
이 서버를 확인해봐야겠습니다. 여기에서 제안하는 목발 을 확인하는 것이 좋을 것입니다. 누구에게 중요해 보입니다.
나는 잠시 후에 이 주제로 돌아가고 싶지 않습니다. 버그가 있으면 즉시 지적하는 것이 좋습니다.
이 서버를 확인해봐야겠습니다. 여기에서 제안하는 목발 을 확인하는 것이 좋을 것입니다. 누구에게 중요해 보입니다.
나는 잠시 후에 이 주제로 돌아가고 싶지 않습니다. 버그가 있으면 즉시 지적하는 것이 좋습니다.
LAN에서 서버 삭제