在TradingView中,我们可以为图表和水平线着色,也可以填充介于两者之间的背景部分。但是,我们如何从顶部到底部为TradingView图表的整个背景着色? 为TradingView图表背景着色的函数 我们既可以手动设置脚本的颜色,也可以通过代码设置颜色,即可以在特定条件下显示特定颜色。TradingView中可用的颜色是基本的颜色变量和十六进制的颜色值,它们可以使用数百万种颜色。 几个函数有接受颜色值的参数,其中之一是bgcolor()。该函数为脚本的背景着色,并且可以是价格图表的背景或子图表。bgcolor()包括有条件地为图表的背景着色并突出显示交易时段的背景。 该bgcolor()函数具有以下默认语法: bgcolor(颜色,变换透明度,偏移,可编辑,标题) color:必填参数,用于将填充背景的颜色设置为基本TradingView颜色或十六进制颜色值。也可以将此参数设置为三元条件表达式(例如close > open ? color.green : color.red),以便有条件地为图表的背景着色。 注意:该bgcolor()和fill()函数都能给图表背景着色。但是,fill() 在两条曲线或两条水平线之间的背景部分上色,而bgcolor()则是从上到下为图表的背景上色。 使用TradingView交易策略为图表的背景着色 举例说明bgcolor()功能。在此策略中,当三条EMA(指数移动平均线)从短期到长期依次排列,进入多头头寸;而当三个EMA彼此下方时,依次向下排列,我们将做空。 该示例策略给予市场头寸为背景着色。多头时,背景颜色变为绿色。空头时为红色。 但首先是代码:
同样从头开始解释整个脚本过程: 从strategy()函数开始,overlay参数为true是将策略显示在主图图表上。 接下来,策略添加三个输入函数,即在图表的设置项中有相应的对话框: priceData = input(title=”Price data”, type=input.source, defval=hl2) 第一行的输入是源数据输入选项,将input()函数的类型参数type设置为source。这样的输入会在脚本的设置中创建一个下拉菜单,可以在对话框中选择不同的数据源。在本例中,此输入的默认值(defval)设置为hl2,意思是最高点和最低点的平均值,[high + low] / 2值。此输入内容命名为“价格数据”,然后使用赋值运算符(=)将其当前值存储在priceData变量。这样,就可以使用此变量来引用“价格数据”输入的当前值。 其他三个输入都是数字整数输入,我们通过将函数的type参数设置为input()来进行输入integer。这些输入,名为“EMA 1”,“2 EMA”和“EMA 3”,给出了默认值的12,24,和36。input()的返回值存储在ema1Length,ema2Length和ema3Length输入变量里,稍后在计算EMA时参考它们。 然后我们计算移动平均值: ema1 = ema(priceData, ema1Length) EMA是使用来计算的ema(),该函数需要两个参数:一系列数据以及用于计算EMA的柱线数(TradingView,nd)。这些移动平均值基于priceData我们刚才设置的默认值hl2。EMAS的长度被设定为输入变量 ema1Length,ema2Length,和ema3Length。被返回的计算EMA值存进ema()的ema1,ema2和ema3变量里。 然后,这些EMA值用于确定enterLong和enterShort变量的值: enterLong = ema1 > ema2 and ema2 > ema3 基于使用大于(>)和小于(<)比较运算符以及and和not 逻辑运算符的表达式,两个变量都被赋予为真/假值。 该enterLong变量被分配给基于两个条件真/假值。由于我们将这些条件与and逻辑运算符结合在一起,因此在将所有条件赋予值true之前,都需要将它们都enterLong存在true。当一个或多个条件为时false,and也将合并结果false。我们的第一个条件检查第一个EMA是否高于第二个(ema1 > ema2),而下一个条件评估第二个EMA是否高于第三个(ema2 > ema3)。换句话说,最快的EMA必须高于中间EMA,而EMA必须高于最慢EMA。 在给enterLong变量赋值之后,以几乎相同的方式为变量分配enterShort一个true / false值。 接下来,我们在图表上绘制EMA值: plot(series=ema1, color=color.orange, linewidth=2) 然后是设置显示输出函数plot(),该函数在图表上显示由其series参数指定的值。这个参数设置为ema1,ema2和ema3这里的变量,而这些保留的12,24和36均线作为输入选项的默认值。linewidth线宽参数设置为2,,颜色设置为orange,maroon和blue的标准TradingView颜色。 然后,订单开启的条件脚本: if (enterLong) 这两个if语句使用enterLong和enterShort真/假变量。if语句评估条件,当条件为true时,将执行代码。第一个if语句对enterLong变量进行评估,并在该变量返回true时执行其下的语句。 最后为图表的背景着色: backgroundColour = (strategy.position_size > 0) ? green : red 在这里,我们有条件地为背景着色。为此,我们首先创建backgroundColour变量并为其分配条件三元运算符(?:)返回的值。该运算符将判断条件,并在条件为true时返回其第二个值,或者在条件为false时返回其第三个值。 我们这里计算的条件是的值是否该(持仓头寸)strategy.position_size变量是大于(>)0,strategy.position_size内置变量返回的方向和策略的开启位置的大小:正值表示多头;负值表示空头头寸。不同条件下显示不同的颜色。 将这些颜色之一存储在backgroundColour变量中后,我们使用更改图表的背景颜色bgcolor()。我们将此函数的color参数设置为backgroundColour变量,并将其transp参数设置为彩色背景的透明度。当策略时多头时,图表的背景将变为绿色;而在策略空头时,则将其变为红色。 为TradingView策略的背景着色 把代码放进比特币日线,结果显示如下图: 总结 该bgcolor()函数为图表的背景着色,并且可以是主图表区域(将脚本添加到图表工具时)或显示指标或策略的子图表。设置背景颜色是通过此函数的color参数完成的,而背景的透明度是通过transp设置的,该参数接受的值介于0(无透明度)到100(完全透明)之间。要将彩色背景向左或向右移动,我们分别将bgcolor()函数的offset参数设置为负值或正值。的其他两个参数bgcolor(),title并且editable,如果定义,并与名称,彩色背景显示在脚本的“风格”窗口。 下图是金金将分区间定投策略的不同区间分别着色的结果: 有兴趣的可以复制脚本进行试验。 有想制定自己的指标和交易策略的伙伴,欢迎大家添加微信jinvlog交流。 注册Tradingview平台,点击Tradingview。 —- 编译者/作者:金金 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Pine语言入门(十三)如何为TradingView的K线图表添加背景着色
2020-11-19 金金 来源:区块链网络
LOADING...
相关阅读:
- Pine语言入门(十一)函数创建与三元条件运算符?:2020-11-16
- Chainlink仍然坚信寻求新高2020-11-10
- Pine语言入门(八)如何定义一个数字输入函数2020-11-10
- 4张图表显示财务顾问为何应关注比特币2020-11-05
- 这张比特币的HODL图表数月以来首次发出看跌信号2020-11-03