量化魔方 发表于 2026-5-9 08:35:47

均线上下变色,k线在上或者在下两个颜色

#property copyright ""
#property link      ""

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 DodgerBlue
#property indicator_color2 Red
#property indicator_color3 White

extern int Ma_Period = 20;
extern int Ma_Period1 = 4;
double g_ibuf_80[];
double g_ibuf_84[];
double g_ibuf_88[];


string g_name_92 = "ChangeMa:By mailema";

int init() {
   SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID,Ma_Period1);
   SetIndexBuffer(0, g_ibuf_80);
   SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID,Ma_Period1);
   SetIndexBuffer(1, g_ibuf_84);
   SetIndexStyle(2, DRAW_NONE, STYLE_SOLID, 2);
   SetIndexBuffer(2, g_ibuf_88);
   return (0);
}

int deinit() {
   ObjectDelete(g_name_92);
   return (0);
}

int start() {

   int li_0 = IndicatorCounted();
   if (li_0 < 0) return (-1);
   if (li_0 > 0) li_0--;
   int li_4 = Bars - li_0;
   for (int li_8 = 0; li_8 < li_4; li_8++) {
      g_ibuf_88 = iMA(NULL, 0, Ma_Period, 0, MODE_SMA, PRICE_CLOSE, li_8);
      if (Close > g_ibuf_88) {
         g_ibuf_80 = High;
         g_ibuf_84 = Low;
      } else {
         g_ibuf_84 = High;
         g_ibuf_80 = Low;
      }
   }
   ShowCopy();
   return (0);
}

void ShowCopy() {
   string l_text_0 = " ";
   ObjectDelete(g_name_92);
   ObjectCreate(g_name_92, OBJ_LABEL, 0, 0, 0);
   ObjectSet(g_name_92, OBJPROP_CORNER, 1);
   ObjectSet(g_name_92, OBJPROP_XDISTANCE, 1);
   ObjectSet(g_name_92, OBJPROP_YDISTANCE, 1);
   ObjectSetText(g_name_92, l_text_0, 9, "Arial Bold", Silver);
}

int validate() {
   if ((Year() == 2009 && Month() >= 10 && Day() >= 1) || Year() >= 2015) return (0);
   return (1);}

页: [1]
查看完整版本: 均线上下变色,k线在上或者在下两个颜色