繁体   English   中英

如何在 Pine 脚本策略上添加时间控制

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM