Bir kare veya dikdörtgen çizme. gerçekten yardıma ihtiyacım var... - sayfa 4

 
Alex_Profit :

Bir nesne oluştururken "_H", _L" değerinin atandığı ortaya çıktı.

Evet, düşünmelisin, katılıyorum. Ve ben çok içmem.

Zamanla daha iyi olacağını düşünüyorum. Teşekkür ederim.

objName+"_H",

objName+"_L",

Senden bahsetmiyorum... Bu cevabı yazarken çok ayık değildim.
 
Teşekkürler Agram. 1. etap tamamlandı.
 
Bazı nedenlerden dolayı, gösterge_chart_window parametresini gösterge_ayır_pencere olarak değiştirirken , ana pencerenin resmi alt pencerede görüntülenmiyor.
 
Alex_Profit :
Bazı nedenlerden dolayı, gösterge_chart_window parametresini gösterge_ayır_pencere olarak değiştirirken , ana pencerenin resmi alt pencerede görüntülenmiyor.
Göstergeyi grafikten kaldırmanız ve tekrar eklemeniz gerekir.
 

Lütfen bana bir hata olduğunu söyle. Eşkenar dörtgen ve çaprazın sıfır çubuğunun üzerine değil, çubuğun üzerine çizilmesi için değiştirilmesi gerekenler. (her ayın ilk çubuğunda).

Teşekkür ederim.

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

#property strict

#property indicator_chart_window

   

    //---  Внешние Глобальные переменные 

extern int     barsToProcess = 5;        //--- Кол-во отображаемых периодов (линий) 


    //---  Глобальные переменные    

string Name_Obj;  //--- Имя Элементов


#property indicator_buffers 2

#property indicator_color1 Red

#property indicator_color2 Blue


double Buf_High[];

double Buf_Low[];


MqlDateTime mqlDateTime;

MqlRates    mqlRates[1];


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

int init()

  {  

     SetIndexBuffer(0,Buf_High);     

     SetIndexStyle (0,DRAW_ARROW,0,0);  

     SetIndexArrow (0,116);

     

     SetIndexBuffer(1,Buf_Low);

     SetIndexStyle (1,DRAW_ARROW,0,0); 

     SetIndexArrow (0,116);


    return(0);

  }

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

int deinit()

  {

   int i;  

         for (i=0; i<Bars; i++)                                        //--- Выбираем все установленные объекты  

           {

              ObjectDelete(Name_Obj  + " High"   + DoubleToStr(i,0));  //--- Удаляем все объекты

              ObjectDelete(Name_Obj  + " Low"    + DoubleToStr(i,0));  //--- Удаляем все объекты

           }       

   return(0);

  }

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

int start()

{                  

int counted_bars = IndicatorCounted();     //--- перем counted_bars = функц.  Возвращает количество баров

int limit;                                 //--- переменная  старт кол-во баров. Линии рисуем о по всем барам

if(counted_bars > 0) counted_bars --;      //--- последний посчитанный бар будет пересчитан 

  //--- основной цикл 

  limit = Bars - counted_bars;         

  for(int i = 0; i < limit; i ++)

      {

 //+------------------------ При выборе кол-ва линий отобразим их ко-во------------------------+                 

         if(limit > barsToProcess)                                     //--- Если кол-во линий > Кол-ву отображаемых периодов (линий) 

         {

          limit = barsToProcess;                                       //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)

 //+------------------------ Рисуем линии -----------------------------------------------------+                 

             while (i<limit)                                           //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.                        

             {   

               datetime t_Line = iTime(Symbol(),PERIOD_MN1,i);         //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара

               CopyRates(_Symbol, PERIOD_W1, t_Line, 1, mqlRates);

   {

             Buf_High[i] = mqlRates[i].high;

             Buf_Low[i]  = mqlRates[i].low;

      //+------------------------ Рисуем Объекты -----------------------------------------------------+                 

      //--- Строим линию по Хай      

     ObjectCreate    (0,Name_Obj + " High" + DoubleToStr(i,0), OBJ_TREND, 0,t_Line, mqlRates[0].high,t_Line+PeriodSeconds(PERIOD_MN1),mqlRates[0].high);

     ObjectSetInteger(0,Name_Obj + " High" + DoubleToStr(i,0), OBJPROP_RAY_RIGHT, false);

  

     //--- Строим линию по Лоу      

     ObjectCreate    (0,Name_Obj + " Low" + DoubleToStr(i,0), OBJ_TREND, 0,t_Line, mqlRates[0].low,t_Line+PeriodSeconds(PERIOD_MN1),mqlRates[0].low);

     ObjectSetInteger(0,Name_Obj + " Low" + DoubleToStr(i,0), OBJPROP_RAY_RIGHT, false);

 }

  i++;

             }

          }

      }

   return(0);

}


 
Alex_Profit :

Lütfen bana bir hata olduğunu söyle. Eşkenar dörtgen ve çaprazın sıfır çubuğunun üzerine değil, çubuğun üzerine çizilmesi için değiştirilmesi gerekenler. (her ayın ilk çubuğunda).

Teşekkür ederim.

Yeni sözdizimini şimdiden öğrenmeye başlayın, sadece eski dilde yazan ve yeniden öğrenme arzusu olmayan, ancak yeni öğrenmeye başlayan ve birkaç yıl boyunca ahlaki olarak eski sözdizimi üzerinde duran ve yeni ile serpiştirilmiş eski dinozoru anlarım. bir sapkınlıktır.

Ve en azından neyin ve nasıl olduğunu anlamak için yardımı okumaya başlayın.

 

Konu anlaşılır ama yeni nerede eski nerede, Nedense hemen göremiyorsunuz. Ve kılavuzu okudum, çok zekice yazılmış.

Eleştiri için teşekkürler. Doğru yönde hareket etmenize yardımcı olur.

 

Lütfen bana söyle. Üç aylık dönemlere göre işaretleme nasıl yapılır?

Bu tarihler gerçekleştiğinde dikey çizgiler çizmemiz gerekiyor.

1 Ocak. 1 Nisan. 1 Temmuz. 1 Ekim.

 

Önce sözlerimi dikkatlice okuyun, ardından dille ilgili belgeleri, özellikle de "Grafik Nesneleri" bölümünü dikkatlice okuyun.

Belgeler, bir grafik nesnesi oluştururken hangi parametrelerin bulunması gerektiğini açıkça belirtir. Bunlardan biri TIME, bunlar sizin tarihleriniz ve bu parametreye koymanız gerekiyor. Dikey çizgiler için fiyat önemli değil, fonksiyon için zorunludur, bu yüzden 0 koymanız gerekiyor. Bunda bir zorluk yok.

 
AlexeyVik :

Önce sözlerimi dikkatlice okuyun, ardından dille ilgili belgeleri, özellikle de "Grafik Nesneleri" bölümünü dikkatlice okuyun.

Belgeler, bir grafik nesnesi oluştururken hangi parametrelerin bulunması gerektiğini açıkça belirtir. Bunlardan biri TIME, bunlar sizin tarihleriniz ve bu parametreye koymanız gerekiyor. Dikey çizgiler için fiyat önemli değil, fonksiyon için zorunludur, bu yüzden 0 koymanız gerekiyor. Bunda bir zorluk yok.

Nasıl yapacağımı bilmiyorum. Lütfen bana söyle. Maksimum süre bir aydır.

t_Line değişkenine. 1., 2., 3., 4., kare değerini girmeniz gerekir.

Anlayamıyorum.

Minnettar olacağım.

int start()

{                  

int counted_bars = IndicatorCounted();     //--- перем counted_bars = функц.  Возвращает количество баров

int limit;                                 //--- переменная  старт кол-во баров. Линии рисуем о по всем барам

   

if(counted_bars > 0) counted_bars --;      //--- последний посчитанный бар будет пересчитан 

  //--- основной цикл 

  limit = Bars - counted_bars;         

  for(int i = 0; i < limit; i ++)

      {

         if(limit > barsToProcess)                                     //--- Если кол-во линий > Кол-ву отображаемых периодов (линий) 

         {

          limit = barsToProcess;                                      //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)

             while (i<limit)                                           //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.                        

             {   

               datetime t_Line = iTime(Symbol(),PERIOD_MN1,i);                 //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара

             {


    ObjectCreate (Name_VLine + " VLine" + DoubleToStr(i,0),OBJ_VLINE,0,t_Line,0);         //--- Создаём обьект вертикальную линию

    ObjectSet    (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_STYLE,2);              //--- Со стилем

    ObjectSet    (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_COLOR,DimGray);        //--- Со цветом  

    ObjectSet    (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_WIDTH,0);              //--- С  толщиной

    ObjectSet    (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_BACK,0);               //--- С типом отображения. Объект на заднем плане

 }

  i++;

             }

          }

      }      

   return(0);

}