在价格图表上叠加一个指标,目的是在图表区域中绘制指标,即K线图位置绘制指标。我们如何以编程方式指定脚本的显示位置?即在放在K线图区域,或者单独的一个面板显示。 就像交易量这个指标,你可以把它放在单独的一个面板区域显示,也可以放在K线主图区域显示。 以编程方式在价格图表上放置一个指标 之前有粗略的提过用“overlay = true”设置,但是一笔带过,今天用一个例子详细说下。 在TradingView里,我们用study()函数来设置脚本的特性,比如名字和它应该如何显示在图表上。该函数是总是需要包含在指标的源代码中的唯一函数,并且其title参数(设置指标的名称)也是总是要在study()函数中定义。 study()的另一个参数是“overlay”。它是是一个可选参数,将此可选参数设置为true时,含义是覆盖在图表的工具上。这使指标显示与K线显示相同的图表区域中。当我们设置overlay到false,则指标会显示在单独的图表面板。例如:
overlay参数的默认值为false,这意味着只要overlay不设置参数,指标就会显示在单独的图表面板中。
当脚本被应用于图表时,在overlay参数加入到该study()函数或该参数有改变之前,则该指标需要被移除并重新添加到图表查看更新代码的效果。 该overlay参数具有一些值得注意的功能: 每个指标,无论其值的范围如何,都可以覆盖在主要数据系列上。当指标的值不同于工具本身使用的标度时,我们可以通过编程方式指定指标的价格标度,以防止工具的标度失真,比如交易量的指标放在K线图界面时,二者的衡量刻度时不一样的,这个可以单独设定。 其中,在overlay被设定为false,指标被隐藏的情况下,子图不可能通过编程设定。我们需要使用指标图表面板右上方显示的“向上移动”和“向下移动”图标手动进行此操作。 虽然大多数TradingView函数受overlay参数影响,但并非全部。例如,barcolor()无论参数overlay是ture还是false,始终都会为K线图的K线柱上色。 让我们看一个编程示例,看看如何overlay在实践中工作。 在单独的图表面板中绘制TradingView交易量直方图 在下面的示例指标中,我们绘制了交易量直方图,把最大和平均交易量绘制为线。 首先,我们将在单独的图表面板中显示该指标,然后在价格图表上覆盖该指标。讨论了代码之后,我们将查看指标在图表上的外观以及其输入选项。
我们以每个TradingView指标都需要的study()函数开始。此函数设置两个参数:title以定义指示器的名称和overlay,当设定为false,显示在单独的图面板指示。 然后,我们向脚本添加两个输入选项:
输入是通过进行的input(),该函数将选项添加到脚本的设置,但还返回选项的当前值(Pine Script Language Tutorial,nd)。在这里,我们使用赋值运算符将这些值存储在highestLen和averageLen变量中。这样,我们稍后可以在脚本代码中使用变量来引用输入的当前值。 两个输入都是数字整数输入。这些仅接受整数,并且是通过将函数的type参数设置
第一个输入带有title参数称为“最高长度” ,该名称是输入选项之前显示的名称(请参见下面的图像)。我们将此输入设置为默认值(defval)25,然后highestLen在计算最大音量时使用此输入(存储在变量中)。 另一个输入名为“平均长度”,以10(defval=10)开始。averageLen在计算平均体积时,使用此输入及其当前值存储在变量中。 然后我们计算指标的值:
在这里,我们创建两个变量:highestVol和averageVol。第一个函数分配了由返回的值highest(),该函数使用两个参数处理:一系列要处理的值以及要获得(TradingView,nd)最大值的柱线数。在这里,这些参数设置为柱子的值(volume)和highestLen,我们给它的输入变量的默认值为25。 我们将历史记录引用运算符([])放在highest()函数的后面,并且将其方括号之间的值设置为1。我们这样做是因为volume内置变量系列还包括当前条形图的体积。这意味着,如果我们计算直到当前柱线(包括当前柱线)的25条柱线的最大值,那么当前柱线的值永远不会超过该最大值。 因此,我们在这里使用历史记录引用运算符将“返回”的值“偏移”highest()过去的1个小节。这样,highestVol变量不会容纳包括当前柱线在内的最值,而是导致当前柱线最高的25个柱线中的最高值。 我们在此处(averageVol)创建的第二个变量设置为返回的值sma()。该函数使用两个参数来计算简单移动平均线(SMA):要处理的一系列值和用于计算(TradingView,nd)移动平均线的柱数。在这里,这些参数设置为volume和averageLen,这是我们之前给定标准值10的输入变量。 计算指标值后,我们确定交易量直方图的颜色:
借助两个条件(三元)运算符(),为histColour变量分配了条件颜色。该运算符处理三个值,第一个是真/假条件。只要该条件求值为,条件运算符就会返回其第二个值;否则,返回其第三个值(Pine Script Language Tutorial,nd)。?:true 第一个条件运算符评估当前柱(volume)的体积是否大于(>)最近25个柱的最大值(我们存储在highestVol变量中的值)。这也说明了为什么我们不希望highestVol变量包含当前钢筋的体积,否则该条件将永远无法满足。当条件为时true,该条件运算符返回orange 基本的TradingView颜色,我们将该颜色存储在histColour变量中,以备后用。 但是,只要当前条的值不大于最大值,就会处理第二个条件运算符。然后,第二个条件运算符将检查音量是否高于10 bar平均值(volume > averageVol)。如果是这种情况,则此条件运算符将返回中度蓝色的#7B68EE 十六进制颜色(然后将该颜色存储在histColour变量中)。 但是,如果第二个条件运算符的条件也是false如此,则后一个运算符将返回#4169E1皇家蓝的十六进制颜色,然后将其分配给histColour变量。因此,我们在此所做的就是根据酒吧的音量将该变量设置为橙色,深蓝色或宝蓝色。然后在绘制交易量直方图时使用该变量:
交易量直方图由制成plot(),该函数将其自变量的数据绘制series在图表上。在第一个plot()语句中,我们将该参数设置为volume。并且将style参数设置histogram为该体积时,将显示为直方图条形图。 在color该参数的plot()函数定义了曲线的颜色,在这里我们设置参数histColour-我们设置为三种颜色较早的一个变量。为了使这些直方图条更加引人注目,我们使用linewidth参数将其大小设置为5 。 其他两个plot()语句在图表上显示最高和平均交易量。为此,我们将其series参数设置为highestVol和averageVol变量。由于我们style此处未指定参数,因此默认情况下,这些值以连续的行绘制。这些行的颜色设置为red和green 基本TradingView颜色。 在单独的图表面板中绘制体积 当我们将以上示例指标添加到德国DAX指数差价合约的图表时,交易量直方图如下所示: 该指标具有以下输入选项: 在图表的工具上绘制一个TradingView指标 要将指标绘制在与图表工具相同的图表面板中,我们只需要更改编程示例的第一行。该study()函数行更改为:
我们在这里进行两个调整。首先,将overlay参数设置为true使指标图与工具位于同一图表区域(TradingView,nd)。另一个区别是通过将参数设置为0来更改指标的小数精度。precision这样,指标的值就不会以4个小数(默认精度,我们在前面的图片中看到)来显示,而是以零个小数来显示。 然后,我们保存脚本而不进行其他代码修改。指标在图表上刷新,然后看起来像: 当我们这样做时,更新的指标将显示在DAX 30指数差价合约上: 要将脚本设置为左轴,我们右键单击指标图之一,然后选择“向左缩放”: 剩下的一个问题是,由于默认情况下图表的左侧价格轴处于禁用状态,因此量值不会显示在价格轴上。要更改此设置,我们右键单击正确的价格轴,然后选择“左轴”: 完成了分区间定投的代码编写 分区间定投的完整代码已经写完,如有兴趣可以去Tradingview上注册个号,可以直接在自己的图上显示这个策略,不过源代码暂时没有公开。 相当长的一段时间之内,会根据这个策略指导自己的操作,在确定性高的位置,会另外加大自己的趋势交易仓位。 接下来会专注量化交易策略,和Python编程的学习。 最近学习Pine语言编写策略的过程发现,自学的过程中,搜索是极为重要的能力,我们碰到的绝大部分问题前人都遇到过,且都在互联网上存在着,就看能否找到。 如果尽量找了找不到,可以主动去寻求帮助,我的几个费时很多的问题都是在社区问的外国友人,基本都得到确定性的答案,还是很感激的。 最近开始翻笑来老师的《自学是门手艺》,这是一本Python编程语言的自学书籍,笑来老师在讲道理上、教别人这件事上,是顶级的。有学编程的,也可从这本书入手。 有想制定自己的指标和交易策略的伙伴,欢迎大家添加微信jinvlog交流。 注册Tradingview平台,点击Tradingview。 金金的分区间定投最近已经停止定投,等待更高位置,对分区间定投不了解的可以点击链接:定投这样投,收益高很多 —- 编译者/作者:金金 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Pine语言入门(九)如何在价格图表上叠加一个指标//完成了分区间定投的全部脚
2020-11-10 金金 来源:区块链网络
LOADING...
相关阅读:
- BTC一周流入46亿元 关键指标表现强势2020-11-10
- 区块链大型巡回播放【第104期】#去金融中介(中)# &“行情解读”2020-11-10
- 预言机是智能合约链接链下的关键,区块链中需要NFT收藏品吗?2020-11-10
- 十月份行情回顾, 接下来怎么走?2020-11-10
- 逃顶抄底!千点回调!2020-11-10