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

 
Tapochun :
코드에 열거형을 추가해야 합니다.

코드 예제는 어떻습니까?

 extern string Variant                = "One, Two, Three" ;

다음과 같이 보이게 하기 위해 추가해야 할 사항:


 
Tapochun :
오류 코드 ?


130 손절매는 변하지 않는다
 
Sergei Konoplev :

코드 예제는 어떻습니까?

다음과 같이 보이게 하기 위해 추가해야 할 사항:

 // На глобальном уровне
enum MY_ENUM
{
 ONE,     // One
 TWO,     // Two
 THREE   // Three
};

input MY_ENUM Variant = ONE;
 
Leanid Aladzyeu :

stoplevel은 특히 int 이후로 stop을 계산하는 데 그다지 좋은 옵션이 아닙니다.

 130 :     "Слишком близкие стопы или неправильно рассчитанные или ненормализованные цены в стопах (или в цене открытия отложенного ордера)."

더 쉽게 지정

노력하다:

 double CALC_SL= 25 ; //величина стоп-лосса в пунктах
double severs_min_stop = CALC_SL*MarketInfo(symbol,MODE_POINT);
 
Leanid Aladzyeu :
설정 중 이전 정지, 수신 정지 등을 출력합니다.
 
Leanid Aladzyeu :

실수는 어디에 있습니까?

 //+------------------------------------------------------------------+
   double CorrectStopLoss( string sy, int op, double price_set, double stop_loss) {
       if (stop_loss== 0 ) return ( 0 );
       double pt= SymbolInfoDouble (sy, SYMBOL_POINT );
       double price=(op==OP_BUY)? SymbolInfoDouble (sy, SYMBOL_BID ):(op==OP_SELL)? SymbolInfoDouble (sy, SYMBOL_ASK ):price_set;
       int lv=StopLevel(sy), dg=( int ) SymbolInfoInteger (sy, SYMBOL_DIGITS );
       if (op==OP_BUY || op==OP_BUYLIMIT || op==OP_BUYSTOP) return ( NormalizeDouble ( fmin (price-(lv+ 1 )*pt,stop_loss),dg));
       else return ( NormalizeDouble ( fmax (price+(lv+ 1 )*pt,stop_loss),dg));
   }
//+------------------------------------------------------------------+
   double CorrectStopLoss( string sy, int op, double price_set, int stop_loss) {
       if (stop_loss== 0 ) return ( 0 );
       double pt= SymbolInfoDouble (sy, SYMBOL_POINT );
       double price=(op==OP_BUY)? SymbolInfoDouble (sy, SYMBOL_BID ):(op==OP_SELL)? SymbolInfoDouble (sy, SYMBOL_ASK ):price_set;
       int lv=StopLevel(sy), dg=( int ) SymbolInfoInteger (sy, SYMBOL_DIGITS );
       if (op==OP_BUY || op==OP_BUYLIMIT || op==OP_BUYSTOP) return ( NormalizeDouble ( fmin (price-(lv+ 1 )*pt,price-stop_loss*pt),dg));
       else return ( NormalizeDouble ( fmax (price+(lv+ 1 )*pt,price+stop_loss*pt),dg));
   }
//+------------------------------------------------------------------+
   double CorrectTakeProfit( string sy, int op, double price_set, double take_profit) {
       if (take_profit== 0 ) return ( 0 );
       double pt= SymbolInfoDouble (sy, SYMBOL_POINT );
       double price=(op==OP_BUY)? SymbolInfoDouble (sy, SYMBOL_BID ):(op==OP_SELL)? SymbolInfoDouble (sy, SYMBOL_ASK ):price_set;
       int lv=StopLevel(sy), dg=( int ) SymbolInfoInteger (sy, SYMBOL_DIGITS );
       if (op==OP_BUY || op==OP_BUYLIMIT || op==OP_BUYSTOP) return ( NormalizeDouble ( fmax (price+(lv+ 1 )*pt,take_profit),dg));
       else return ( NormalizeDouble ( fmin (price-(lv+ 1 )*pt,take_profit),dg));
   }
//+------------------------------------------------------------------+
   double CorrectTakeProfit( string sy, int op, double price_set, int take_profit) {
       if (take_profit== 0 ) return ( 0 );
       double pt= SymbolInfoDouble (sy, SYMBOL_POINT );
       double price=(op==OP_BUY)? SymbolInfoDouble (sy, SYMBOL_BID ):(op==OP_SELL)? SymbolInfoDouble (sy, SYMBOL_ASK ):price_set;
       int lv=StopLevel(sy), dg=( int ) SymbolInfoInteger (sy, SYMBOL_DIGITS );
       if (op==OP_BUY || op==OP_BUYLIMIT || op==OP_BUYSTOP) return ( NormalizeDouble ( fmax (price+(lv+ 1 )*pt,price+take_profit*pt),dg));
       else return ( NormalizeDouble ( fmin (price-(lv+ 1 )*pt,price-take_profit*pt),dg));
   }
//+------------------------------------------------------------------+
   int StopLevel( string sy) {
       int sp=( int ) SymbolInfoInteger (sy, SYMBOL_SPREAD );
       int lv=( int ) SymbolInfoInteger (sy, SYMBOL_TRADE_STOPS_LEVEL );
       return ((lv== 0 )?sp* 2 :lv);
      }
//+------------------------------------------------------------------+
 

나는 인터넷에서 손절매를 평준화합니다(더 쉽고 안정적이지는 않지만)

ZigZag 표시기 값을 얻는 방법은 무엇입니까? 도움말에서 찾지 못했습니다.

 
Leanid Aladzyeu :

나는 인터넷에서 손절매를 평준화합니다(더 쉽고 안정적이지는 않지만)

ZigZag 표시기 값을 얻는 방법은 무엇입니까? 도움말에서 찾지 못했습니다.

아이커스텀을 통해
 
new-rena : if (prevTime!=iTime( Symbol (), PERIOD_M5 , 0 , 0 ))

수고했습니다 - 함수에 추가 0이 작성되었습니다.

지금 시도하겠습니다 - 감사합니다.

 
Tapochun :
0을 OrdersHistoryTotal()-1로 교체
매우 감사합니다!
사유: