如何 open/close 当价格与指数移动平均线相差特定百分比距离时进行交易? (松树)

How to open/close trade when price is a specific percentage distance away from the exponential moving average? (Pine)

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

一种情况可能是价格在一根柱上上涨 20%,但由于一系列看涨柱,它与均线相距 30%。在这种情况下,我希望代码启动平仓交易。

在看跌走势中,我希望它在价格从均线下跌 30% 时开仓。

否则请遵守 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)

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

pd = (close - EMA)/EMA * 100

这个给

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

if pd < 30
    strategy.entry(id="Close", long=false)