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

 
mila.com :

Teşekkürler , bu doğru mu?

label = ObjectGetInteger ( 0 ,nm, OBJPROP_COLOR , 0 );

if (label==Lime) BUY_ = true ;

Hayır, renk verilerini int olarak bu şekilde alırsınız

Burada, yorumda ne görüntüleneceğini görmeye çalışın

Comment ( ColorToString (( color ) ObjectGetInteger ( 0 , "NaneOBJ" , OBJPROP_COLOR , 0 ), true ) );

Dönüşüm hakkında bilgi edinin

 
Vitaly Muzichenko :

Dönüşüm hakkında bilgi edinin

Teşekkürler,   koşulun kendisi doğru mu?
 
mila.com :
Teşekkürler,   koşulun kendisi doğru mu?
string label = ColorToString (( color ) ObjectGetInteger ( 0 , "MP140269" , OBJPROP_COLOR , 0 ), true );
if (label==Lime) BUY_ = true ;

if (label==Red) BUY_ = false ;
Büyük olasılıkla değil. Veri türü string ise , onu tırnak işaretleri ile çerçevelemeniz ve karakter karakter renk eşleşmesi yazmanız gerekir: "clrLime"
 
Vitaly Muzichenko :
Büyük olasılıkla değil. Veri türü string ise , onu tırnak işaretleri ile çerçevelemeniz ve karakter karakter tam bir renk eşleşmesi yazmanız gerekir: "clrLime"
Teşekkürler, hepsi iyi çalıştı)
 
Vitaly Muzichenko :
Büyük olasılıkla değil. Veri türü string ise , onu tırnak işaretleri ile çerçevelemeniz ve karakter karakter renk eşleşmesi yazmanız gerekir: "clrLime"
Hayır, alıntılara ihtiyacınız yok - bunlar sabittir. Yani, buna ihtiyacınız var: if(label==clrLime) {}
 
Artyom Trishkin :
Hayır, alıntılara ihtiyacınız yok - bunlar sabittir. Yani, buna ihtiyacınız var: if(label==clrLime) {}

Teşekkürler Çalışıyor.

Lütfen bana daha yüksek zaman diliminden stokastik göstergenin seviyesini nasıl doğru bir şekilde elde edeceğimi söyleyin.

       int bar_sto2_0= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i));
       int bar_sto2_1= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i+ 1 ));
       double sto1_0= iStochastic ( Symbol (),TimeFrame1,kperiod1,dperiod1,slowing1, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,i);
       double sto1_1= iStochastic ( Symbol (),TimeFrame1,kperiod1,dperiod1,slowing1, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,i+ 1 );
       double sto2_0= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_0);
       double sto2_1= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_1);
      
       if (sto2_0> 55 )
       {
      BufferUP[i]=low[i]-distance*MyPoint;
       }
      

Gösterge eski ph'a ayarlandığında. o zaman her şey doğrudur, gösterge çizgisi 55'in üzerindeyken ok yerleştirilir.

Küçük bir grafiğe geçerken, kaos.

 
mila.com :

Teşekkürler Çalışıyor.

Lütfen bana daha yüksek zaman diliminden stokastik göstergenin seviyesini nasıl doğru bir şekilde elde edeceğimi söyleyin.

       int bar_sto2_0= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i));
       int bar_sto2_1= iBarShift ( Symbol (),TimeFrame2, iTime ( Symbol (),TimeFrame2,i+ 1 ));
       double sto1_0= iStochastic ( Symbol (),TimeFrame1,kperiod1,dperiod1,slowing1, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,i);
       double sto1_1= iStochastic ( Symbol (),TimeFrame1,kperiod1,dperiod1,slowing1, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,i+ 1 );
       double sto2_0= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_0);
       double sto2_1= iStochastic ( Symbol (),TimeFrame2,kperiod2,dperiod2,slowing2, MODE_LWMA , STO_CLOSECLOSE , MODE_MAIN ,bar_sto2_1);
      
       if (sto2_0> 55 )
       {
      BufferUP[i]=low[i]-distance*MyPoint;
       }
      

Gösterge eski ph'a ayarlandığında. o zaman her şey doğrudur, gösterge çizgisi 55'in üzerindeyken ok yerleştirilir.

Küçük bir grafiğe geçerken, kaos.

Gösterge döngüsünden bahsediyorsanız, daha yüksek zaman diliminin hangi çubuğunun alt TF'deki döngü indeksi tarafından belirtilen çubuğa karşılık geldiğini bilmek için, zaman çubuğunu almanız gerekir i . Ardından, bu zamana kadar, bu zamana karşılık gelen daha yüksek TF'nin çubuğunu belirleyin. Örneğin: bir H4 çubuğu, dört H1 çubuğuna karşılık gelir. Buna göre, TF H1 ile i döngü indeksinin dört değeri, TF H4'te aynı çubuğa işaret edecektir.

Değişkenlerinize (adlarına) göre değerleri hangi çubuktan aldığınızı anlayamıyorum. Bu nedenle teori dışında bir şey söylemek zor.

 
Artyom Trishkin :

Gösterge döngüsünden bahsediyorsanız, daha yüksek zaman diliminin hangi çubuğunun alt TF'deki döngü indeksi tarafından belirtilen çubuğa karşılık geldiğini bilmek için, zaman çubuğunu almanız gerekir i . Ardından, bu zamana kadar, bu zamana karşılık gelen daha yüksek TF'nin çubuğunu belirleyin. Örneğin: bir H4 çubuğu, dört H1 çubuğuna karşılık gelir. Buna göre, TF H1 ile i döngü indeksinin dört değeri, TF H4'te aynı çubuğa işaret edecektir.

Değişkenlerinize (adlarına) göre değerleri hangi çubuktan aldığınızı anlayamıyorum. Bu nedenle teori dışında bir şey söylemek zor.

Gösterge M1 olarak ayarlanmıştır.

Yukarı ok için ana koşul, M5'teki 55 seviyesinin üzerindeki gösterge çizgisidir .

Bu koşul karşılanmaz, M5 üzerindeki çizgi 55 seviyesinin altında olsa bile ok hala yer almaktadır.

 

robotta "1 bar'ın yüksek değeri 3. bar'ın en düşük değerinden yüksekse..." koşulu nasıl yazılır?

aynı zamanda tetikleyici "OnTick ()" olmamalıdır

ve her 0 bar 1 olduğunda

 
trader781 :

robotta "1 bar'ın yüksek değeri 3. bar'ın en düşük değerinden yüksekse..." koşulu nasıl yazılır?

aynı zamanda tetikleyici "OnTick ()" olmamalıdır

ve her 0 bar 1 olduğunda

böyle olabilir mi

//+------------------------------------------------------------------+
//|                                                       test03.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link        "https://www.mql5.com/ru/users/sergey1294"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CNevBar
  {
private :
   datetime           curbar;
   datetime           lastbar;
public :
                     CNevBar();
                    ~CNevBar();
   bool               new_bar( string symbol, ENUM_TIMEFRAMES period);
  };
//+------------------------------------------------------------------+
void CNevBar::CNevBar()
  {

  }
//+------------------------------------------------------------------+
void CNevBar::~CNevBar( void )
  {

  }
//+------------------------------------------------------------------+
bool CNevBar:: new_bar( string symbol, ENUM_TIMEFRAMES period)
  {
   curbar=( datetime ) SeriesInfoInteger (symbol,period, SERIES_LASTBAR_DATE );
   if (lastbar== 0 )lastbar=( datetime ) SeriesInfoInteger (symbol,period, SERIES_LASTBAR_DATE );
   if (lastbar!=curbar)
     {
      lastbar=curbar;
       return ( true );
     }
   return ( false );
  }

CNevBar newbar;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   if (newbar.new_bar( _Symbol , PERIOD_CURRENT ))
     {
       if ( High [ 1 ]> Low [ 3 ])
        {

        }
     }

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

...