这个策略名为”动态阈值价格变化突破策略”。该策略的主要思路是通过设置一个动态阈值,当价格变化率超过该阈值时产生买入信号,当价格变化率低于该阈值的负值时产生卖出信号。同时,策略还设置了止损,当价格跌破前6根K线的最低价时平仓。
该策略的核心是计算价格变化率,通过当前收盘价除以前一个收盘价再减去1来得到。然后,将计算得到的价格变化率与用户输入的阈值进行比较,当价格变化率大于等于阈值时,如果当前没有持仓或者持有空头头寸,则产生买入信号;当价格变化率小于等于阈值的负值时,如果当前没有持仓或者持有多头头寸,则产生卖出信号。在产生买入信号后,策略会记录之前6根K线的最低价作为止损价位,一旦价格跌破止损价位,策略就会平掉多头头寸。
“动态阈值价格变化突破策略”通过比较价格变化率与动态阈值来产生交易信号,适合在上涨行情中使用。该策略逻辑简单清晰,具有一定的灵活性和风险控制能力。但是,该策略也存在一些不足,如在震荡行情中可能出现频繁交易、止损设置不够灵活等。未来可以考虑从引入更多指标、优化止损设置、优化参数、加入仓位管理等方面对策略进行优化,以进一步提高策略的表现。
/*backtest start: 2023-04-01 00:00:00 end: 2024-03-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Price Change", shorttitle="Price Change", overlay=true) change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float) // Calculate price change priceChange = close / close[1] - 1 // Buy and Sell Signals buyp = priceChange >= change sellp = priceChange <= (change * -1) // Initialize position and track the current position var int position = na // Strategy entry conditions buy_condition = buyp and (na(position) or position == -1) sell_condition = sellp and (na(position) or position == 1) var float stop = na if (buy_condition) strategy.entry("Long", strategy.long) stop := lowest(low, 6) position := 1 if (sell_condition or low < stop) strategy.close("Long") position := -1 // Plot Buy and Sell signals using plotshape plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)