Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 226

 

Alexey, cevapların ve yardımın için teşekkürler.

Yeni soru, sekmeleri MT4'te bir grafikle çoğaltmak mümkün mü? Yani, her seferinde bir şablonla grafik parametrelerini ayarlamak değil, sekmeyi seçilen para birimiyle, zaman çerçevesiyle, grafik parametreleriyle tamamen kopyalamak. Böyle bir şey var mı yoksa yok mu?

 
Rustam Bikbulatov :

Denerim)

Savaş, ara, bul ve saklan!


ElenkaVladi :

Yeni soru

Evet, hiçbir şey için.

En basiti şablondur. Neden sevmiyorsun? Zaman çerçevesini, ölçeği, arka plan rengini, mum rengini belirledik, gerekli göstergeleri belirledik ve default.tpl olarak kaydettik. Artık yeni bir tablo açtığınızda her şey sizin için hazır.

 
Aleksei Stepanenko :


En basiti şablondur. Neden sevmiyorsun? Zaman çerçevesini, ölçeği, arka plan rengini, mum rengini belirledik, gerekli göstergeleri belirledik ve default.tpl olarak kaydettik. Artık yeni bir tablo açtığınızda her şey sizin için hazır.

Hayır, soru farklı görünüyor. Bir çizelge açarken ve hindi ayarlarken, kullanıcı ne TF'yi ne de sembolü bilir. Komut dosyasının bir karakter seçimine ve TF'ye ihtiyacı var. Eh, hindi aynı anda yüklenebilir veya bir şablon seçebilirsiniz.)

 
Aleksei Stepanenko :

Savaş, ara, bul ve saklan!


Evet, hiçbir şey için.

En basiti şablondur. Neden sevmiyorsun? Zaman çerçevesini, ölçeği, arka plan rengini, mum rengini belirledik, gerekli göstergeleri belirledik ve default.tpl olarak kaydettik. Artık yeni bir tablo açtığınızda her şey sizin için hazır.

Ah, işte böyle çalışıyor, default.tpl hakkında hiçbir düşünce yoktu. :))
 

@makssub , PM'de MQL4 kodunu, ardından bu kodu ister:

 #property strict
//+------------------------------------------------------------------+
void OnStart ()
{
   while (! IsStopped ())
   {
       int ticket = - 1 ;
       string ord_sym = "" ;
       int max_pips = INT_MIN ;
       for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
      {
         if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES) || OrderType() > OP_SELL) continue ;
         string _sym      = OrderSymbol();
         double sym_point = SymbolInfoDouble (_sym, SYMBOL_POINT );
         double sym_price = OrderType() == OP_BUY ? SymbolInfoDouble (_sym, SYMBOL_BID ) : SymbolInfoDouble (_sym, SYMBOL_ASK );
         int ord_pips     = fabs (PriceToInteger(OrderOpenPrice(), sym_point) - PriceToInteger(sym_price, sym_point));
         if (max_pips < ord_pips)
         {
            max_pips = ord_pips;
            ticket = OrderTicket();
            ord_sym = _sym;
         }
      }
       if (ticket < 0 ) Comment ( "" );
       else Comment ( "Max pips in order = " , max_pips, " , Symbol = " , ord_sym, " , ticket = " , ticket);
       Sleep ( 123 );
      RefreshRates();
   }
   Comment ( "" );
}
//+------------------------------------------------------------------+
int PriceToInteger( const double Price, const double point )
{
   return (( int )(Price / point + 0.1 ));
}
//+------------------------------------------------------------------+


biletle sipariş nasıl kapatılır, buraya bakın: https://www.mql5.com/ru/forum/131859

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Alexey Viktorov :

Eh, basit bir deyişle, o zaman şöyle:

Datetime türünde bir değişken oluşturuyoruz ve bunun içinde, kârlı bir siparişi kapatırken mevcut mum D1'in zamanını kaydediyoruz. Ve bir sonraki siparişi açmadan önce bu değişkenin değerini mevcut D1 mumunun açılış zamanı ile kontrol ediyoruz. Buna göre, geçerli saat daha uzunsa, açabilirsiniz. Aksi halde bambu tüttürürüz.

Örnek olarak gösterebilir misiniz, sadece söylediklerinizi uygulamak için yeterli deneyiminiz yok mu?
 
Herkese selam! MQL4 üzerine bir ders kitabı önerin, lütfen bugünle alakalı.
 
Nikolay Grigoryev :
Herkese selam! MQL4 üzerine bir ders kitabı önerin, lütfen bugünle alakalı.

sadece bir ders kitabı var, eski Kovaleva. Kısmen 2016'ya kadar bir yerde alakalı. Daha sonra 5'lerin çoğu 4ku'ya aktarıldı. Allah'a şükür düzen sistemi kaldı. Artık ders kitabı yok (ben bulamadım, eh, başkaları da bulamadı). Sadece burada makaleler ve internette arama yapın.

 
Valeriy Yastremskiy :

sadece bir ders kitabı var, eski Kovaleva. Kısmen 2016'ya kadar bir yerde alakalı. Daha sonra 5'lerin çoğu 4ku'ya aktarıldı. Allah'a şükür düzen sistemi kaldı. Artık ders kitabı yok (ben bulamadım, eh, başkaları da bulamadı). Sadece burada makaleler ve internette arama yapın.

Teşekkür ederim!

 

Basit bir gösterge yazdı. Sıfırdan geçerken tamponlarda değerler olmasına rağmen çizgi çizmez. Lütfen bana neyin yanlış olduğunu söyle.

 #property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 clrGreen
#property indicator_color2 clrRed

//---- input parameters
extern int     FastEMA= 12 ;  
extern int     SlowEMA= 26 ;  
extern int     Signal= 9 ;  

//---- buffers
double DiffBuffer_up[];
double DiffBuffer_dn[];
//
double MainBuffer[];
double SignalBuffer[];

ENUM_TIMEFRAMES TimeFrame;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   int     draw_begin= MathMax (FastEMA,SlowEMA);
   string short_name= "MACD Stephen" ;
   //---- indicators
   SetIndexStyle( 0 , DRAW_LINE );
   SetIndexBuffer ( 0 ,DiffBuffer_up);
   SetIndexStyle( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,DiffBuffer_dn);
   short_name= StringConcatenate (short_name, " (" +( string )FastEMA+ "," +( string )SlowEMA+ "," +( string )Signal+ ")" );
   IndicatorShortName(short_name);
   SetIndexDrawBegin( 0 ,draw_begin);
   SetIndexDrawBegin( 1 ,draw_begin);
   SetIndexLabel( 0 , "Up" );
   SetIndexLabel( 1 , "Down" );
   IndicatorDigits( 6 );
   SetLevelValue( 0 , 0 );
   
   TimeFrame=GetTF();
   
   return ( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{

   return ( 0 );
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
   int limit, iChart, iTF, delta= 0 ;
   datetime TimeArray[];
   //if(TimeFrame>Period()) delta=(int)MathCeil(TimeFrame/Period());
   int counted_bars=IndicatorCounted();
   //---- check for possible errors
   if (counted_bars< 0 ) return (- 1 );
   //---- the last counted bar will be recounted
   if (counted_bars> 0 ) counted_bars--;
  limit= Bars -counted_bars+delta;

  ArrayCopySeries(TimeArray,MODE_TIME, Symbol (),TimeFrame);
   ArraySetAsSeries (MainBuffer, true );
   ArraySetAsSeries (SignalBuffer, true );
   ArrayResize (MainBuffer,   100000 );
   ArrayResize (SignalBuffer, 100000 );
  
  iTF= 0 ;
   for (iChart= 0 ; iChart<limit; iChart++)
  {
       while (Time[iChart]<TimeArray[iTF]) iTF++;
      MainBuffer[iChart]= EMPTY_VALUE ;
      SignalBuffer[iChart]= EMPTY_VALUE ;
      MainBuffer[iChart]  = iMACD ( Symbol (),TimeFrame,FastEMA,SlowEMA,Signal, PRICE_CLOSE ,MODE_MAIN,iTF);
      SignalBuffer[iChart]= iMACD ( Symbol (),TimeFrame,FastEMA,SlowEMA,Signal, PRICE_CLOSE ,MODE_SIGNAL,iTF);
       double diff=MainBuffer[iChart]-SignalBuffer[iChart];
      
       if (diff> 0 ) {
         DiffBuffer_up[iChart]=diff;
         DiffBuffer_dn[iChart]= EMPTY_VALUE ;
      }
       else {
         DiffBuffer_dn[iChart]=diff;
         DiffBuffer_up[iChart]= EMPTY_VALUE ;
      }
  }
   return ( 0 );
}

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
ENUM_TIMEFRAMES GetTF() {

   switch ( Period ()) {
       case PERIOD_M1 :   return PERIOD_M5 ;
       case PERIOD_M5 :   return PERIOD_M15 ;
       case PERIOD_M15 : return PERIOD_M30 ;
       case PERIOD_M30 : return PERIOD_H1 ;
       case PERIOD_H1 :   return PERIOD_H4 ;
       case PERIOD_H4 :   return PERIOD_D1 ;
       case PERIOD_D1 :   return PERIOD_W1 ;
       case PERIOD_W1 :   return PERIOD_MN1 ;
   }
   
   return ( ENUM_TIMEFRAMES ) Period ();

}
//+------------------------------------------------------------------+