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

 
Alexey Viktorov :

Nesneyi yeniden adlandırdıktan sonra, ona erişmek için henüz uygun olmaması çok yüksek bir olasılıktır. Yeniden adlandırdıktan sonra ChartRedraw'ı koymayı deneyebilirsiniz. Yardımcı olmazsa, bir şekilde farklı bir dizi oluşturmanız gerekir.

not; Başka bir seçenek: önce sparam adıyla yeniden renklendirin ve ardından yeniden adlandırın.

Ve tekrar teşekkürler!!! Ben sensiz ne yaparım?

 
Vladimir Karputov :

Fibonaci RR kodunda örnek -

Örnek için teşekkürler, ancak bu sadece ticaret seviyelerini belirliyor. %0.0, %23.6, %38.2, %50, %61.8, %100, %161.8, %261.8 gibi Fibonacci seviyelerini ayarlamakla ilgileniyorum...

https://www.metatrader5.com/ru/terminal/help/objects/fibo/fibo_retracement

Otomatik gösterge, varsayılan olarak ve standart fibo seviyelerine göre oluşturulur. Terminalde, bina seviyeleri yöntemiyle değiştirilebilecek veya kopyalanabilecek bir fibo araçlarının kaynak kodu olmalı ... Bulamıyorum, nerede olduğunu biliyorsanız, lütfen bana söyleyin.

Veya özel bir göstergeye seviyeler nasıl eklenir:   %0.0, %23.6, %38.2, %50, %61.8, %100, %161.8, %261.8...

   ObjectCreate (chart_id,name, OBJ_EXPANSION ,nwin,time1,price1,time2,price2,time3,price3);
   ObjectSetInteger (chart_id,name, OBJPROP_COLOR ,Color);
   ObjectSetInteger (chart_id,name, OBJPROP_STYLE ,style);
   ObjectSetInteger (chart_id,name, OBJPROP_WIDTH ,width);

   if (ray> 0 ) ObjectSetInteger (chart_id,name, OBJPROP_RAY_RIGHT , true );
   if (ray< 0 ) ObjectSetInteger (chart_id,name, OBJPROP_RAY_LEFT , true );

   if (ray== 0 )
     {
       ObjectSetInteger (chart_id,name, OBJPROP_RAY_RIGHT , false );
       ObjectSetInteger (chart_id,name, OBJPROP_RAY_LEFT , false );
     }

   ObjectSetString (chart_id,name, OBJPROP_TEXT ,text);
   ObjectSetInteger (chart_id,name, OBJPROP_BACK , true );

   for ( int numb= 0 ; numb< 10 ; numb++)
     {
       ObjectSetInteger (chart_id,name, OBJPROP_LEVELCOLOR ,numb,Color);
       ObjectSetInteger (chart_id,name, OBJPROP_LEVELSTYLE ,numb,style);
       ObjectSetInteger (chart_id,name, OBJPROP_LEVELWIDTH ,numb,width);
     }

Lütfen bana söyle

 
Kira27 :

Ve tekrar teşekkürler!!! Ben sensiz ne yaparım?

Belki mantıklı düşünmeyi öğrenebilirim.)))

 
VVT :

Örnek için teşekkürler, ancak bu sadece ticaret seviyelerini belirliyor. %0.0, %23.6, %38.2, %50, %61.8, %100, %161.8, %261.8 gibi Fibonacci seviyelerini ayarlamakla ilgileniyorum...

https://www.metatrader5.com/ru/terminal/help/objects/fibo/fibo_retracement

Otomatik gösterge, varsayılan olarak ve standart fibo seviyelerine göre oluşturulur. Terminalde, bina seviyeleri yöntemiyle değiştirilebilecek veya kopyalanabilecek bir fibo araçlarının kaynak kodu olmalı ... Bulamıyorum, nerede olduğunu biliyorsanız, lütfen bana söyleyin.

Veya özel bir göstergeye seviyeler nasıl eklenir:   %0.0, %23.6, %38.2, %50, %61.8, %100, %161.8, %261.8...

Lütfen bana söyle

Yukarıda bir örnek verdim - sadece bir seviye görevi var. Eğer sorarsanız, kodu açıp kontrol etme zahmetine girin.

 
Vladimir Karputov :

Yukarıda bir örnek verdim - sadece bir seviye görevi var. Eğer sorarsanız, kodu açıp kontrol etme zahmetine girin.

Teşekkür ederim evet biraz karışık oldu ama anlamaya çalışıyorum) teşekkürler

 

Mql5'te kod nasıl görünecek?


 extern int     StartHour   = 12 ;     //Час начала торговли(терминальное время)

int start()
{
if   (Hour()==StartHour)
    {
      OrderSend ( Symbol (),OP_BUY,Lot,Ask, 0 ,Ask-StopLoss* Point ,Bid+TakeProfit* Point , "советник" ,MAGIC,expiration,Blue);
    }  
return(0);
}
 
Dmitriywelcome :

Mql5'te kod nasıl görünecek?

   MqlDateTime tm;
   TimeCurrent (tm);
   if (tm.hour==12) {
    ...
   }

mql4'te tamamen aynı görünüyor


Biraz yardım

MqlDateTime

Tarih yapısı, türden sekiz alan içerir   int .

yapı MqlDateTime
{
    int   yıl ; // yıl
    int   pzt ; // ay
    int   gün ; // gün
    int   saat ; // saat
    int   dk ; // dakika
    int   saniye ; // saniye
    int   day_of_week ; // haftanın günü (0-Pazar, 1-Pazartesi, ... ,6-Cumartesi)
    int   day_of_year ; // yıldaki seri numarası (1 Ocak'ta 0 sayısı vardır)
};

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как положительные, так и отрицательные значения. Диапазон изменения значений составляет от -128 до 127. uchar # Целый тип uchar также занимает в памяти 1 байт, как и тип char, но в отличие от него, uchar...
 
Vladimir Karputov :

Yukarıda bir örnek verdim - sadece bir seviye görevi var. Eğer sorarsanız, kodu açıp kontrol etme zahmetine girin.

Farklı nesneler, seviyeler, zaman dilimleri ile harika otomatik yazma çıktı ) çok teşekkür ederim

 
int OnInit ()
  {
//---
   ChartSetInteger ( ChartID (), CHART_EVENT_OBJECT_CREATE , true );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
  }
//+------------------------------------------------------------------+

/***********************OnChartEvent function************************/
void OnChartEvent ( const int id,         // идентификатор события
                   const long & lparam,   // параметр события типа long
                   const double & dparam, // параметр события типа double
                   const string & sparam   // параметр события типа string
                 )
  {
   if (id == CHARTEVENT_OBJECT_CREATE )
     {
       //----------------------------------------------------------------------------------------
       double    Level_0= ObjectGetDouble (
                           0 ,           // идентификатор графика
                           sparam,               // имя объекта
                           OBJPROP_PRICE ,           // идентификатор свойства
                           0      // модификатор свойства
                        );


       double    Level_1= ObjectGetDouble (
                           0 ,           // идентификатор графика
                           sparam,               // имя объекта
                           OBJPROP_PRICE ,           // идентификатор свойства
                           1      // модификатор свойства
                        );
       //------------------------------------------------------------------------------------------------------
       if (Level_0 > Level_1)
         ObjectSetInteger ( 0 ,sparam, OBJPROP_COLOR , clrDeepSkyBlue );
       else
         ObjectSetInteger ( 0 ,sparam, OBJPROP_COLOR , clrYellow );
       //+------------------------------------------------------------------+
       ulong timeCreate = ObjectGetInteger ( 0 , sparam, OBJPROP_CREATETIME ); //  получим время создания объекта
       string newName = "fibka" + string (timeCreate); //  сформируем новое имя объекта
       ObjectSetString ( 0 , sparam, OBJPROP_NAME , newName);   //  переименуем объект
     }
  } /******************************************************************/

//+------------------------------------------------------------------+
Alexey Viktorov:

Belki mantıklı düşünmeyi öğrenirdim.)))

Yapabileceğim her şeyi denedim, önerdiğiniz gibi, şişi büktüm ama yine de MT5'teki çizgileri tek renkte boyadım. Ve MT4'te normları gecikmeden yeniden boyar.

 

puan almak ve bunları başka bir ara belleğe aktarmak için bir göstergede bir algoritma nasıl organize edilir.

- trend çizgileri çizmek için. (resimdeki gibi)

nokta anlık görüntüsü

--------------------------------------------

Her şeyi yazarak denedim zaten, çiziliyorlar ama anlaşılmaz noktalarda bir yerde.

 //---
   ArraySetAsSeries (open, true );
   ArraySetAsSeries (high, true );
   ArraySetAsSeries (low, true );
   ArraySetAsSeries (close, true );
//---
   z=Z_;
   for (i=limit; i>= 0 ; i--)
     {
       if (!CalculatePivot())
         return ( 0 );
       if (rates_total!=prev_calculated && i== 0 )
         Z_=z;
       //---
      DnArrowiCustom[i]= 0.0 ;
      UpArrowiCustom[i]= 0.0 ;
      CoralDn=((Inpyna && BufferC[i]<BufferC[i+ 1 ]) || (Inpdoy && BufferCcop[i]<BufferCcop[i+ 1 ]) ||
               (Inptrei && BufferC[i]<BufferCcop[i]) || (Inppatry && BufferCcop[i]<BufferC[i]) ||
               (Inpcinc && close[i]<m_Coral_price) || (Inpshase && close[i]<BufferC[i]) || (Inpshapt && close[i]<m_p_price));
      CoralUp=((Inpyna && BufferC[i]>BufferC[i+ 1 ]) || (Inpdoy && BufferCcop[i]>BufferCcop[i+ 1 ]) ||
               (Inptrei && BufferC[i]>BufferCcop[i]) || (Inppatry && BufferCcop[i]>BufferC[i]) ||
               (Inpcinc && close[i]>m_Coral_price) || (Inpshase && close[i]>BufferC[i]) || (Inpshapt && close[i]>m_p_price));
       if (CoralDn)
         z = 1 ;
       if (CoralUp)
         z = 2 ;
       if (CoralDn && (z== 1 || z== 0 ))
        {
         if (((InpFiltryP && close[i]<m_p_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)) ||
            ((InpFiltryC && close[i]<m_Coral_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)) ||
            ((InpFiltryM && close[i]<m_Coral_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)))
             if (OldTrend> 0 )
               UpArrowiCustom[i]=high[i];
         if (i!= 0 )
            OldTrend=- 1 ;
         //if(FractalUpBuffer[i]==UpArrowiCustom[i])
           // return(rates_total);
        }
       if (CoralUp && (z== 2 || z== 0 ))
        {
         if (((InpFiltryP && close[i]>m_p_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)) ||
            ((InpFiltryC && close[i]>m_Coral_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)) ||
            ((InpFiltryM && close[i]>m_Coral_price) || (!InpFiltryP && !InpFiltryM && !InpFiltryC)))
             if (OldTrend< 0 )
               DnArrowiCustom[i]=low[i];
         if (i!= 0 )
            OldTrend=+ 1 ;
         // if(FractalDownBuffer[i]==DnArrowiCustom[i])
           // return(rates_total);
        }
     }
   m_left_Ctime=time[rates_total- 2 ];
//---
   /*if(prev_calculated==0)
     {
      //---
      for(int u=rates_total-4; u>=10; u--)
        {
         if(FractalUpBuffer[u]!=0.0 && FractalUpBuffer[u]!=EMPTY_VALUE)
           {
            if(upper_left==0.0)
              {
               upper_left=FractalUpBuffer[u];
               upper_left_date=time[u];
              }
            else
               if(upper_right==0.0)
                 {
                  upper_right=FractalUpBuffer[u];
                  upper_right_date=time[u];
                 }
           }
         if(FractalDownBuffer[u]!=0.0 && FractalDownBuffer[u]!=EMPTY_VALUE)
           {
            if(lower_left==0.0)
              {
               lower_left=FractalDownBuffer[u];
               lower_left_date=time[u];
              }
            else
               if(lower_right==0.0)
                 {
                  lower_right=FractalDownBuffer[u];
                  lower_right_date=time[u];
                 }
           }
         if(upper_left!=0.0 && upper_right!=0.0 && lower_left!=0.0 && lower_right!=0.0)
            break;
        }
      if(upper_left==0.0 || upper_right==0.0 || lower_left==0.0 || lower_right==0.0)
         return(rates_total);
      //---
      TrendPointChange(0,m_Upper_line,0,upper_right_date,upper_right);
      TrendPointChange(0,m_Upper_line,1,upper_left_date,upper_left);
      TrendPointChange(0,m_Lower_line,0,lower_right_date,lower_right);
      TrendPointChange(0,m_Lower_line,1,lower_left_date,lower_left);
      //---
      return(rates_total);
     }*/
//---

-------------------------------------------------- -------------------------------------------------- -

Göstergeyi ekliyorum - çalışıyor - sadece bu satırlar, uyarlayamıyorum.

Dosyalar:
1.mq5  82 kb
Neden: