实现方法:在每根k线上绘制柱子,粗柱子作为K线主体,细柱子作为k线引线。

技术难点:本例没有使用绘制对象的方法,而是直接使用MT4指标的方法绘制DRAW_HISTOGRAM,主图指标使用这个方法必然是两两成对。

举一反三:掌握了这个技术,可以绘制一些独特的k线,比如说达到了一定的条件,才显示特定颜色的k线,更高级一点,可以使用这个技术绘制砖块图,也就是Renko图。这比绘制Object的方式高效多了,也更加节省内存,速度更快。

效果如图:

说明:为了便于观看,自定义的K线绘制在当前k线上移了20个点的位置。

完整源码如下:

//+------------------------------------------------------------------+
//|                                                    自定义K线.mq4 |
//|                                                         漆天编程 |
//|                                           http://www.forexmt4.cn |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "http://www.forexmt4.cn"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property  indicator_buffers 4
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_color3  Silver
#property  indicator_color4  Red
#property  indicator_width1  5
#property  indicator_width2  5
#property  indicator_width3  1
#property  indicator_width4  1double    Buffer1[];
double    Buffer2[];double    Buffer3[];
double    Buffer4[];int shift=-200;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(){
//--- indicator buffers mappingSetIndexStyle(0,DRAW_HISTOGRAM);SetIndexStyle(1,DRAW_HISTOGRAM);SetIndexStyle(2,DRAW_HISTOGRAM);SetIndexStyle(3,DRAW_HISTOGRAM);SetIndexBuffer(0,Buffer1);SetIndexBuffer(1,Buffer2);SetIndexBuffer(2,Buffer3);SetIndexBuffer(3,Buffer4);
//---return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[]){
//---int i,limit;limit=rates_total-prev_calculated;if(prev_calculated>0)limit++;
//--- macd counted in the 1-st bufferfor(i=0; i<limit; i++){Buffer1[i]=Open[i]-shift*Point;Buffer2[i]=Close[i]-shift*Point;Buffer3[i]=High[i]-shift*Point;Buffer4[i]=Low[i]-shift*Point;}
//--- return value of prev_calculated for next callreturn(rates_total);}
//+------------------------------------------------------------------+

75行代码就搞定了,如果看不明白,可以问我,我来教你。

【漆学军】分享一个自定义K线的指标的源码相关推荐

  1. 推荐分享一个自定义绑定控件(附源码)

    在asp.net中,对于一个以数据处理为主的UI层,我们往往需要写很多的代码去实现数据的绑定,当然我们也需要费一点心思从控件上去收集数据. 下面,我分享一个自定义控件来实现双向绑定. 一.基于控件ID ...

  2. 分享一个四足蜘蛛机器人(带源码)

    分享一个四足蜘蛛机器人 - 开题 进入大学以来,学习单片机已经很长时间了.之前都是在开发板上学习各种外设,做各种实验,一直也都没正经的做过什么项目.刚好临近毕业,需要做毕业设计,我感觉这是一个很好的机 ...

  3. 分享一个公众号h5裂变吸粉源码工具

    这次我是分享我本人制作的一个恶搞程序,说白了就是一个公众号裂变吸粉工具,市面上有很多引流方法,例如最常见的就是色流,哈哈,今天我跟大家分享的方法是有趣的,好玩的,恶搞的.这个程序上线一天已经收获了61 ...

  4. 分享一个Auto.js开发的快手抢红包源码

    今天分享一个自用的auto.js开发的快手抢红包源码,感兴趣的朋友可以研究一下. "ui";ui.layout(<vertical><appbar>< ...

  5. HQChart使用教程4- 如何自定义K线图颜色风格

    如何自定义K线图颜色风格 切换整体风格函数 uniapp/小程序 修改部分配置颜色 风格配置字段说明 配置项说明 y轴顶部刻度文字向下偏移 X轴底部刻度文字,向下偏移 K线标题字段配色修改 PC端to ...

  6. plotly基于dataframe数据绘制股票自定义K线图

    plotly基于dataframe数据绘制股票自定义K线图 #  绘制蜡烛图并自定义可视化形式: import plotly as py import plotly.graph_objs as go ...

  7. HQChart实战教程24 - 自定义K线画图工具设置框(线段类)

    HQChart实战教程24 - 自定义K线画图工具设置框 画图工具 步骤 监听画图工具选中事件 点击事件回调 1. 回调参数说明 2. 图形实例类说明 Symbol Period Vaule Line ...

  8. mt4 指标 涨跌幅 颜色k线_Tick级别K线显示指标

    tick是指价格的波动,价格每波动一次,tick数加1. 这是一个生成新K线图的指标,做这个指标的原因是因为我听说某个机构就是用的这种图表交易的,我在网上找了一下,本来我是想找个现成的Tick图指标看 ...

  9. 分享一个外国免费在线领各类软件激活码的网站

    分享一个外国免费在线领各类软件激活码的网站 链接地址:https://www.serials.ws/ 说明 有大量常用软件的激活码,包括操作系统的

最新文章

  1. NOIP2012 文化之旅
  2. IDEA显示类的结构 Alt+F7
  3. 年近八旬教授曾一次性捐款8000多万,今获省杰出贡献奖!
  4. 新增或编辑保存时出错后,页面无法再次编辑
  5. 机器视觉系统图像采卡基本概念
  6. C++/C--unordered_map常见用法详解
  7. 现在比较流行的一种新的清除浮动的方法
  8. 使用Python为中秋节绘制一块美味的月饼
  9. 微软 Windows 10 S 之心不死!
  10. makefile中伪目标的理解
  11. [转]cocos2d-x场景切换时内存过高导致crash解决方法
  12. 微信支付 ---- (商户号该产品权限处罚中)
  13. ma5200f设置使用用户名、密码登陆
  14. TST扫描电镜与透射电镜有什么不同?
  15. 巴塞尔协议中的计算公式_十分钟读懂巴塞尔协议
  16. 道阻且长,行则将至,行而不辍,未来可期
  17. [转]【C/C++】STL详解
  18. Idea无法自动补全代码,ctrl+Alt+v无法使用解决方法
  19. 推荐几款可以直接在手机上编程的app(包含Java、C、Python等)
  20. 青龙面板薅羊毛教程之矿二代每日保底1R

热门文章

  1. python爬虫,自动领取福利卷,剁手党的额福利!
  2. 开源解决方案搭建统一日志平台
  3. 一些植物查询的网站链接
  4. 如何让3ds Max 2016导入smd文件
  5. 公众号可快速查询审计报告,鉴别真伪!太方便了……
  6. linux 多线程 semaphore ,Linux下多线程编程-Pthread和Semaphore使用.doc
  7. 如何在Windows 10上控制多个显示器的功能
  8. 招标投标管理系统(毕业设计)
  9. 计算机逻辑函数,计算机智能化简多变量逻辑函数的算法分析
  10. 工作这么多年,所经历5个骗子上司