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

 
Konstantin Nikitin :

따라서 클래스에서 필요한 기능을 가져와서 직접 작성하십시오.

고맙습니다. 내 질문은 훨씬 간단합니다. OrderSend(request,result)를 통해 주문을 열었고 매개변수를 즉시 사용하고 싶습니다(예: 인쇄). 이와 같이:
 //============================================================
         //--- declare and initialize the trade request and result of trade request
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         //--- parameters of request
        request.action   = TRADE_ACTION_DEAL ;     // type of trade operation
        request.symbol   = Pair1;                 // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;             // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
   //===================================      
         if ( OrderSend (request,result))
                
        Print ( "retcode = " + retcode + "; " );        
         Print ( "deal = " + deal + "; " );
         Print ( "order = " + order + "; " ); 
         Print ( "volume = " + volume + "; " );  
         Print ( "price = " + price + "; " )
retcode, 주문 및 볼륨과 같은 일부 매개변수가 표시되지만 거래 및 가격은 표시되지 않습니다.
특히 가격에 관심이 많습니다. 모든 결과는 MqlTradeResult 에 있습니다. 같은 방식으로 인쇄하지만 무언가가 표시되지만 무언가가 표시되지 않습니다. 문제는 일부 매개변수가 표시되고 다른 매개변수는 표시되지 않는 이유입니다.
 

배열을 병합하는 방법?

 string eData[][ 50 ][ 3 ];
string bData[][ 20 ][ 5 ];
 ArrayCopy (eData,bData, ArraySize (eData)); // error: incompatible 3 arrays ranges for ArrayCopy function (50 and 20)

ArrayCopy 는 1차원 배열만 복사한다는 것을 알고 있습니까?

 
Vitaly Muzichenko :

배열을 병합하는 방법?

ArrayCopy 는 1차원 배열만 복사한다는 것을 알고 있습니까?

아니요, ArrayCopy 는 mql5\4에서 허용되는 모든 어레이를 복사합니다. 그러나 복사하려면 동일해야 합니다. 첫 번째 배열의 두 번째 차원에서는 50을 얻고 두 번째 배열에서는 20만 얻습니다. 세 번째 차원에서도 마찬가지입니다.
 
Algotrader18 :
고맙습니다. 내 질문은 훨씬 간단합니다. OrderSend(request,result)를 통해 주문을 열었고 매개변수를 즉시 사용하고 싶습니다(예: 인쇄). 다음과 같이: retcode, 주문 및 볼륨과 같은 일부 매개변수가 표시되지만 거래 및 가격은 표시되지 않습니다.
특히 가격에 관심이 많습니다. 모든 결과는 MqlTradeResult 에 있습니다. 같은 방식으로 인쇄하지만 무언가가 표시되지만 무언가가 표시되지 않습니다. 문제는 일부 매개변수가 표시되고 다른 매개변수는 표시되지 않는 이유입니다.
 //============================================================
         //--- declare and initialize the trade request and result of trade request
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         //--- parameters of request
        request.action   = TRADE_ACTION_DEAL ;     // type of trade operation
        request.symbol   = Pair1;                 // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;             // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
   //===================================      
         if (! OrderSend (request,result))
           return ;
                
         Print ( "retcode = " + result. retcode + "; " );        
         Print ( "deal = " + result. deal + "; " );
         Print ( "order = " + result. order + "; " ); 
         Print ( "volume = " + result. volume + "; " );  
         Print ( "price = " + result. price + "; " );
 
Konstantin Nikitin :

처음에는 그랬다.

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

초보자의 질문 MQL5 MT5 MetaTrader 5

알고트레이더18 , 2018.10.25 07:39

안녕하세요!

