首页 > 解决方案 > 为什么我的 pine 脚本回测显示“无数据”

问题描述

我正在编写一个简单的策略,专门用于 SMIO 的简单买卖策略。但是,当我尝试回测时,它只会显示“无数据”

    //@version=4
strategy(shorttitle= "MFM", title= "blob", overlay=true)
longlen = input(35, minval=1, title="Long Length")
shortlen = input(15, minval=1, title="Short Length")
siglen = input(15, minval=1, title="Signal Line Length")
erg = tsi(close, shortlen, longlen)
sig = ema(erg, siglen)
osc = erg - sig
plot(osc, color=#FF8080, style=plot.style_histogram, title="SMI Ergodic Oscillator")

long = crossover(close, 0)
short = crossunder(close, 0)

strategy.entry("long", true, when = long)
strategy.entry("short", false, when = short)

strategy.close("long", when = short)
strategy.close("short", when = long)

start = timestamp(2020, 6, 1, 0, 0)
end = timestamp(2021, 6, 1 ,0, 0)

标签: pine-script

解决方案


脚本中的“收盘价”为您提供股票收盘价。因此,除非它低于零(即他们付钱让人们接受它!),否则你永远不会看到你的多头或空头条件。假设您希望振荡器的分频器为您提供真实值,这应该可行。

此外,为了稳定起见,您可能希望通过在父作用域中设置长短信号默认为 false。

//@version=4

strategy(shorttitle= "MFM", title= "blob", overlay=true)
longlen = input(35, minval=1, title="Long Length")
shortlen = input(15, minval=1, title="Short Length")
siglen = input(15, minval=1, title="Signal Line Length")
erg = tsi(close, shortlen, longlen)
sig = ema(erg, siglen)
osc = erg - sig
plot(osc, color=#FF8080, style=plot.style_histogram, title="SMI Ergodic Oscillator")

long = false
short = false
if crossover(osc, 0)
    long := true
    label.new(bar_index,close,text="long",style=label.style_label_down)
if crossunder(osc, 0)
    short := true
    label.new(bar_index,close,text="short",style=label.style_label_up)


if long == true
    strategy.entry("my long", true)
if short == true
    strategy.entry("my short", false)

if short == true
    strategy.close("my long")
if long == true
    strategy.close("my short")

start = timestamp(2020, 6, 1, 0, 0)
end = timestamp(2021, 6, 1 ,0, 0)

推荐阅读