LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > Pine语言入门(十六)将源输入类型添加到TradingView Pine脚本

Pine语言入门(十六)将源输入类型添加到TradingView Pine脚本

2020-12-14 金金 来源:区块链网络

我们可以向TradingView脚本添加多个输入,例如交易品种搜索框和true / false复选框。但是什么是源输入类型,我们如何使用它呢?

将源输入类型添加到TradingView Pine脚本

当我们在TradingView中创建指标或交易策略时,我们可以在脚本的“输入”窗口中手动设置使用变量的值。这样,我们可以更改某些值(例如移动平均线的长度,回测时间的长度等),而不必更改脚本的代码。

通过将输入添加到具有input()函数的脚本中来创建此类输入变量。该函数不仅会自己创建输入选项,它还返回当前设置的输入值。然后,我们需要将返回值赋给一个变量。

在TradingView中,可能有几种输入,例如true / false复选框,交易时间范围输入和交易品种搜索框。也可以使用“源”代码输入,该输入使我们能够从脚本所应用的工具中选择不同的数据系列,例如其收盘价或最低价。

例如,我们可以使用源输入手动配置应该计算指数移动平均线(EMA)的数据。或者我们可以使用它来指定脚本是绘制最高价,最低价还是平均价。下面仔细讨论。

在TradingView中创建源输入的默认语法

创建源输入的默认模式是:
variableSeries = input(title, type=source, defval)
这三个参数表示以下内容:

title:可选参数,用于设置输入的标题(如title=”Data type”)。此文本位于“输入”窗口中的输入选项之前。
type source:为了创建数据类型下拉菜单,我们需要将其设置为必填参数。我们在该菜单中选择的值由input()返回,然后存储在variableSeries变量中。
defval:必填参数,用于设置输入的默认值(有关允许的值,后文有列)。使用此默认值,脚本可以在添加到图表后立即开始计算。
当我们source向脚本添加输入类型时,它将创建如下输入设置:

下拉菜单中包含以下各项:

在TradingView中源输入型的默认值

source输入类型的默认值必须是上一个图像中显示的项目之一。可能的defval(默认)值及其含义为:

defval=open:将默认值设置为添加脚本的一系列K线柱的开盘价。
defval=high:将默认值设置为一系列K线柱的最高价。
defval=low:将源类型设置为一系列K线柱的最低价。
defval=close:将一系列收盘价指定为默认值。
defval=hl2:将默认值设置为条的中点(即(high + low) / 2)。
defval=hlc3:将最高价,最低价和收盘价的平均值定义为默认值(即(最高价+最低价+收盘价) / 3)。
defval=ohlc4:将默认值设置为价格栏四个成分的平均值(即开盘价+最高价+最低价+收盘价 )/ 4)。

看一个例子,了解如何使用source类型。

示例:绘制不同数据系列之间的相关性

先看下此示例的代码中包含的输入选项:

当我们将其默认设置的脚本添加到4小时的BTC / USD图表中时,该指标如下所示:

现在,如果我们将输入选项更改为以下设置:

通过这些设置,指标将绘制BTC / USD和ETH / USD高点之间的相关性,如下所示:

在TradingView Pine中使用源输入类型

该示例指标的代码:

//@version=4
study(title=”Correlation with other data series”,
shorttitle=”Correlation”)

// Add the inputs
otherDataSeries = input(title=”Other data series”, type=input.symbol,
defval=”BTCUSD”)

sourceType = input(title=”Source type”, type=input.source, defval=close)

corLength = input(title=”Correlation length”, type=input.integer,
defval=20, minval=5)

emaLength = input(title=”EMA length”, type=input.integer,
defval=12, minval=5)

// Get the additional data series
otherSymbol = security(otherDataSeries, timeframe.period, sourceType)

// Calculate correlation and EMA
corr = correlation(sourceType, otherSymbol, corLength)
emaCorr = ema(corr, emaLength)

// Plot values
plot(series=corr)
plot(series=emaCorr, color=color.orange)

该代码以开头study(),用于设置指标的属性,例如指标的名称。然后,我们input()四次使用该函数向脚本添加尽可能多的输入。

首先,我们通过将输入设置为来创建符号搜索框。其名称设置为“其他数据系列”,此选项的默认值()为“ EURUSD”。我们将输入的当前值(带有符号和交换的字符串)存储在输入变量中。我们稍后将在后台加载价格数据时使用该变量。typesymboldefvalotherDataSeries

第二个输入是source默认设置为收盘价的一种类型,名称为“源类型”。我们将该输入的值存储在sourceType变量中。第三个输入(其值存储在corLength变量中)是一个名为“ Correlation length”的数字integer输入,默认值为20,最小值(minval)为5。“ EMA length”是最后一个输入,并且integer具有默认值值为12,最小值为5。我们将该输入分配给emaLength变量。

接下来,我们使用该security()函数在后台加载数据系列。

我们将三个参数传递给该函数:要加载的符号,其分辨率以及从该数据系列返回的值。该符号由otherDataSeries输入变量指定。它的分辨率由设置period,这是一个内置变量,该变量返回脚本当前添加到的数据系列的分辨率。

该sourceType输入变量,我们默认设置为收盘价,是最后一个参数。因此,使用默认值security()返回的欧元/美元收盘价具有与当前图表相同的分辨率。我们将该数据存储在otherSymbol变量系列中。

然后,我们计算图表的数据系列与加载的数据之间的相关性security()。我们使用来完成此操作correlation(),该函数需要三个参数:

两个数据系列(用于计算之间的相关性)和一个指定相关长度的整数。数据系列设置为sourceType输入变量(其默认值为close,返回图表的收盘价)和otherSymbol变量系列(我们在其中存储的数据由)返回security()。

相关长度设置为corLength输入变量,而返回的值correlation()存储在corr变量系列中。

接下来,我们通过传递两个值计算EMA的ema()功能。第一个是要处理的一系列值(我们使用相关值corr),第二个是用于计算上EMA的柱线数,我们将其设置为emaLength输入变量。这样,我们就可以根据相关值和脚本输入选项中设置的长度计算移动平均值。计算出的值ema()存储在emaCorr变量中。

通过计算相关性和EMA,我们可以使用函数将这些显示在图表上,该plot()函数在图表上绘制一系列数据(TradingView,nd)。在第一个plot()函数中,我们通过将函数的series参数设置为来在图表上绘制相关值corr。第二条plot()语句emaCorr在图表上以橙色实线显示EMA值()。

总结

该input()函数将输入选项添加到脚本。它还返回设置的当前值,通过将该值存储在变量中,我们可以在脚本的源代码中使用手动选项的值。使用input()函数的type参数,我们指定输入的类型,并将此参数设置为source以创建具有不同源数据系列(例如high,close或hl2)的下拉菜单。input()函数的defval参数设置了输入的默认值。

有兴趣的可以复制脚本进行试验。

有想制定自己的指标和交易策略的伙伴,欢迎大家添加微信jinvlog交流。

注册Tradingview平台,点击Tradingview。

—-

编译者/作者:金金

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...