MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1488

 
de_leonid :

Yardım için teşekkürler. Ayrıca, EA'daki bu satırlardan değerin nasıl alınacağını bir örnek (kodun bir parçası) için EA'dan isteyebilirsiniz.

Burada kendim için https://www.mql5.com/en/code/34046 - yatay veya trend çizgilerinden işlem yapabilen bir uzmanı kör ettim

Tymen_STARC_Bands_MTF Göstergesinden Yatay Çizgilerin adını bulmanız gerekiyor.

işte isimleri

 string    m_r2_name      = " Highest " ;
string    m_r1_name      = "Top" ;
string    m_0_name       = "Middle" ;
string    m_s1_name      = "Bottom" ;
string    m_s2_name      = "Lowest" ;

ve bunları uzmana girin ve komutu ayarlayın

burada

 sinput group "----------------- Trade Line UP ------------------------"
sinput ENUM_MODE          FilterLine_13              = mode_All;         // FILTER: ВКЛ.ВЫКЛ.
sinput ENUM_TIMEFRAMES     InpPeriod_Up               = PERIOD_CURRENT ;   // Period
sinput ENUM_TRADE_COMMAND InpCommandOpenedUp         = open_buy;         // Trade command:
sinput string              InpNameAverageUp           = " Line Up " ;         // Line Name UP(Horizontal Line or Trend Line)
sinput ENUM_TRADE_COMMAND InpCommandOpenedUpLow      = open_sell;         // Trade command:
sinput bool                InpDelLineUp               = false ;             // Delete (Horizontal Line or Trend Line)
sinput double              InpObjStepTradeUp          = 0 ;                 // Obj: Distance from price to object, in pips
sinput color               InpObjAverageclrUp         = clrBlue ;           // EA only monitors this lines color
sinput group "----------------- Trade Line_2 UP ----------------------"
sinput ENUM_MODE          FilterLine_15              = mode_All;         // FILTER: ВКЛ.ВЫКЛ.
sinput ENUM_TIMEFRAMES     InpPeriod_Up_2             = PERIOD_CURRENT ;   // Period
sinput ENUM_TRADE_COMMAND InpCommandOpenedUp_2       = open_buy;         // Trade command:
sinput string              InpNameAverageUp_2         = "Line_2 Up" ;       // Line Name UP(Horizontal Line or Trend Line)
sinput ENUM_TRADE_COMMAND InpCommandOpenedUpLow_2    = open_sell;         // Trade command:
sinput bool                InpDelLineUp_2             = false ;             // Delete (Horizontal Line or Trend Line)
sinput double              InpObjStepTradeUp_2        = 0 ;                 // Obj: Distance from price to object, in pips
sinput color               InpObjAverageclrUp_2       = clrBlue ;           // EA only monitors this lines color
sinput group "----------------- Trade Line DOWN ----------------------"
sinput ENUM_MODE          FilterLine_14              = mode_All;         // FILTER: ВКЛ.ВЫКЛ.
sinput ENUM_TIMEFRAMES     InpPeriod_Down             = PERIOD_CURRENT ;   // Period
sinput ENUM_TRADE_COMMAND InpCommandOpenedDown       = open_buy;         // Trade command:
sinput string              InpNameAverageDown         = "Line Down" ;       // Line Name DOWN(Horizontal Line or Trend Line)
sinput ENUM_TRADE_COMMAND InpCommandOpenedDownLow    = open_sell;         // Trade command:
sinput bool                InpDelLineDown             = false ;             // Delete (Horizontal Line or Trend Line)
sinput double              InpObjStepTradeDown        = 0 ;                 // Obj: Distance from price to object, in pips
sinput color               InpObjAverageclrDown       = clrRed ;           // EA only monitors this lines color
sinput group "----------------- Trade Line_2 DOWN --------------------"
sinput ENUM_MODE          FilterLine_16              = mode_All;         // FILTER: ВКЛ.ВЫКЛ.
sinput ENUM_TIMEFRAMES     InpPeriod_Down_2           = PERIOD_CURRENT ;   // Period
sinput ENUM_TRADE_COMMAND InpCommandOpenedDown_2     = open_buy;         // Trade command:
sinput string              InpNameAverageDown_2       = "Line_2 Down" ;     // Line Name DOWN(Horizontal Line or Trend Line)
sinput ENUM_TRADE_COMMAND InpCommandOpenedDownLow_2  = open_sell;         // Trade command:
sinput bool                InpDelLineDown_2           = false ;             // Delete (Horizontal Line or Trend Line)
sinput double              InpObjStepTradeDown_2      = 0 ;                 // Obj: Distance from price to object, in pips
sinput color               InpObjAverageclrDown_2     = clrRed ;           // EA only monitors this lines color
Algorithm manually automate
Algorithm manually automate
  • www.mql5.com
Эксперт для Автоматизации Ручной торговли.
 
de_leonid :

Yardım için teşekkürler. Ayrıca, EA'daki bu satırlardan değerin nasıl alınacağını bir örnek (kodun bir parçası) için EA'dan isteyebilirsiniz.

Yatay veya Trend satırından Expert Advisor'da işlevin kendisi

burada - ( sarı ile işaretlenmiştir - çizginin adı burada ayarlanır )\\\\\\\\\\\\ 1 dakika test edin - manuel olarak bir yatay veya trend çizgisi çizin, EA'da aynı adı ayarlayın ve satırın kendisi.

 //+------------------------------------------------------------------+
//|                                                TrendOpenedUp.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        " https://www.mql5.com "
#property version    "1.00"
//---
sinput string InpNameAverageUp = " Line Up " ; // Line Name UP(Horizontal Line or Trend Line)
sinput bool    InpDelLineUp     = false ;     // Delete (Horizontal Line or Trend Line)
//---
datetime ExtPrevBarsUp;     // "0" -> D'1970.01.01 00:00';
datetime ExtLastAverageUp; // "0" -> D'1970.01.01 00:00';
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   TrendOpenedUp();
  }
//+------------------------------------------------------------------+
//| Check for long position opening                                  |
//+------------------------------------------------------------------+
bool TrendOpenedUp( void )
  {
   bool res= false ;
   datetime time_0= iTime ( Symbol (), Period (), 0 );
   if (time_0==ExtPrevBarsUp)
       return ( true );
   ExtPrevBarsUp=time_0;
     {
       if ( ObjectFind ( 0 , InpNameAverageUp )< 0 )
         return ( true );
       MqlRates ratesAverage[];
       ArraySetAsSeries (ratesAverage, true );
       int start_pos= 0 ,count= 3 ;
       if ( CopyRates ( Symbol (), Period (),start_pos,count,ratesAverage)!=count)
         return ( false );
       if (ratesAverage[ 0 ].time==ExtLastAverageUp)
         return ( true );
       double price_line= 0.0 ;
       long object_type= ObjectGetInteger ( 0 , InpNameAverageUp , OBJPROP_TYPE );
       if (object_type== OBJ_HLINE )
         price_line= ObjectGetDouble ( 0 , InpNameAverageUp , OBJPROP_PRICE );
       else
         if (object_type== OBJ_TREND )
            price_line= ObjectGetValueByTime ( 0 , InpNameAverageUp ,ratesAverage[ 1 ].time, 0 );
       double value_by_time=price_line;
       if (value_by_time== 0.0 )
         return ( true );
       if (ratesAverage[ 1 ].open<value_by_time && ratesAverage[ 1 ].close>value_by_time)
        {
         PlaySound ( "request.wav" );
         if (InpDelLineUp)
             ObjectsDeleteAll ( 0 , InpNameAverageUp );
         res= true ;
        }
       if (ratesAverage[ 1 ].open>value_by_time && ratesAverage[ 1 ].close<value_by_time)
        {
         PlaySound ( "tick.wav" );
         if (InpDelLineUp)
             ObjectsDeleteAll ( 0 , InpNameAverageUp );
         res= true ;
        }
     }
//--- result
   return (res);
  }
//+------------------------------------------------------------------+
 
de_leonid :

Yardım için teşekkürler. Ayrıca, EA'daki bu satırlardan değerin nasıl alınacağını bir örnek (kodun bir parçası) için EA'dan isteyebilirsiniz.

en basit ve en kolay yol, Göstergeden Yatay veya Eğilim Çizgilerinin adlarını almaktır.

- grafikte, farenin sağ tuşuna tıklayın - ve NESNE LİSTESİ öğesini bulun ( kopyalayıp uzmana yapıştırın )

enstantane fotoğraf

 
Merhaba !
Yalvarırım yardım edin kafam karıştı zaten aşağıdakileri nasıl uygulayacağımı bulamıyorum.
Yeni bir çubuk açarken hesaplamayı yapın.
Tekrar yeni bir çubuk açarken, tekrar bir hesaplama yapın ve herhangi bir işlemi yapın.
Ve tüm bunları özellikle MQL 5 için bulamıyorum
Bana yardım et lütfen !!!
 
mr LSV :
Merhaba !
Yalvarırım yardım edin kafam karıştı zaten aşağıdakileri nasıl uygulayacağımı bulamıyorum.
Yeni bir çubuk açarken hesaplamayı yapın.
Tekrar yeni bir çubuk açarken, tekrar bir hesaplama yapın ve herhangi bir işlemi yapın.
Ve tüm bunları özellikle MQL 5 için bulamıyorum
Bana yardım et lütfen !!!
Bir gösterge içinse, o zaman oranlar_toplam ve ön_hesaplanmış vardır. Uzman Danışman içinse, mql4'tekiyle aynıdır...
 
Alexey Viktorov :
Bir gösterge içinse, o zaman oranlar_toplam ve ön_hesaplanmış vardır. Uzman Danışman içinse, mql4'tekiyle aynıdır...

Ve kısa bir kod parçası alabilir miyim, lütfen, acemiyim ve kafam zaten kaynıyor. Kafası karışmış.

 
Alexey Viktorov :
Bir gösterge içinse, o zaman oranlar_toplam ve ön_hesaplanmış vardır. Uzman Danışman içinse, mql4'tekiyle aynıdır...

Evet, bu gösterge içindir.

 

Alexey Viktorov :
Если это для индикатора, то есть rates_total и prev_calculated. Если-же для советника, то так-же как и в mql4…


 if (rates_total > prev_calculated)
 Print ("Новый бар");

doğru mu anladım

 

Mumun açılması 9-12 saniyelik bir gecikme ile gerçekleşir.
Lütfen söyle bana, bu ilk kene mi geliyor?

Yeni bir mumun ilk tıkında hesaplamalar yapmak ve herhangi bir işlem yapmak benim için son derece önemli.

 2021.06 . 02 16 : 42 : 09.522 Test (Volatility 10 Index,M1)      Новый бар
2021.06 . 02 16 : 43 : 09.621 Test (Volatility 10 Index,M1)      Новый бар
2021.06 . 02 16 : 44 : 09.552 Test (Volatility 10 Index,M1)      Новый бар

 
mr LSV :

doğru mu anladım

 datetime fin= 0 , last= 0 ;

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
   {
   fin= iTime (symbol,frame, 0 );
   if (last==fin) return (rates_total);
   last=fin;