Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 425

 
Tapochun :
Numaralandırmanızı koda eklemeniz gerekir.

Bir kod örneğine ne dersiniz?

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

Böyle görünmesi için eklenmesi gerekenler:


 
Tapochun :
Hata kodu ?


130 stoploss değişmez
 
Sergei Konoplev :

Bir kod örneğine ne dersiniz?

Böyle görünmesi için eklenmesi gerekenler:

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

input MY_ENUM Variant = ONE;
 
Leanid Aladzyeu :

stoplevel, özellikle int olduğundan, stop'u hesaplamak için çok iyi bir seçenek değildir.

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

belirtmek daha kolay

denemek:

 double CALC_SL= 25 ; //величина стоп-лосса в пунктах
double severs_min_stop = CALC_SL*MarketInfo(symbol,MODE_POINT);
 
Leanid Aladzyeu :
Ayar sırasında önceki durağı, alınan durağı vb. yazdırın.
 
Leanid Aladzyeu :

Hata nerede?

 //+------------------------------------------------------------------+
   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);
      }
//+------------------------------------------------------------------+
 

İnternetteki stoploss'ları seviyelendiriyorum (daha güvenilir olmasa da daha kolay)

ZigZag gösterge değeri nasıl alınır? Yardımda bulamadım.

 
Leanid Aladzyeu :

İnternetteki stoploss'ları seviyelendiriyorum (daha güvenilir olmasa da daha kolay)

ZigZag gösterge değeri nasıl alınır? Yardımda bulamadım.

iCustom aracılığıyla.
 
new-rena : if (prevTime!=iTime( Symbol (), PERIOD_M5 , 0 , 0 ))

Ben uğraştım - fonksiyona fazladan bir sıfır yazıldı.

Şimdi deneyeceğim - teşekkürler.

 
Tapochun :
0'ı OrdersHistoryTotal()-1 ile değiştirin
Çok teşekkürler!