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

 
Alexey Kozitsyn :

ENUM_TIMEFRAMES numaralandırma türü değişkenini kullanın.

Teşekkür ederim!
 
Alexey Kozitsyn :

ENUM_TIMEFRAMES numaralandırma türü değişkenini kullanın.

Numaralandırmadaki tüm gururlardan sadece birkaçını bırakmak mümkün mü? Öyle ki ayarlarda parametreleri seçtiğimde örneğin sadece iki tane görüyorum.
 
barudkinarseniy :
Numaralandırmadaki tüm gururlardan sadece birkaçını bırakmak mümkün mü? Öyle ki ayarlarda parametreleri seçtiğimde örneğin sadece iki tane görüyorum.

Mümkün, ancak kendi numaralandırmanızı yazmanız gerekiyor

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

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

mql4 için ORDER_TYPE_BUY yerine Sell için sırasıyla OP_BUY yazmanız gerekir.

 
Alexey Viktorov :

Yapabilirsin, ama kendi numaralandırmanı yazmalısın

mql4 için ORDER_TYPE_BUY yerine Sell için sırasıyla OP_BUY yazmanız gerekir.

her şeyi anladım teşekkürler))
 
OlegKirill :

Lütfen bana hatayı nasıl aşacağımı söyle

sipariş değişikliği #1506271459 122.824 sl'de 0.11 EURJPY satın al: 0.000 tp: 0.000 -> sl: 0.000 tp: 122.843 başarısız [Geçersiz S/L veya T/P]


 
Karputov Vladimir :
OlegKirill :

Lütfen bana hatayı nasıl aşacağımı söyle

sipariş değişikliği #1506271459 122.824 sl'de 0.11 EURJPY satın al: 0.000 tp: 0.000 -> sl: 0.000 tp: 122.843 başarısız [Geçersiz S/L veya T/P]


Durdurma minimumdan daha az ayarlanırsa, terminal sıfır durma düzeyi döndürürken ne olduğuna bağlıdır, o zaman zordur. Sorun fiyat adımındaysa, bu işlevi kullanıyorum.

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

pozisyon açarken kullanım örneği

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

değiştirirken kullanım örneği

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

..

 
teşekkürler, deneyeceğim
 
mql5 hakkında. Neden mql4'ün aksine TimeLocal() yalnızca yeni bir onay işareti / yeni grafik kaydırma / grafik yakınlaştırma değişikliği ile değişiyor ve sürekli olarak değişmiyor? GetTickCount ve GetMicrosecondCount ile benzer şekilde. Belki bir şekilde TimeLocal'ın "tekmeler" ve tikler olmadan eşit ve sürekli gitmesini sağlayabilirsiniz?
 
rüya11 :

İyi günler, böyle bir sorun .. takip eden bir durdurma işlevi var ...

   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" );
                 }
              }
           }
        }
     }

sadece bir tane değil, sınırsız sayıda siparişin takip edilmesi için nasıl yeniden yapılır ...


 
loleg1991 :
mql5 hakkında. Neden mql4'ün aksine TimeLocal() yalnızca yeni bir onay işareti / yeni grafik kaydırma / grafik yakınlaştırma değişikliği ile değişiyor ve sürekli olarak değişmiyor? GetTickCount ve GetMicrosecondCount ile benzer şekilde. Belki bir şekilde TimeLocal'ın "tekmeler" ve tikler olmadan eşit ve sürekli gitmesini sağlayabilirsiniz?
OnTimer() ile mümkün değil mi?