我正在尝试重新实现该rma函数,TradingView pinescript但无法使其输出与原始函数相同的结果。
下面是我开发的代码,代码基本就是ema函数,但是做图的时候和rma函数plot结果差别很大:
//@version=3
study(title = "test", overlay=true)
rolling_moving_average(data, length) =>
alpha = 2 / (length + 1)
sum = 0.0
for index = length to 0
if sum == 0.0
sum := data[index]
else
sum := alpha * data[index] + (1 - alpha) * sum
atr2 = rolling_moving_average(close, 5)
plot(atr2, title="EMAUP2", color=blue)
atr = rma(close, 5)
plot(atr, title="EMAUP", color=red)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是该rma函数如何在内部工作,以便我可以实现它的克隆?
附注。这是文档的链接https://www.tradingview.com/study-script-reference/#fun_rma它确实显示了可能的实现,但在运行时不起作用。
如何在 Pine 脚本中设置strategy.commission.percent?
我知道如何在手动设置中将佣金设置为百分比。但是有没有办法用代码设置佣金?
这是我的策略脚本:
strategy("Working 55 & 200 EMA strategy", overlay = true, initial_capital=1000)
fast = input(defval = 55, step = 5)
slow = input(200)
ma1 = ema(close, fast)
ma2 = ema(close, slow)
plot(ma1, title = "Fast MA", color = lime, style = line, linewidth = 3)
plot(ma2, title = "Slow MA", color = black, style = line, linewidth = 3)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval …Run Code Online (Sandbox Code Playgroud) 我似乎无法弄清楚从交易进入的特定时间间隔退出交易的语法。任何帮助将不胜感激。
if (crossover(delta, 0))
strategy.entry("Long", strategy.long, comment="Long")
strategy.exit("Exit", "Long", when = 15)
Run Code Online (Sandbox Code Playgroud)
上面的代码我想exit在15天后建立多头头寸。但这似乎不起作用。
我正在尝试使用 Pine Script 在 tradeview 中创建一项新研究。
isCurrentMonth = month(timenow) == month(time)
plot(isCurrentMonth ? close : na)
Run Code Online (Sandbox Code Playgroud)
这段代码可以帮助我显示当前月份,但我只想显示当前日期。
谢谢你的帮助!
假设我们有一系列数字。它包含一些值[..., 3, 6, 4, 7]。我想获得最多 100 个最后一个元素。
我试过max(series[100]),但看起来 series[100] 运算符返回丢弃最后 100 个元素的子系列。
FOREX, 1H Chart, //version=3 pinescript
我还是 Pinescript 的新手,但我注意到使用close或open返回的数据不是当前的收盘价或开盘价。即使使用close[1]返回的金额也与前一根蜡烛的收盘价完全不同。
为什么是这样?我是否错误地解释了这些数据?
在我所做的研究中,我看到了这篇文章:https : //www.tradingcode.net/tradingview/operators/history-referencing-operator/:
从技术上讲,历史引用运算符不会返回单个值,而是返回一系列具有一定偏移量的值,尽管我们通常认为历史引用运算符访问的是第 n 个元素。
这意味着,例如,
close[5]返回的不是一个单一的 收盘价,而是一系列等于 5 个柱线前收盘价的收盘价。
上面那句大胆的声明—— “一系列收盘价”;这是否意味着它close[5]本身不是第 5 根蜡烛的收盘价?
如果是这种情况,那么我将如何显示该蜡烛的当前收盘价,例如:
strategy.entry("SHORT", strategy.short, comment=tostring(close[1]) )
我正在开发一个指标,通过更改图表背景来显示自定义时区会话。
为此,我使用此函数来检查一个条形是否在我定义的时间段之一内:
InSession(sess) => na(time(period, sess)) == false
Run Code Online (Sandbox Code Playgroud)
当sess它的东西相似"0130-0800"。
但它在周末没有画任何东西。该time()函数似乎仅在工作日检查其输入。但我在每天开放的加密货币中使用这个指标。
有什么办法可以把time()支票延长到周末吗?如果没有,您能想出另一种方法来检查柱线是否在时间范围内吗?
PS:这是完整的指标代码:https : //es.tradingview.com/script/NMjZ2616/
我想了解如何 := 和 sum[1] 工作。这个和返回给我 6093。但是 sum 是 0,也是 sum[1] = 0 ,对吗?它如何返回我 6093?我搜索了tradeview wiki,但我不明白。我想将此代码更改为另一种语言,例如 javascript 、 c#
testfu(x,y)=>
sum = 0.0
sum:= 1+ nz(sum[1])
sum
Run Code Online (Sandbox Code Playgroud) 我想在一个月(对于每日和每周图表)或一年(对于每月图表)的每个第一个柱上绘制一条垂直虚线。我怎样才能做到这一点?我不知道如何获取这些条形索引。
添加: 我在 这篇文章中读到 ,“line.new”的每个指标最多 54 行的限制。但是,当以直方图样式使用绘图函数时(=仅绘制单个垂直直方图条),我无法绘制虚线...并且我更喜欢带有虚线的解决方案...