首页 > 解决方案 > 止损松脚本策略不适用于交易视图?

问题描述

我想将止损设在入场价以下 2% 并在 4% 处获利。我从网站复制了这个脚本,但它不起作用(随机进入和退出 %)。谢谢!

//@version=4

strategy(title="Draft", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value=100, initial_capital = 25000)

//Create stop-loss inputs
sl_inp = input(2.0, title='Stop Loss %')/100
tp_inp = input(4.0, title='Take Profit %')/100
stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

//Create RSI inputs
rsiSource = input(title="RSI Source", type=input.source, defval=close)
rsiLength = input(title="RSI Length", type=input.integer, defval=14)
rsiOverbought = input(title="RSI Overbought Level", type=input.integer, defval=70)
rsiOversold = input(title="RSI Oversold Level", type=input.integer, defval=30)

// Create MACD inputs
fastLen = input(title="Fast Length", defval=12)
slowLen = input(title="Slow Length", defval=26)
sigLen  = input(title="Signal Length", defval=9)

// Get MACD values
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)

// Plot MACD values and line
plot(series=macdLine, color=color.blue, linewidth=2)
plot(series=signalLine, color=color.orange, linewidth=2)

hline(price=0)

// Determine long and short conditions
strategy.risk.allow_entry_in(strategy.direction.long)
Long = crossover(macdLine, signalLine) and (close > ema(close, 200)) and rsiOversold
exitLong = stop_level or take_level

if time >= start and time <= end
    strategy.entry("Long", strategy.long, when = Long, alert_message = "Buy!")
    strategy.close("Long", when = exitLong)

标签: pine-script

解决方案


您必须将当前价格与您的 tp/sl 水平进行比较,以创建一个布尔变量来触发平仓。例如

exitLong = close < stop_level or close > take_level

推荐阅读