[英]how to add a time control over a Pine script strategy
我有这个 Pine 脚本策略,它似乎也适用于 Cripto 和 Stocks
//@version=4
strategy("SSL Channel Cross", overlay=true)
period=input(title="Period", defval=10)
len=input(title="Period", defval=10)
smaHigh=sma(high, len)
smaLow=sma(low, len)
Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)
longCondition = crossover(sslUp, sslDown)
shortCondition = crossunder(sslUp, sslDown)
if (longCondition)
strategy.close("Short", strategy.long)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.close("Long", strategy.long)
strategy.entry("Short", strategy.short)
我正在尝试添加一个时间控制部分代码,以便我可以在特定时间测试该策略。 我修改代码如下
//@version=4
strategy("SSL Channel Cross", overlay=true)
period=input(title="Period", defval=10)
len=input(title="Period", defval=10)
// From Date Inputs
fromDay = input(defval=16, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=2, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2021, title="From Year", minval=1970)
// To Date Inputs
toDay = input(defval=17, title="To Day", minval=1, maxval=31)
toMonth = input(defval=2, title="To Month", minval=1, maxval=12)
toYear = input(defval=2021, title="To Year", minval=1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = time >= startDate and time <= finishDate
smaHigh=sma(high, len)
smaLow=sma(low, len)
Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)
longCondition = crossover(sslUp, sslDown)
shortCondition = crossunder(sslUp, sslDown)
if (longCondition)
strategy.close("Short", strategy.long, when=time_cond)
strategy.entry("Long", strategy.long, when=time_cond)
if (shortCondition)
strategy.close("Long", strategy.long, when=time_cond)
strategy.entry("Short", strategy.short, when=time_cond)
但它返回错误
line 32: Mismatched input 'strategy.close' expecting 'end of line without line continuation'.
如何修复脚本?
运算符if
必须有 4 个空格或制表符
//@version=4
strategy("SSL Channel Cross", overlay=true)
period=input(title="Period", defval=10)
len=input(title="Period", defval=10)
// From Date Inputs
fromDay = input(defval=16, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=2, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2021, title="From Year", minval=1970)
// To Date Inputs
toDay = input(defval=17, title="To Day", minval=1, maxval=31)
toMonth = input(defval=2, title="To Month", minval=1, maxval=12)
toYear = input(defval=2021, title="To Year", minval=1970)
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = time >= startDate and time <= finishDate
smaHigh=sma(high, len)
smaLow=sma(low, len)
Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)
longCondition = crossover(sslUp, sslDown)
shortCondition = crossunder(sslUp, sslDown)
if (longCondition)
strategy.close("Short", when=time_cond)
strategy.entry("Long", strategy.long, when=time_cond)
if (shortCondition)
strategy.close("Long", when=time_cond)
strategy.entry("Short", strategy.short, when=time_cond)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.