초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 320

 

친애하는 프로그래머 여러분, 누가 알겠습니까?

총 수익에 도달하면 주문 팩(500-2500)을 닫는 MT4 전문가가 있습니다. 그리고 내가 눈치 챘을 때 주문을 하나씩 닫고 가장 작은 것부터 큰 것까지 마법으로 정렬합니다.

그래서 여기에 질문 자체 가 있습니다. 주문을 마감할 때 Expert Advisor에 스크립트 시작 기능을 추가할 수 있습니까? 동일한 방식으로 주문을 마감하고 끝에서 마법으로만 정렬하여 가장 큰 것부터 작은 것 순으로 정렬합니다.

그리고 이 아이디어가 주문 마감 속도를 높일 수 있을까요?

어디선가 최대 4개의 요청을 동시에 서버에 보낼 수 있다고 들었습니다.
 
Tapochun :
그런 다음 코드를 살펴봐야 합니다. 아마도 코드 안에 있을 것입니다... 지문에 비슷한 줄이 있습니까?
없기. 이전에는 모든 것이 질문 없이 테스트되었습니다 ... 그 밖에 무엇이 있을 수 있습니까?


 
Novikov :

친애하는 프로그래머 여러분, 누가 알겠습니까?

총 이익에 도달하면 주문 팩(500-2500)을 마감하는 MT4에 대한 전문가 고문이 있습니다. 그리고 내가 눈치 챘을 때 주문을 하나씩 닫고 가장 작은 것부터 큰 것까지 마법으로 정렬합니다.

그래서 여기에 질문 자체 가 있습니다. 주문을 마감할 때 Expert Advisor에 스크립트 시작 기능을 추가할 수 있습니까? 동일한 방식으로 주문을 마감하고 끝에서 마법으로만 정렬하여 가장 큰 것부터 작은 것 순으로 정렬합니다.

그리고 이 아이디어가 주문 마감 속도를 높일 수 있을까요?

어디선가 최대 4개의 요청을 동시에 서버에 보낼 수 있다고 들었습니다.

Expert Advisor에서 스크립트를 실행하는 것은 불가능합니다. 여러 전문가로부터 동시에 여러 요청을 서버에 보내는 것이 실제로 가능합니다. 여러 Expert Advisor를 동기화하면 실제로 성능이 약간 향상될 수 있습니다.

하지만 내가 너라면 열린 문에 이마를 부딪치지 않을 것이다. MetaTrader5로 전환하는 것이 좋습니다. 몇 초 안에 100-200개 주문의 놀라운 속도로 위치를 일괄 처리할 수 있는 OrderSendAsync 기능이 있습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

개발자! 오류 10024(너무 자주 요청)

C-4 , 2014.11.07 15:55

일반적으로 나는 약간의 연구 결과를 요약합니다.

50밀리초 안에 50개의 요청을 처리합니다. 180ms 동안 100건의 클레임; 2100ms 동안 200; 9000ms당 500건의 클레임; 23000ms 동안 1000건의 클레임. (시간은 평균입니다). 저것들. 더 많이 밀어야 할 수록 더 많은 시간이 걸립니다. 아마도 잘못된 코딩 때문일 것입니다.

많은 응용 프로그램의 실제 실행 시간 은 확실히 더 깁니다. 이 시간은 최악의 경우 주문을 보내는 시간 + 주문을 실행하는 시간과 같습니다. 그러나 어쨌든 한도 내에서는 거래소의 평균 주문 실행 시간 + 거래 서버와 통신하는 데 걸리는 시간이 걸리는 경향이 있습니다. 주문이 60개 미만이면 거래 서버와 통신할 필요가 없으며 모든 주문이 전송되었으며 실행을 기다리고 있습니다. 전송 자체에는 40-60밀리초가 걸립니다. 더 많은 응용 프로그램이 있으면 여기에서 더 어렵습니다. 서버의 응답을 기다리고, 요청 보내기를 다시 켜고, 거부를 기다려야 하는 등의 작업이 필요합니다. 저것들. 네트워크를 통한 메시지 교환이 있습니다. 응용 프로그램이 많은 경우 응용 프로그램이 실행됨에 따라 풀이 점진적으로 해제됩니다. 후속 배송은 작은 부분, 하나 또는 두 개의 애플리케이션으로 제공되며 이것이 네트워크입니다. 따라서 시간이 증가하고 있습니다. 일반적으로 코드는 올바르게 작동하는 것 같으며 요청을 보내고 받는 메커니즘만 이해하면 됩니다.

이러한 전송을 테스트하는 코드는 아래에 첨부되어 있습니다.

ps 요약하자면, 60개의 애플리케이션은 HFT 거래에도 충분하다고 말할 수 있습니다. 실제로 거래 행동에 대한 의식적인 분석이 실제로 필요합니다. 그들은 신청서를 보내고 결과를 받고 거래 환경을 분석하고 필요한 경우 새 것을 보냈습니다. 전체 주기는 40-60밀리초 + 1개 요청의 평균 실행 시간을 분명히 초과합니다.


 
R0MAN :
없기. 이전에는 모든 것이 질문 없이 테스트되었습니다 ... 그 밖에 무엇이 있을 수 있습니까?


새로운 데이터로 테스트해 보세요. 다른 터미널에서 실행해 보셨나요?
 
Tapochun :
새로운 데이터로 테스트해 보세요. 다른 터미널에서 실행해 보셨나요?
아니요. 오늘은 bx로 새로운 것을 설치했습니다. 나는 그것에 대해 테스트하려고 노력했다. 나는 다른 것을 시도 할 것입니다 ... 나는 여기에 결과를 쓸 것입니다.
 
