Ребята , кто сможет поправить немного индикатор ? - страница 3

 
Неужели это действительно так трудно и никто не поможет ?
 
хотелось бы нарисовать годовые свечи, на месячном таймфрейме, возможно ли это ?
 
Maksim Narumov:
хотелось бы нарисовать годовые свечи, на месячном таймфрейме, возможно ли это ?

да

 
Iurii Tokman:

да

индюк подскажите

M_candle вроде может, но его надо как-то доработать.. я пробовал слегка править код, но он не рисует годовые свечки

 
Maksim Narumov:

индюк подскажите

M_candle вроде может, но его надо как-то доработать.. я пробовал слегка править код, но он не рисует годовые свечки

готового не видел
покажите свой код, посмотрим

 

я добавил  

case 525600 (кол-во минут в году), хотя на расчет это в принципе не влияет вроде


#property indicator_chart_window

extern int TFBar = 60;
extern bool bcgr = FALSE;
extern int NumberOfBar = 10;
extern color ColorUp = Green;
extern color ColorDown = Red;


void init() {
   for (int count_0 = 0; count_0 < NumberOfBar; count_0++) {
      ObjectDelete("BodyTF" + TFBar + "Bar" + count_0);
      ObjectDelete("ShadowTFh" + TFBar + "Bar" + count_0);
      ObjectDelete("ShadowTFl" + TFBar + "Bar" + count_0);
   }
   for (count_0 = 0; count_0 < NumberOfBar; count_0++) {
      ObjectCreate("BodyTF" + TFBar + "Bar" + count_0, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
      ObjectCreate("ShadowTFh" + TFBar + "Bar" + count_0, OBJ_TREND, 0, 0, 0, 0, 0);
      ObjectCreate("ShadowTFl" + TFBar + "Bar" + count_0, OBJ_TREND, 0, 0, 0, 0, 0);
   }
   Comment("");
}


void deinit() {
   for (int count_0 = 0; count_0 < NumberOfBar; count_0++) {
      ObjectDelete("BodyTF" + TFBar + "Bar" + count_0);
      ObjectDelete("ShadowTFh" + TFBar + "Bar" + count_0);
      ObjectDelete("ShadowTFl" + TFBar + "Bar" + count_0);
   }
   Comment("");
}


int start() {
   double iopen_12;
   double iclose_20;
   int datetime_44;
   int datetime_48;
   int datetime_52;
   int Li_0 = 0;
   int Li_unused_4 = 1;
   double ihigh_28 = 0;
   double ilow_36 = 500;
   bool Li_56 = FALSE;
   switch (TFBar) {
   case 1:
      Li_56 = TRUE;
      break;
   case 5:
      Li_56 = TRUE;
      break;
   case 15:
      Li_56 = TRUE;
      break;
   case 30:
      Li_56 = TRUE;
      break;
   case 60:
      Li_56 = TRUE;
      break;
   case 240:
      Li_56 = TRUE;
      break;
   case 1440:
      Li_56 = TRUE;
      break;
   case 10080:
      Li_56 = TRUE;
      break;
   case 43200:
      Li_56 = TRUE;
      break;
   case 525600:
      Li_56 = TRUE;
            
   }
   if (Li_56 == FALSE) {
      Comment("TFBar != 1,5,15,30,60,240(H4), 1440(D1),10080(W1), 43200(MN) !");
      return (0);
   }
   if (Period() > TFBar) {
      Comment("mCandles: TFBar<" + Period());
      return (0);
   }
   for (Li_0 = 0; Li_0 < NumberOfBar; Li_0++) {
      datetime_44 = iTime(Symbol(), TFBar, Li_0);
      datetime_48 = iTime(Symbol(), TFBar, Li_0) + 60 * TFBar;
      iopen_12 = iOpen(Symbol(), TFBar, Li_0);
      iclose_20 = iClose(Symbol(), TFBar, Li_0);
      ihigh_28 = iHigh(Symbol(), TFBar, Li_0);
      ilow_36 = iLow(Symbol(), TFBar, Li_0);
      ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_TIME1, datetime_44);
      ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_PRICE1, iopen_12);
      ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_TIME2, datetime_48);
      ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_PRICE2, iclose_20);
      ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_WIDTH, 2);
      ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_BACK, bcgr);
      datetime_52 = datetime_44 + MathRound(60 * TFBar / 2);
      ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_TIME1, datetime_52);
      ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_PRICE1, ihigh_28);
      ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_TIME2, datetime_52);
      ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_PRICE2, MathMax(iopen_12, iclose_20));
      ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_WIDTH, 3);
      ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_BACK, bcgr);
      ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_RAY, FALSE);
      ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_TIME1, datetime_52);
      ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_PRICE1, MathMin(iopen_12, iclose_20));
      ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_TIME2, datetime_52);
      ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_PRICE2, ilow_36);
      ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_WIDTH, 3);
      ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_BACK, bcgr);
      ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_RAY, FALSE);
      if (iopen_12 < iclose_20) {
         ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_COLOR, ColorUp);
         ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_COLOR, ColorUp);
         ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_COLOR, ColorUp);
      } else {
         ObjectSet("BodyTF" + TFBar + "Bar" + Li_0, OBJPROP_COLOR, ColorDown);
         ObjectSet("ShadowTFh" + TFBar + "Bar" + Li_0, OBJPROP_COLOR, ColorDown);
         ObjectSet("ShadowTFl" + TFBar + "Bar" + Li_0, OBJPROP_COLOR, ColorDown);
      }
   }
   return (0);
}
 
Maksim Narumov:


такой не подходит
нужно писать новый по другому

 

как я понял - типа такого ?

EURUSDDaily

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Вот есть пример - только правда для мт5 https://www.mql5.com/ru/docs/array/arrayminimum

 
SanAlex:

как я понял - типа такого ?

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Вот есть пример - только правда для мт5 https://www.mql5.com/ru/docs/array/arrayminimum

да, только хочу годовые свечи увидеть

надо как-то найти свечку с началом периода и от нее рисовать прямоугольник
 
Maksim Narumov:

да, только хочу годовые свечи увидеть

надо как-то найти свечку с началом периода и от нее рисовать прямоугольник

нужно находить дату начала года и конца

Причина обращения: