Pine script 当价格离指数移动平均线有特定百分比距离时,如何开盘/收盘?(松树)

Pine script 当价格离指数移动平均线有特定百分比距离时,如何开盘/收盘?(松树),pine-script,trading,Pine Script,Trading,我想用一个指数移动平均线(比如14)在Pine中建立一个策略,如果价格超过或低于均线,该策略将打开和关闭交易。 最重要的是,如果价格偏离均线一定距离,我希望它也能打开/关闭交易,例如30% 一种情况可能是,价格在一个条上上涨20%,但由于一系列看涨条,价格与均线的距离为30%。在这种情况下,我希望代码启动一项交易,以关闭Possion 如果价格从均线下跌30%,我希望它在看跌的情况下开仓 //@version=4 strategy(title="Moving Average Exponentia

我想用一个指数移动平均线(比如14)在Pine中建立一个策略,如果价格超过或低于均线,该策略将打开和关闭交易。 最重要的是,如果价格偏离均线一定距离,我希望它也能打开/关闭交易,例如30%

一种情况可能是,价格在一个条上上涨20%,但由于一系列看涨条,价格与均线的距离为30%。在这种情况下,我希望代码启动一项交易,以关闭Possion

如果价格从均线下跌30%,我希望它在看跌的情况下开仓

//@version=4
strategy(title="Moving Average Exponential", shorttitle="EMA", overlay=true, max_bars_back=1000)
len = input(14, minval=1, title="Length")
src = input(close, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out = ema(src, len)
plot(out, title="EMA", color=color.blue, offset=offset)


// Only trade from the long side
strategy.risk.allow_entry_in(strategy.direction.long)

// Submit orders
if (crossover(close, out))
    strategy.entry(id="Entry", long=true)

if (crossunder(close, out))
    strategy.entry(id="Close", long=false)
否则,请遵循ema制定的规则

我是个新手,希望能得到一些帮助。我已经走了这么远:

编辑:我猜价格在均线上方或下方必须有一个条件,当价格移动30%时,打开或关闭一个仓位,这样它就不会意外关闭,然后在两条横线距离均线超过30%的情况下打开一个仓位

//@version=4
strategy(title="Moving Average Exponential", shorttitle="EMA", overlay=true, max_bars_back=1000)
len = input(14, minval=1, title="Length")
src = input(close, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out = ema(src, len)
plot(out, title="EMA", color=color.blue, offset=offset)


// Only trade from the long side
strategy.risk.allow_entry_in(strategy.direction.long)

// Submit orders
if (crossover(close, out))
    strategy.entry(id="Entry", long=true)

if (crossunder(close, out))
    strategy.entry(id="Close", long=false)

为了以百分比形式查看两个观测值(价格和均线)之间的距离,您需要以下代码

pd = (close - EMA)/EMA * 100
这给

if pd > 30
    strategy.entry(id="Entry", long=true)

if pd < 30
    strategy.entry(id="Close", long=false)
如果pd>30
strategy.entry(id=“entry”,long=true)
如果pd<30
strategy.entry(id=“Close”,long=false)