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

 
C-4 :

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

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

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

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

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

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

자세한 답변 정말 감사합니다! 괜찮으시다면 이 아이디어에 대한 생각을 공유하세요.

총 이익으로 모든 주문을 마감하는 Expert Advisor에 추가, 주문 정렬을 위한 2개의 매개변수:
(1 매개변수 - 1-마법에 따라 내림차순 또는 2-오름차순으로 정렬 및 2 - 0-판매 및 구매, 1-판매 주문, 2-구매 주문)
1개의 계정과 한 쌍의 1개의 공통 차트가 있는 4개의 터미널을 열어 눈금이 일치하도록 하고 1-1, 1-2, 2-1, 2-2와 같은 다른 매개변수를 설정합니다.
이렇게 하면 최소 마법 판매, 최소 마법 구매, 최대 마법 판매, 최대 마법 구매의 4가지 스트림으로 분류됩니다.

아니면 내가 또 바보인가? 그리고 예, 당신은 내 지식 수준에 대해 정확합니다!

 
Novikov :

자세한 답변 정말 감사합니다! 괜찮으시다면 이 아이디어에 대한 생각을 공유하세요.

총 이익으로 모든 주문을 마감하는 Expert Advisor에 추가, 주문 정렬을 위한 2개의 매개변수:
(1 매개변수 - 1-마법에 따라 내림차순 또는 2-오름차순으로 정렬 및 2 - 0-판매 및 구매, 1-판매 주문, 2-구매 주문)
1개의 계정과 한 쌍의 1개의 공통 차트가 있는 4개의 터미널을 열어 눈금이 일치하도록 하고 1-1, 1-2, 2-1, 2-2와 같은 다른 매개변수를 설정합니다.
이렇게 하면 최소 마법 판매, 최소 마법 구매, 최대 마법 판매, 최대 마법 구매의 4가지 스트림으로 분류됩니다.

아니면 내가 또 바보인가? 그리고 예, 당신은 내 지식 수준에 대해 정확합니다!

예, 할 수 있습니다. 그러나 여러 터미널을 실행할 필요가 없습니다. 하나의 터미널을 실행하면 4개의 창이 있습니다. 각 창에 같은 로봇을 걸어보세요. 이 로봇의 매개변수 중 하나로 1-4의 숫자를 사용합니다. 저것들. 첫 번째 창에서 1, 두 번째 창에서 2와 같은 매개변수를 가진 로봇을 매달아 놓습니다. 주문을 마감할 시간이 되면 각 로봇은 선택한 주문 의 마법과 매개변수의 마법을 비교하여 닫습니다. 다른 전문가가 마감할 수 있도록 다른 마법이 포함된 명령이 제공됩니다.
 
C-4 :
예, 할 수 있습니다. 그러나 여러 터미널을 실행할 필요가 없습니다. 하나의 터미널을 실행하면 4개의 창이 있습니다. 각 창에 같은 로봇을 걸어두세요 . 이 로봇의 매개변수 중 하나로 1-4의 숫자를 사용합니다. 저것들. 첫 번째 창에서 1, 두 번째 창에서 2와 같은 매개변수를 가진 로봇을 매달아 놓습니다. 주문을 마감할 시간이 되면 각 로봇은 선택한 주문 의 마법과 매개변수의 마법을 비교하여 닫습니다. 다른 전문가가 마감할 수 있도록 다른 마법이 포함된 명령이 제공됩니다.

mt5 포럼에서 내가 처음에 4개의 창을 고려했다는 사실에 대해 당신이 제안한 대로 한 프로그래머가 저에게 대답했습니다. “단 하나의 터미널만 있습니다. 서버에 액세스하기 위한 터미널에는 터미널에서 실행되는 모든 어드바이저와 스크립트가 사용하는 하나의 요청 크기인 하나의 작은 "구멍"만 있습니다. 그리고 하나의 요청이 처리될 때까지 아무도 서버에 액세스할 수 없습니다.

그렇다면 하나의 터미널에 4개의 차트 또는 여전히 4개의 터미널이 있는 것이 어떻게 더 좋고 더 정확할까요?

 
Novikov :

mt5 포럼에서 내가 처음에 4개의 창을 고려했다는 사실에 대해 당신이 제안한 대로 한 프로그래머가 저에게 대답했습니다. “단 하나의 터미널만 있습니다. 서버에 액세스하기 위한 터미널에는 터미널에서 실행되는 모든 어드바이저와 스크립트가 사용하는 하나의 요청 크기인 하나의 작은 "구멍"만 있습니다. 그리고 하나의 요청이 처리될 때까지 아무도 서버에 액세스할 수 없습니다.

그렇다면 하나의 터미널에 4개의 차트 또는 여전히 4개의 터미널이 있는 것이 어떻게 더 좋고 더 정확할까요?

당신은이 "프로그래머"의 대답에 대해 스스로 생각합니다. 이 경우 하나의 터미널에서 여러 Expert Advisors와 거래하는 것은 불가능합니다. 그들은 끊임없이 컨텍스트를 바쁘게 만들 것입니다. 서로를 차단할 것입니다. 이전에 MT4의 얽히고 설킨 버전에는 실제로 그런 실수가 있었고 실행할 수 있었지만 지금은 내가 아는 한 제거되었습니다. 이제는 관련이 없기 때문입니다. MT4에서 주문 실행의 다중 스레딩은 상당히 확장되었으며 오랫동안 확장되었습니다.

어쨌든 전문가 중 일부를 다른 터미널로 옮기는 것이 어렵지 않다면 내가 조언 한대로 작성하십시오.

 
Novikov :

mt5 포럼에서 내가 처음에 4개의 창을 고려했다는 사실에 대해 당신이 제안한 대로 한 프로그래머가 저에게 대답했습니다. “단 하나의 터미널만 있습니다. 서버에 액세스하기 위한 터미널에는 터미널에서 실행되는 모든 어드바이저와 스크립트가 사용하는 하나의 요청 크기인 하나의 작은 "구멍"만 있습니다. 그리고 하나의 요청이 처리될 때까지 아무도 서버에 액세스할 수 없습니다.

그렇다면 하나의 터미널에 4개의 차트 또는 여전히 4개의 터미널이 있는 것이 어떻게 더 좋고 더 정확할까요?

그런 "프로그래머"를 어디에서 찾을 수 있습니까?
 

친애하는 또 다른 질문입니다. OrderCloseBy 기능이 대량 주문을 신속하게 마감하는 데 도움이 될까요?

예: 주어진 이익에 도달하면 1쌍의 주문을 추가로 열어 매수 및 매도 주문의 로트 크기를 균등화한 다음 "닫힌 주문 마감"을 시작합니다.

따옴표는 5자리입니다.

 

남자들은이 문제에 대해 나에게 말합니다. 아마도 조직적인 성격 일 것입니다. 표시 코드를 표시할 수 없습니다. 올바르게 작성되었으며 모든 것이 이전에 테스트되었습니다.

질문의 시작은 https://www.mql5.com/ru/forum/6343/page323 입니다.

MQ 사이트에서 터미널을 설치했습니다. 기본적으로 알프스 데모 서버가 제공되었습니다. 결과적으로 Eurobucks에서 테스트를 시작할 때:

내가 알기로는 이것은 파운드-달러의 데이터 기대치입니다. 거래는 어디에도 열리지 않습니다.

또한 파운드 달러로 시작할 때 다음과 같이 씁니다.

USDJPY에 대한 보류 중인 데이터입니다.

 

그리고 USDJPY에서 시작할 때만 데이터를 기다리지 않습니다. 하지만 동시에 거래는 아직 열리지 않습니다.

코드에서 거래를 열기 위한 쌍을 명시적으로 지정하지 않았습니다. 예를 들어

모든 _Symbol에 대한 모든 것입니다. 그리고 여기서 요점은 오픈 오더의 문제가 아니라... 그 이유는 무엇일까요? 덕분에.

 for ( int i= 0 ;i< 10 ;i++)
     {
      volume= NormalizeDouble (volume, 1 );
       if (volume<= 0 ) break ;
       if (Type== POSITION_TYPE_SELL )
        {
         request.type= ORDER_TYPE_SELL ;
         request.price= SymbolInfoDouble ( _Symbol , SYMBOL_BID );
         if (TP!= 0 ) takeprofit = request.price-TP* _Point ;
         if (SL!= 0 ) stoploss = request.price+SL* _Point ;
        }
       if (Type== POSITION_TYPE_BUY )
        {
         request.type= ORDER_TYPE_BUY ;
         request.price= SymbolInfoDouble ( _Symbol , SYMBOL_ASK );
         if (TP!= 0 ) takeprofit = request.price+TP* _Point ;
         if (SL!= 0 ) stoploss = request.price-SL* _Point ;
        }
      request.action = TRADE_ACTION_DEAL ;
      request.symbol = _Symbol ;
      request.volume = MathMin (volume, SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_MAX ));
      request.sl = stoploss;
      request.tp = takeprofit;
      request.deviation= SymbolInfoInteger ( _Symbol , SYMBOL_SPREAD );
      request.type_filling= ORDER_FILLING_FOK ;
      request.comment= " " ; //DoubleToString(Money,2)+"$";
       if (! OrderCheck (request,check))
        {
         if (check.margin_level< 100 ) volume-= SymbolInfoDouble ( _Symbol , SYMBOL_VOLUME_STEP );
 

또한 모든 것이 올바르게 작성되고 핸들 및 기타 모든 것이 표시되고 표시기가 각 도구에 가중치를 할당하므로 결과적으로 클러스터 분석처럼 나타납니다. 테스터는 일하고 싶지 않습니다. 이유는 무엇입니까? 덕분에.

또한 에이전트가 제대로 작동하고 모든 것이 청구되고 시작할 준비가 되었습니다...


 
R0MAN :

또한 모든 것이 올바르게 작성되고 핸들 및 기타 모든 것이 표시되고 표시기가 각 도구에 가중치를 할당하므로 결과적으로 클러스터 분석처럼 나타납니다. 테스터는 일하고 싶지 않습니다. 이유는 무엇입니까? 덕분에.

또한 에이전트가 제대로 작동하고 모든 것이 청구되고 시작할 준비가 되었습니다...


서비스 데스크에 씁니다 . 그러나 그들은 코드를 제공해야 합니다.
사유: