绘制一个正方形或长方形。真的需要帮助... - 页 4

 
Alex_Profit:

事实证明,当一个对象被创建时,价值"_H",_L",被归入。

嗯,你必须考虑一下,我同意。而且我不怎么喝酒。

我想随着时间的推移,它会变得更好。谢谢你。

objName+"_H",

objName+"_L",

我不是在说你......我写这个答案的时候还不是很清醒。
 
谢谢你,阿格拉梅内。第一阶段已经结束。
 
你能告诉我,由于某些原因,当你把 indicator_chart_window 参数改为indicator_separate_window 时,主窗口的图片没有显示在子窗口中
 
Alex_Profit:
你能告诉我,由于某些原因,当你把 indicator_chart_window 参数改为indicator_separate_window 时,主窗口的图片没有显示在子窗口中
该指标需要从图表中删除并重新添加。
 

如果有错误,请告诉我。需要改变的是,使菱形和十字形画在条形本身上,而不是在零条上。(在每个月的第一条)。

谢谢你。

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

#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:

如果有错误,请告诉我。需要改变的是,使菱形和十字形画在条形本身上,而不是在零条上。(在每个月的第一条)。

谢谢你。

已经开始学习新的语法了,我可以理解一个只用旧语言写作的老恐龙,没有意愿重新训练,但是刚刚开始学习,站在一个已经过时了几年的语法上,还带着一丝新意,这就很反常了。

并开始阅读帮助,这样你至少能理解发生了什么事。

 

这是可以理解的,但哪里是新的,哪里是旧的,你一下子说不清楚。而我读了手册,它的语言写得太巧妙了。

特别感谢你的批评。它帮助我朝着正确的方向前进。

 

你能给我一个提示吗?我如何对季度进行加价?

我需要在这些日期出现时画出垂直线

一月一日、四月一日、七月一日、十月一日。

 

首先仔细阅读我的话,然后阅读语言文档,特别是 "图形对象 "部分。

文档中明确指出了在创建图形对象 时必须有哪些参数。其中之一是时间--这些是你需要输入这个参数的日期。价格对垂直线来说并不重要,但对功能来说是必要的。这样做并不困难。

 
AlexeyVik:

首先仔细阅读我的话,然后仔细阅读语言文档,特别是 "图形对象 "部分。

文档中清楚地说明了在创建图形对象时应该有哪些参数。其中一个是TIME,这些是你的日期,应该插入这个参数中。价格对于垂直线来说并不重要,但对于函数来说是必须的,所以你必须填0。这样做并不困难。

我不知道该怎么做。请告诉我如何做。最长期限为一个月。

在变量t_Line 中,我们需要插入第1、2、3、4、kv的值。

我无法理解。

我将不胜感激。

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);

}