위치를 열고 다음과 같이 MqlTradeResult 의 내용을 인쇄하고 싶습니다.


   //--- declare and initialize the trade request and result of trade request
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         //--- parameters of request
        request.action   = TRADE_ACTION_DEAL ;     // type of trade operation
        request.symbol   = Pair1;                 // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;             // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
 //============================================================     
         if ( OrderSend (request,result))       
         Print ( "result.retcode = " + result .retcode + "; " );        
         Print ( "deal = " + result .deal + "; " );
         Print ( "order = " + result .order + "; " ); 
         Print ( "volume = " + result .volume + "; " );  
         Print ( "price = " + result .price + "; " );

result.retcode, 주문 및 볼륨이 출력되는 반면 거래 및 가격은 항상 0입니다.
말해줘, 제발, 내가 뭘 잘못하고 있니?

다음 코드에서 손실된 이유는... 질문...

하지만 반품은 제 생각에 받아들일 수 없습니다. 결국, 이 인장은 다음 틱에 있을 것입니다.

 
Alexey Viktorov :
하지만 반품은 제 생각에 받아들일 수 없습니다. 결국, 이 인장은 다음 틱에 있을 것입니다.

학습 주문 보내기

반환 값

구조의 기본 검사(포인터 검사)가 성공한 경우 true가 반환 됩니다. 이는 거래 작업의 성공적인 실행을 나타내지 않습니다 . 함수 실행 결과에 대한 자세한 설명을 얻으려면 결과 구조의 필드를 분석해야 합니다 .

기본 수표를 통과한 경우에만 인쇄합니다. 모두 같은 눈금에 있습니다. 그래서 내가 쓴
         if ( ! OrderSend (request,result))
           return ;
 
Konstantin Nikitin :

학습 주문 보내기

기본 수표를 통과한 경우에만 인쇄합니다. 모두 같은 눈금에 있습니다. 그래서 내가 쓴
응. 그리고 여기 ! 나는 보지 못했다. 나는 고백한다...
 
Alexey Viktorov :

처음에는 그랬다.

다음 코드에서 손실된 이유는... 질문...

하지만 반품은 제 생각에 받아들일 수 없습니다. 결국, 이 인장은 다음 틱에 있을 것입니다.

다음을 포함하여 다양한 옵션을 시도했습니다.

        ulong   deal;
         ulong   order;
         double volume;
         double price;    
          
 //============================================================
         //--- declare and initialize the trade request and result of trade request
         MqlTradeRequest request={ 0 };
         MqlTradeResult   result={ 0 };
         //--- parameters of request
        request.action   = TRADE_ACTION_DEAL ;     // type of trade operation
        request.symbol   = Pair1;                 // symbol
        request.volume   = lots;                 // volume of lot
        request.type     = oper;                 // order type
        request.price    = priceOpen;             // price for opening
        request.deviation= Slippage;             // allowed deviation from the price
        request.magic    = magic;   
   //===================================      
         if ( OrderSend (request,result))

        retcode = result.retcode;
        deal = result.deal;
        order = result.order;
        volume = result.volume;
        price = result.price;
       
      
         Print ( "retcode = " + retcode + "; " );        
         Print ( "deal = " + deal + "; " );
         Print ( "order = " + order + "; " ); 
         Print ( "volume = " + volume + "; " );  
         Print ( "price = " + price + "; " );

실수로 모든 것이 아니라 질문에 복사했습니다 ...

 
Algotrader18 :

다음을 포함하여 다양한 옵션을 시도했습니다.

실수로 모든 것이 아니라 질문에 복사했습니다 ...

fxsaber는 한 번 이 문제로 어려움을 겪었습니다. 무슨 일이 있었는지 몰라, 관심이 없었습니다. OnTradeTransaction 에서 이러한 모든 매개변수를 얻는 것이 더 쉽습니다.
 
Rustam Esedulaev :
안녕하세요!
mql 4에는 IsTradeContedtBusy와 같은 수표가 있습니다.
mql 5에 비슷한 것이 있습니까?
고맙습니다!

아무것도 없습니다. MT5는 다중 스레드입니다.