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

 
Alexey Kozitsyn :

ENUM_TIMEFRAMES 열거형 변수를 사용하십시오.

고맙습니다!
 
Alexey Kozitsyn :

ENUM_TIMEFRAMES 열거형 변수를 사용하십시오.

열거에 모든 자부심 중 일부만 남겨 둘 수 있습니까? 설정에서 매개변수를 선택하면 예를 들어 두 개만 표시됩니다.
 
barudkinarseniy :
열거에 모든 자부심 중 일부만 남겨 둘 수 있습니까? 설정에서 매개변수를 선택하면 예를 들어 두 개만 표시됩니다.

할 수 있지만 자신의 열거를 작성해야 합니다.

enum ENUM_ORDER_TYPE
{
   Buy  = ORDER_TYPE_BUY ,
   Sell = ORDER_TYPE_SELL
};

input ENUM_ORDER_TYPE typeOrder; // Выбери тип ордера

mql4의 경우 ORDER_TYPE_BUY 대신 Sell에 대해 각각 OP_BUY를 작성해야 합니다.

 
Alexey Viktorov :

가능하지만 직접 열거형을 작성해야 합니다.

mql4의 경우 ORDER_TYPE_BUY 대신 Sell에 대해 각각 OP_BUY를 작성해야 합니다.

모든 것을 이해했습니다 감사합니다))
 
올렉키릴 :

오류를 극복하는 방법을 알려주세요

주문 수정 #1506271459 0.11 EURJPY at 122.824 sl: 0.000 tp: 0.000 -> sl: 0.000 tp: 122.843 실패 [잘못된 S/L 또는 T/P]


 
Karputov Vladimir :
올렉키릴 :

오류를 극복하는 방법을 알려주세요

주문 수정 #1506271459 0.11 EURJPY at 122.824 sl: 0.000 tp: 0.000 -> sl: 0.000 tp: 122.843 실패 [잘못된 S/L 또는 T/P]


발생하는 것에 따라 다르며, 스톱이 최소값보다 작게 설정되어 있고 터미널이 제로 스톱 레벨을 반환하면 어렵습니다. 가격 단계에 문제가 있는 경우 이 기능을 사용합니다.

 double normalize( string symbol, double value )
  {
   double ts=SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE);
   if (ts== 0 ) return ( value );
   return (NormalizeDouble( value /ts, 0 )*ts);
  }

위치를 열 때 사용의 예

   if (type== ORDER_TYPE_BUY )
     {
       double ask= SymbolInfoDouble ( _Symbol , SYMBOL_ASK );
       if ( NormalizeDouble (normalize( _Symbol ,ask),digits)!= NormalizeDouble (ask,digits)) return ;
      trade.Buy(volume, _Symbol , 0 , 0 , 0 ,CommentOrder);
     }

수정 시 사용 예

         if ( PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY )
           {
            sl= NormalizeDouble (normalize(symbol,bid-sl*point),digits);
            tp= PositionGetDouble ( POSITION_TP );
             //Print(__FUNCTION__,": sl = ",sl," tp = ",tp);
             if (sl> 0 )trade.PositionModify(tiket,sl,tp);
           }

..

 
감사합니다, 시도하겠습니다
 
mql5에 대해 mql4와 달리 TimeLocal()이 새 눈금/새 차트 이동/차트 확대 /축소 변경으로만 변경되고 연속적으로 변경되지 않는 이유는 무엇입니까? GetTickCount 및 GetMicrosecondCount와 유사합니다. "시계" TimeLocal이 "차기"와 틱 없이 균일하고 지속적으로 작동하도록 할 수 있습니까?
 
드림11 :

좋은 하루, 그런 문제 .. 후행 정지 기능이 있습니다 ...

   double tr= 0 ,MATrall= 0 ,op= 0 ,sl= 0 ,
   ask   = NormalizeDouble ( Ask , Digits ()),
   bid   = NormalizeDouble ( Bid , Digits ());
   tr = NormalizeDouble (TrailingStop* Point (), Digits ());
   MATrall = iMA ( NULL , 0 , 13 , 0 , MODE_SMMA , PRICE_MEDIAN , 1 );
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS )== true )
        {
         if ( OrderSymbol ()== Symbol ())
           {
             if ( OrderMagicNumber ()==Magic)
              {
              op    = NormalizeDouble ( OrderOpenPrice (), Digits ());
              sl    = NormalizeDouble ( OrderStopLoss (), Digits ());
                 if ( OrderType ()== OP_BUY )
                 {
                 if ((bid-op)>tr)
                 if ((bid-sl)>tr)
                 if ((bid-tr)>MATrall)
                 if ( OrderModify ( OrderTicket (), OrderOpenPrice (), NormalizeDouble (MATrall, Digits ()), OrderTakeProfit (), 0 , clrRed )== false )
                 printf ( "ERROR BUY Modifi" );
                 }
                   if ( OrderType ()== OP_SELL )
                 {
                 if ((op-ask)>tr)
                 if ((sl-ask)>tr || sl== 0 )
                 if ((ask+tr)<MATrall)
                 if ( OrderModify ( OrderTicket (), OrderOpenPrice (), NormalizeDouble (MATrall, Digits ()), OrderTakeProfit (), 0 , clrRed )== false )
                 printf ( "ERROR SELL Modifi" );
                 }
              }
           }
        }
     }

하나가 아닌 무제한의 주문이 추적되도록 리메이크하는 방법 ...


 
loleg1991 :
mql5에 대해 mql4와 달리 TimeLocal()이 새 눈금/새 차트 이동/차트 확대 /축소 변경으로만 변경되고 연속적으로 변경되지 않는 이유는 무엇입니까? GetTickCount 및 GetMicrosecondCount와 유사합니다. "시계" TimeLocal이 "킥"과 틱 없이 균일하고 지속적으로 작동하도록 할 수 있습니까?
OnTimer()를 통해 가능하지 않습니까?