C-4 :

Expert Advisor에서 스크립트를 실행하는 것은 불가능합니다. 여러 전문가로부터 동시에 여러 요청을 서버에 보내는 것이 실제로 가능합니다. 여러 Expert Advisor를 동기화하면 실제로 성능이 약간 향상될 수 있습니다.

하지만 내가 너라면 열린 문에 이마를 부딪히지 않을 것이다. MetaTrader5로 전환하는 것이 좋습니다. 몇 초 안에 100-200개 주문의 놀라운 속도로 위치를 일괄 처리할 수 있는 OrderSendAsync 기능이 있습니다.



그리고 여기 MT5와 훨씬 더 많은 100-200 주문? 그리고 MT5의 다른 100-200 주문은 무엇입니까? 그것은 MT5에 있는 100-200개의 거래 상품입니다! 결국, 1개의 악기에 대해 1개의 주문만 열 수 있습니다.

그리고 나는 28 개의 악기에 대한 많은 주문 을 축적하고 동시에 부분적으로 잠금 장치를 사용합니다!

질문의 주제에 대해 제안할 것이 있습니다. 감사할 것이지만 질문과 관련이 없는 것을 조언하는 것은 불필요하고 건설적이지 않습니다!

 
C-4 :

Expert Advisor에서 스크립트를 실행하는 것은 불가능합니다. 여러 전문가로부터 동시에 여러 요청을 서버에 보내는 것이 실제로 가능합니다. 여러 Expert Advisor를 동기화하면 실제로 성능이 약간 향상될 수 있습니다.

하지만 내가 너라면 열린 문에 이마를 부딪히지 않을 것이다. MetaTrader5로 전환하는 것이 좋습니다. 몇 초 안에 100-200개 주문의 놀라운 속도로 위치를 일괄 처리할 수 있는 OrderSendAsync 기능이 있습니다.


영형! Vasily, 여기 내 질문에 대해 pliz를 확인하십시오. 감사합니다.

 
R0MAN :
영형! Vasily, 여기 내 질문에 대해 pliz를 확인하십시오. 감사합니다.

여기요! 나는 보았다. 불행히도 나는 그런 오류를 본 적이 없습니다. 마음에 떠오르는 유일한 것은 테스터의 기록 폴더를 확인하는 것입니다(예: y:\MetaTrader 5\tester\bases\AdmiralMarkets-MT5\history\). 필요한 기호에 대한 파일이 없으면 기본 디렉토리 y:\MetaTrader 5\Bases\AdmiralMarkets-MT5\에서 데이터를 수동으로 복사하고 테스터를 다시 시작하십시오. 지금까지 다른 아이디어는 없습니다.

추신 이 모든 것이 이상하지만. 테스터는 자동으로 기록을 복사해야 합니다. 하지만 당신은 절대 모릅니다.

 
C-4 :
여기요! 나는 보았다. 불행히도 나는 그런 오류를 본 적이 없습니다. 마음에 떠오르는 유일한 것은 테스터의 기록 폴더를 확인하는 것입니다(예: y:\MetaTrader 5\tester\bases\AdmiralMarkets-MT5\history\). 필요한 기호에 대한 파일이 없으면 기본 디렉토리 y:\MetaTrader 5\Bases\AdmiralMarkets-MT5\에서 데이터를 수동으로 복사하고 테스터를 다시 시작하십시오. 지금까지 다른 아이디어는 없습니다.
덕분에. 캠프에 와서 처리하겠습니다 ... 이제 모바일에서.
 
Novikov :

그리고 여기 MT5와 훨씬 더 많은 100-200 주문? 그리고 MT5의 다른 100-200 주문은 무엇입니까? 그것은 MT5에 있는 100-200개의 거래 상품입니다! 결국, 1개의 악기에 대해 1개의 주문만 열 수 있습니다.

그리고 나는 28 개의 악기에 대한 많은 주문 을 축적하고 동시에 부분적으로 잠금 장치를 사용합니다!

질문의 주제에 대해 제안할 것이 있습니다. 감사할 것이지만 질문과 관련이 없는 조언을 하는 것은 불필요하고 건설적이지 않습니다!

다시 한 번(주의 깊게 읽으십시오):

MetaTrader4에서는 순서대로만 주문을 마감할 수 있습니다. 이러한 이유로 MetaTrader4에서 일괄 주문을 마감하는 데 걸리는 시간은 중요하며 사소한 방법으로 줄일 수 없습니다. 그러나 여러 Expert Advisor를 각각 자신의 차트에 업로드하여 서로 정보를 교환하고 공통 명령으로 주문을 마감할 수 있도록 만들 수 있습니다. 각 Expert Advisor는 자체 도구에 대해서만 주문을 마감합니다. MetaTrader4에는 여러 거래 흐름이 있기 때문에 서로 차단하지 않고 서로 병렬로 주문을 보내므로 전체 속도가 크게 향상됩니다. 그러나 그러한 전문가 풀을 구성하는 것은 어려운 일이며 귀하의 지식 수준으로 볼 때 그런 조언은 하지 않겠습니다.

여전히 내가 너무 많은 bukuff를 작성했다고 생각되면 다음과 같이 간단히 요약합니다.

1. 귀하의 질문에 대한 답변은 부정적이며 전문가로부터 스크립트를 실행할 수 없습니다.

2. 복잡한 방법을 사용하지 않고 MetaTrader4에서 거래 주문 실행 속도를 높이는 것은 불가능합니다.

3. 귀하의 질문에 대한 일반적인 솔루션은 MetaTrader4에서 사용할 수 없는 OrderSendAsync 기능을 통해서만 가능합니다.

사유: