【发布时间】:2019-05-27 23:47:37
【问题描述】:
如果我必须在当前盘中访问前一天的每日收盘值,那么我只需使用以下https://getsatisfaction.com/tradingview/topics/using-pine-script-to-retrieve-previous-days-close-from-within-intraday-chart中描述的close[1]的安全功能。
但是,我不清楚在指标计算中是否使用相同的概念。 在https://www.tradingview.com/wiki/Context_Switching,The%E2%80%98security%E2%80%99_Function 的前瞻参数的讨论中提到了这一点,但我对自己的理解并不完全有信心..
请大家看看这段代码sn-p
在此示例中,ADX 指标是根据每日值计算的,然后在 30 分钟的时间范围内和第二天访问。如果 ADX 超过 25 并且看涨,我们进入多头头寸。如果 ADX 小于 25 或看跌,我们平仓。
作为一个具体示例,其意图如下:在周二早上交易的前 30 分钟结束时,我们将查看在周一晚上收盘价构建的 ADX。
为了实现这一点,我简单地将函数中对 high 和 low 的引用替换为 high[1] 和 low[1] 来计算 ADX。
请告知此代码是否是实现此目标的推荐方法,或者是否存在任何可能的错误。
谢谢
//@version=3
strategy("ADX daily long", overlay=true,initial_capital=100000, currency='USD', commission_type='strategy.commission,cash_per_order',commission_value=1, default_qty_type=strategy.cash,default_qty_value=100000)
length = input(title="Length", type=integer, defval=14)
src = input(title="Source", type=source, defval=close)
// Begin ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
adx_threshold = input(title="ADX threshold", type=integer, defval=25)
hd_period = '1D'
dirmovdirection(len) =>
up = change(high[1])
down = -change(low[1])
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = rma(tr[1], len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
direction = (plus>minus)?1:0
dirmov(len) =>
up = change(high[1])
down = -change(low[1])
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = security(tickerid, hd_period, adx(dilen, adxlen))
direction = security(tickerid, hd_period, dirmovdirection(dilen))
// plot(sig, color=red, title="ADX")
// End ADX
if sig > 25 and direction == 1
strategy.entry("ADX daily long", strategy.long)
if (sig< 25 or direction == 0)
strategy.close("ADX daily long")
【问题讨论】:
标签: pine-script