大家好,今天我们继续来学习画图函数。在本节课的最后,我将利用画图函数打造一个简易的指标参考系统,帮助交易者在实盘交易中,及时检阅出市场信号,进而迅速进行交易操作,这对于半程序化交易者十分友好。
首先我们学习plotshape函数,plotshape函数在图表上绘制可视形状。它的基本语法结构为:
plotshape(series, title, style, location, color, offset, text, textcolor, editable, size, show_last, display)
其重要的内置参数如下所示,基本上伴随策略周期变化的参数,都可以使用三元表达式,根据你的交易逻辑,在图中进行不同的展示:
data = close >= open
plotshape(data, style=shape.xcross)
这里我们看到只显示收盘价大于开盘价时的乘号标志。
plotshape(close, style=close > open ? shape.arrowup: shape.arrowdown)
这里我们看到如果收盘价大于开盘价,使用上升箭头,否则使用下降箭头。
plotshape(close, style=close > open ? shape.arrowup: shape.arrowdown, text = close > open ? '涨': '跌', textcolor = close > open ? color.red: color.green)
该函数在图表上使用任何给定的Unicode字符绘制可视形状。
plotchar(series, title, char, location, color, offset, text, textcolor, editable, size, show_last, display)
重要的参数和上述讲解的基本一致:
plotchar有很多灵活的运用,比如在k线图中标注“十字星”。十字星是一种趋势信号判断的一个重要指标,十字星出现说明多空双方争夺激烈,互不相让。其基本定义为如果一日内开盘价和收盘价的差距很少,或者相等。因此,代码中使用数学绝对值(math.abs)的形式判断开盘价和收盘价的差距,如果差距小于等于5,则定义为十字星出现,判断为true。然后使用plotchar在图表中展示。
data = math.abs(close - open) <=5
plotchar(data, char='十字星')
在图表上绘制蜡烛。
plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display)
例子
indicator("plotcandle example", overlay=true)
plotcandle(open, high, low, close, title='Title', color = open < close ? color.green : color.red, wickcolor=color.black)
其重要的参数如下所示:
在图表上绘制向上和向下箭头:向上箭头绘制在每个正值指标上,而向下箭头绘制在每个负值上。 如果指标返回na,则不会绘制箭头。 箭头具有不同的高度,指标的绝对值越大,绘制箭头越长。
plotarrow(series, title, colorup, colordown, offset, minheight, maxheight, editable, show_last, display)
codiff = close - open
plotarrow(codiff, colorup=color.new(color.teal,40), colordown=color.new(color.orange, 40), overlay=true)
其重要参数如下所示,其他参数按照默认值即可:
顶背离:K线图上的价格走势一峰比一峰高,价格一直在向上涨,而MACD指标图形上的由红柱构成的图形的走势是一峰比一峰低,即当价格的高点比前一次的高点高、而MACD指标的高点比指标的前一次高点低,这叫顶背离现象。这是一个有“多”转“空”的参考信号。 底背离:K线图上的价格走势一峰比一峰低,价格一直在向下跌,而MACD指标图形上的由绿构成的图形的走势是一峰比一峰高,即当价格的低点比前一次的低点低、而MACD指标的低点比指标的前一次低点高,这叫底背离现象。这是一个有“空”转“多”的参考信号。
12日EMA的计算:EMA12 = 前一日EMA12 * 11/13 + 今日收盘 * 2/13 26日EMA的计算:EMA26 = 前一日EMA26 * 25/27 + 今日收盘 * 2/27 差离值(DIF)的计算: DIF = EMA12 - EMA26 9日DEA = 前一日DEA * 8/10 + 今日DIF * 2/10BAR=(DIF-DEA)*2 MACD=(DIF-DEA)*2
fastline = ta.ema(close,12)
slowline = ta.ema(close,26)
diff = fastline - slowline
dea = ta.ema(diff,9)
macd = 2*(diff - dea)
快线下穿慢线: MACD 从正转为负(下穿0线) 价格逐渐上涨:今日价格大于昨日
bot_diver = ta.crossunder(macd,0) and close[1] < close
plotchar(top_diver, char='顶背离', location = location.abovebar, size = size.normal, overlay=true)
快线上穿慢线: MACD 从负转为正(上穿0线) 价格逐渐上跌:今日价格小于昨日
bot_diver = ta.crossover(macd,0) and close[1] > close
plotchar(bot_diver, char='底背离', location = location.belowbar, size = size.normal, overlay=true)