找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 7|回复: 0

【均线指标填充颜色区块,均线指标,颜色填充】均线指标填充颜色区块,颜色区块,均线指标,颜色填充

[复制链接]

4万

主题

54

回帖

4万

积分

管理员

积分
45954
发表于 2026-8-27 01:14:00 | 显示全部楼层 |阅读模式
//---以下是均线填充源码

//---mt5实现思路

首先画两条均线 用copybuffer 绑定数组

用ArrayCopy 绑定filling  完成区块填充




//---mt4实现思路

首先画两条均线 用copybuffer 绑定数组

DRAW_HISTOGRAM  用均线给他赋值

上区块 画上柱 下区块画下柱




//---mql4//---mql4//---mql4

int OnCalculate(const int rates_total,

                const int prev_calculated,

                const datetime &time[],

                const double &open[],

                const double &high[],

                const double &low[],

                const double &close[],

                const long &tick_volume[],

                const long &volume[],

                const int &spread[])

  {

//---

   if(prev_calculated==0)

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

        {

         Label1Buffer=iMA(Symbol(),PERIOD_CURRENT,ma20_period,0,MODE_EMA,PRICE_CLOSE,i);

         Label2Buffer=iMA(Symbol(),PERIOD_CURRENT,ma60_period,0,MODE_EMA,PRICE_CLOSE,i);

         if(Label1Buffer> Label2Buffer)

           {

            Label3Buffer=Label1Buffer;

            Label4Buffer=Label2Buffer;

           }

         else

           {

            Label5Buffer=Label1Buffer;

            Label6Buffer=Label2Buffer;


           }

        }

   else

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

        {

         Label1Buffer=iMA(Symbol(),PERIOD_CURRENT,ma20_period,0,MODE_EMA,PRICE_CLOSE,i);

         Label2Buffer=iMA(Symbol(),PERIOD_CURRENT,ma60_period,0,MODE_EMA,PRICE_CLOSE,i);


         if(Label1Buffer> Label2Buffer)

           {

            Label3Buffer=Label1Buffer;

            Label4Buffer=Label2Buffer;

           }

         else

           {

            Label5Buffer=Label1Buffer;

            Label6Buffer=Label2Buffer;

           }

        }

//--- return value of prev_calculated for next call

   return(rates_total);

  }

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

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

//+------------------------------------------------------------------+//---mql5//---mql5//---mql5

int OnCalculate(const int32_t rates_total,

                const int32_t prev_calculated,

                const datetime &time[],

                const double &open[],

                const double &high[],

                const double &low[],

                const double &close[],

                const long &tick_volume[],

                const long &volume[],

                const int32_t &spread[])

  {

//---

   CopyBuffer(ma20_h,0,0,rates_total,Label1Buffer);

   CopyBuffer(ma60_h,0,0,rates_total,Label2Buffer);

   ArrayCopy(Label3Buffer1,Label1Buffer,0,0,rates_total);

   ArrayCopy(Label3Buffer2,Label2Buffer,0,0,rates_total);

   return(rates_total);

  }

//+------------------------------------------------------------------+
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-10-10 23:35 , Processed in 0.138249 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表