期货量化软件:赫兹量化系统中研发创建多彩烛条

在本文中,我将探讨创建烛条图表自定义指标的可能性,并指出它们的优缺点。

首先,我们需要澄清在蜡烛图中实现上色规则的原因,以及为了创建您自己的指标,而进行正确选择的重要性。 鉴于用户与程序的交互,或者鉴于程序针对硬件的优化,每种方法都有其特殊性、优点和缺点。

我们首先研究一个适用于 3 个置换价格线的操作模型。 第一条线(黑色)是价格本身,第二条线(蓝色)是向前偏移 10 个周期的 1 周期移动平均线,第三条线(红色)是向前偏移 20 个周期的 1 周期移动平均线。 模型在价格图上的构建如下所示,在其中我插入了两条移动平均线,并将价格图更改为折线。

乍一看,这是一个不友好的模型,难以解释,因为它不仅需要辨别线条的颜色,还需要辨别它们之间的关系。 这通常会导致决策混乱和错误。 另一个可能导致混淆和错误的模型是方向走势指数指标,出于同样的原因,不仅需要辨别线条的颜色,还需要辨别它们之间的关系。

事实上,要考虑的变量或指标越多,解释错误就越频繁,导致决策和结果不一致。 我们可以使用任意数量的指标和变量,只要我们将这些数据转化为易于理解的客观信息即可。

采用上色规则是一种浓缩所有信息的有效方式,从而准确地告诉我们自己想知道什么:我们什么时候可以买入、卖出,以及什么时候应该离场。 所以我们可以合成 3 种颜色的信息。 一种针对买入,一种针对卖出,一种针对买入或卖出条件均不满足的情况。 在本文中,我用绿色代表买入,红色代表卖出,其它情况则用黄色。

这是由我们的 MQL 向导生成的代码。

 
 

//+------------------------------------------------------------------+ //| Candles.mq5 | //| Copyright 2021, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window #property indicator_buffers 4 #property indicator_plots 1 //--- plot Candle #property indicator_label1 "Candle" #property indicator_type1 DRAW_CANDLES #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- indicator buffers double CandleBuffer1[]; double CandleBuffer2[]; double CandleBuffer3[]; double CandleBuffer4[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,CandleBuffer1,INDICATOR_DATA); SetIndexBuffer(1,CandleBuffer2,INDICATOR_DATA); SetIndexBuffer(2,CandleBuffer3,INDICATOR_DATA); SetIndexBuffer(3,CandleBuffer4,INDICATOR_DATA); //--- 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值