정사각형 또는 직사각형 그리기. 정말 도움이 필요해요... - 페이지 4

 
Alex_Profit :

개체를 생성할 때 "_H", _L" 값이 할당되는 것으로 나타났습니다.

예, 생각해야 합니다. 동의합니다. 그리고 저는 술을 많이 마시지 않습니다.

시간이 지나면 나아지리라 생각합니다. 고맙습니다.

objName+"_H",

objName+"_L",

나는 당신에 대해 말하는 것이 아닙니다 ... 나는 그 대답을 썼을 때 그다지 정신이 없었습니다.
 
고마워요 아그램. 1단계 완료.
 
어떤 이유로 Indicator_chart_window 매개변수를 indicator_separate_window로 변경 하면 메인 창의 그림이 서브 창에 표시되지 않습니다.
 
Alex_Profit :
어떤 이유로 Indicator_chart_window 매개변수를 indicator_separate_window로 변경 하면 메인 창의 그림이 서브 창에 표시되지 않습니다.
차트에서 지표를 제거하고 다시 추가해야 합니다.
 

약간의 오류가 있음을 알려주세요. 마름모와 십자가가 0 막대가 아닌 막대 자체 위에 그려지도록 변경해야 하는 사항. (매월 첫 번째 막대에서).

고맙습니다.

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

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

약간의 오류가 있음을 알려주세요. 마름모와 십자가가 0 막대가 아닌 막대 자체 위에 그려지도록 변경해야 하는 사항. (매월 첫 번째 막대에서).

고맙습니다.

새로운 구문을 이미 배우기 시작하면 오래된 언어로 글만 쓰고 다시 배울 의향이 없는 오래된 공룡을 이해할 것입니다. 그러나 몇 년 동안 도덕적으로 쓸모없는 구문을 배우고 새로운 구문에 산재하기 시작했습니다. 변태이다.

그리고 도움말을 읽기 시작하면 최소한 무엇을, 어떻게 이해할 수 있습니다.

 

요점은 이해가 되지만 새것이 어디에 옛것이 어디 있는지, 어쩐지 당장 눈에 들어오지 않는다. 그리고 설명서를 읽어보니 너무 영리한 언어로 쓰여져 있습니다.

비판해 주셔서 감사합니다. 올바른 방향으로 이동할 수 있도록 도와줍니다.

 

말해 주세요. 분기별 기간으로 마크업하는 방법은 무엇입니까?

이러한 날짜가 발생하면 수직선 을 그려야 합니다.

1월 1일. 4월 1일 7월 1일 10월 1일

 

먼저 내 말을 주의 깊게 읽은 다음 언어에 대한 문서, 특히 "그래픽 개체" 섹션을 주의 깊게 읽으십시오.

문서 에는 그래픽 개체를 생성 할 때 어떤 매개변수가 있어야 하는지 명확하게 명시되어 있습니다. 그 중 하나는 TIME입니다. 이것은 귀하의 날짜이며 이 매개변수에 입력해야 합니다. 세로선의 경우 가격은 중요하지 않으나 기능상 필수이므로 0을 넣어야 합니다. 이 정도는 어렵지 않습니다.

 
AlexeyVik :

먼저 내 말을 주의 깊게 읽은 다음 언어에 대한 문서, 특히 "그래픽 개체" 섹션을 주의 깊게 읽으십시오.

문서에는 그래픽 개체를 생성할 때 어떤 매개변수가 있어야 하는지 명확하게 명시되어 있습니다. 그 중 하나는 TIME입니다. 이것은 귀하의 날짜이며 이 매개변수에 입력해야 합니다. 세로선의 경우 가격은 중요하지 않으나 기능상 필수이므로 0을 넣어야 합니다. 이 정도는 어렵지 않습니다.

방법을 모르겠습니다. 말해 주세요. 최대 기간은 한 달입니다.

t_Line 변수에. 1st, 2nd, 3rd, 4th, square의 값을 삽입해야 합니다.

내가 이해할 수없는.

고마울거야.

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

}