如何将研究变为策略?

问题描述

我对pine脚本非常陌生,昨天才开始尝试了解它的工作原理。

我已复制从Tradingview粘贴的某个研究,现在正尝试进行调整以使其成为一种策略。

还有另一个问题,我也希望代码的plotshape行直接绘制到主图表上而不是窗口上。

有两件事,添加从研究到策略更改所需添加的内容,以及将代码的最后两条plotshape行从窗口移至主图表。

谢谢

这是我正在使用的代码。

strategy("RSI + BB (EMA)",overlay=true)

// Инициализация параметров
src = input(title="Source",type=source,defval=close)
for_rsi = input(title="RSI_period",type=integer,defval=14)
for_ma = input(title="Basis_BB",defval=20)
for_mult = input(title="Stdev",defval=2,minval=1,maxval=5)
for_sigma = input(title="Dispersion",type=float,defval=0.1,minval=0.01,maxval=1)

// Условия работы скрипта
current_rsi = rsi(src,for_rsi)
basis = ema(current_rsi,for_ma)
dev = for_mult * stdev(current_rsi,for_ma)
upper = basis + dev
lower = basis - dev
disp_up = basis + ((upper - lower) * for_sigma)
disp_down = basis - ((upper - lower) * for_sigma) 
color_rsi = current_rsi >= disp_up ? lime : current_rsi <= disp_down ? red : #ffea00

// Дополнительные линии и заливка для областей для RSI
h1 = hline(70,color=#d4d4d4,linestyle=dotted,linewidth=1)
h2 = hline(30,linewidth=1)
fill (h1,h2,transp=95)

// Алерты и условия срабатывания
rsi_Green = crossover(current_rsi,disp_up)
rsi_Red = crossunder(current_rsi,disp_down)

alertcondition(condition=rsi_Green,title="RSI cross Above Dispersion Area",message="The RSI line closing crossed above the Dispersion area.")

alertcondition(condition=rsi_Red,title="RSI cross Under Dispersion Area",message="The RSI line closing crossed below the Dispersion area")

// Результаты и покраска
plot(basis,color=black)
plot(upper,color=#00fff0,linewidth=2)
plot(lower,linewidth=2)
s1 = plot(disp_up,color=white)
s2 = plot(disp_down,color=white)
fill(s1,s2,color=white,transp=80)
plot(current_rsi,color=color_rsi,linewidth=2)
plotshape(rsi_Green,title="RSI Buy Signal",location=location.belowbar,color=green,transp=0,style=shape.triangleup,text="Buy")
plotshape(rsi_Red,title="RSI Sell Signal",location=location.abovebar,color=red,style=shape.triangledown,text="Sell") ```

解决方法

如果脚本以“ study()”函数开头,而策略始终以“ strategy()”函数开头,则该脚本被视为TradingView中的研究。

例如,插入具有以下参数的函数将定义您的策略名称,将overlay设置为true会将其添加到主图表中,而不是在底部的单独指标图中显示。

strategy(title='MyStudy',overlay=true)

如果要将脚本中的叠加层从false更改为true,请记住要删除图表中现有的叠加层,然后再次添加;否则,情节可能不会刷新。

研究和策略之间的区别在于,策略脚本通常包含诸如strategy.entry()和strategy.exit()之类的函数,它们告知引擎何时进行买卖,而研究仅在图表中绘制数据。

您的脚本已被定义为策略。您所需要做的就是添加必要的strategy.entry()和strategy.exit()行以实施您的策略,并绘制要显示的行。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...