3개월 전에 쓴 EA는 지금 전략 테스트를 통과할 수 없지만 2, 3개월 전에 잘 사용했습니다!! - 페이지 2

 
angevoyageur :
코드를 보여주시면 이 줄을 추가할 위치를 알려드릴 수 있습니다.

Bonsoir Angvoyageur,

여기 내 코드가 있습니다. 두 부분은 onTick 섹션에서 분리됩니다.

고맙습니다

비발디


       MqlTick latest_price;       // To be used for getting recent/latest price quotes
       MqlTradeRequest mrequest;   // To be used for sending our trade requests
       MqlTradeResult mresult;     // To be used to get our trade results
       MqlRates mrate[];           // To be used to store the prices, volumes and spread of each bar
       ZeroMemory (mrequest);       // Initialization of mrequest structure
   if (ConditionDICrossMain = - 1 )
     {
       if (Buy_opened)
        {
         return ;     // Don't open a new Buy Position
        }
      mrequest.action = TRADE_ACTION_DEAL ;                                   // immediate order execution
      mrequest.price = NormalizeDouble (latest_price.ask, _Digits );           // latest ask price
      mrequest.sl = NormalizeDouble (latest_price.ask - STP* _Point , _Digits ); // Stop Loss
      mrequest.tp = NormalizeDouble (latest_price.ask + TKP* _Point , _Digits ); // Take Profit
      mrequest.symbol = _Symbol ;                                             // currency pair
      mrequest.volume = Lot;                                                 // number of lots to trade
      mrequest.magic = EA_Magic;                                             // Order Magic Number
      mrequest.type = ORDER_TYPE_BUY ;                                         // Buy Order
      mrequest.type_filling = ORDER_FILLING_FOK ;                             // Order execution type
      mrequest.deviation= 100 ;                                                 // Deviation from current price
       //--- send order
        
       OrderSend (mrequest,mresult);
       // get the result code
       if (mresult.retcode== 10009 || mresult.retcode== 10008 ) //Request is completed or order placed
        {
         Alert ( "A Buy order has been successfully placed with Ticket#:" ,mresult.order, "!!" );
        }
       else
        {
         Alert ( "The Buy order request could not be COMPLETE -error:" , GetLastError ());
         ResetLastError ();           
         return ;
        }
     }
 
이 페이지 에서 오류가 계정 섹션에 있음을 알 수 있습니다. 다른 MT5와 다른 계정으로 시도했지만 동일한 메시지가 나타납니다.
 
Vivaldi :

Bonsoir Angvoyageur,

여기 내 코드가 있습니다. 두 부분은 onTick 섹션에서 분리됩니다.

고맙습니다

비발디


  • 오류가 있을 때 mresult.retcode의 값은 얼마입니까?
  • STP, TKP의 값은 무엇입니까?
  • OrderSend가 bool을 반환했습니다. 반환된 값도 확인 해야 합니다.
  • 나는 당신이 두 부분 사이에 무엇을 가지고 있지 않기 때문에 "mrequest.action=TRADE_ACTION_DEAL" 바로 앞에 ZeroMemory(mrequest)를 배치하는 것이 좋습니다.
 

로그에 메시지가 표시되지 않고 문제가 stop loss 에서 발생했다고 표시됩니다.

값이 0이면 훌륭하게 작동합니다. )

 
Vivaldi :

로그에 메시지가 표시되지 않으며 문제가 stop loss 에서 발생했다고 표시됩니다.

값이 0이면 훌륭하게 작동합니다. )

스톱레벨(SL 및 TP)의 경우 거래하는 기호의 STOP_LEVELS 값을 고려해야 합니다. 이 항목 을 참조하십시오.
 
angevoyageur :
  • 오류가 있을 때 mresult.retcode의 값은 얼마입니까?
  • STP, TKP의 값은 무엇입니까?
  • OrderSend가 bool을 반환했습니다. 반환된 값도 확인해야 합니다.
  • 나는 당신이 두 부분 사이에 무엇을 가지고 있지 않기 때문에 "mrequest.action=TRADE_ACTION_DEAL" 바로 앞에 ZeroMemory(mrequest)를 배치하는 것이 좋습니다.


Ange I get it working now :) 문제는 STP 변수에서 발생했습니다.

mr을 기쁘게 하려면 선언을 double 형식( int 대신)으로 변경해야 합니다. 더블 노멀라이즈.

감사해요

 double STP, TKP;
 

내가 실수하고 변수 선언을 변경해도 오류 메시지가 해결되지 않았습니다. 문제는 sl = tp를 만드는 0인 STP 및 TKP 변수에서 발생합니다.

 

추가할 필요가 있는지

 ZeroMemory (request);

빌드 975(x86)의 버그?

최근에 전략 테스트 중에 오류 4756 이 발생했고 위의 줄을 추가하여 수정했습니다.

 
k.doras :

추가할 필요가 있는지

빌드 975(x86)의 버그?

최근에 전략 테스트 중에 오류 4756 이 발생했으며 위의 줄을 추가하여 수정했습니다.

이 행은 필수(또는 요청 구조의 동등한 초기화)입니다.
 

안녕

데모 계정 으로 주문 작업을 보내는데 실제 계정에서 작동하지 않습니다(2014.11.30 18:21:00.062 55 (اخابر,D1) BuyA: 오류 4756, retcode = 10006)

{
//--- prepare the request
   MqlTradeRequest request;
   MqlTradeResult   result;
   MqlTradeCheckResult check;
   ZeroMemory (request);
   ZeroMemory (result);
   ZeroMemory (check);
   request.action= 5 ;
   request.symbol= _Symbol ;
   request.volume= 1000.00 ;
   request.price= 2652.000 ;
   request.stoplimit= 2652.000 ;
   request.sl= 0 ;
   request.tp= 0 ;
   request.type= 6 ;
   request.type_filling= 2 ;
   request.type_time= 0 ;
   request.expiration= 0 ;
   request.magic= 0 ;
   request.comment= "" ;

   if (! OrderSend (request,result))
     {
       Print ( __FUNCTION__ , ": error " , GetLastError (), ", retcode = " ,result.retcode);
     }
//---


Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Structure of Request Check Results
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Structure of Request Check Results
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Structure of Request Check Results - Reference on algorithmic/automated trading language for MetaTrader 5
사유: