
该策略主要利用价格在连续8天高于或低于5日简单移动平均线后发生反转的特点,来捕捉中短线上的动量效应。当价格连续8天低于5日线后第一天收盘价再次上穿5日线时,做多;当价格连续8天高于5日线后第一天收盘价再次下穿5日线时,做空。
可以适当调整SMA的参数;优化入场条件,防止假突破;结合趋势判断指标强化效果。
该策略通过判断价格运动状态,捕捉中短线价格from突破到反转的过程,实现规避震荡、顺势而为的交易策略。关键是参数设定和进场的判断要严谨,防止被噪音误导;同时出场止损要合理,防止亏损过大。如果再辅以趋势判断指标,可以获得更出色的效果。该策略逻辑清晰易懂,代码简洁,值得深入研究优化。
/*backtest
start: 2023-11-04 00:00:00
end: 2023-12-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Marcuscor
//@version=5
// Inpsired by Linda Bradford Raschke: a strategy for trading momentum in futures markets
strategy("8D Run", initial_capital = 50000, commission_value = 0.0004)
SMA = ta.sma(close,5)
TrendUp = close >= SMA
TrendDown = close <= SMA
//logic to long
TriggerBuy = ta.barssince(close < SMA) >= 8
Buy = TriggerBuy[1] and TrendDown
strategy.entry("EL", strategy.long, when = Buy)
strategy.close(id = "EL", when = close > SMA)
// 1) color background when "run" begins and 2) change color when buy signal occurs
bgcolor(TriggerBuy? color.green : na, transp = 90)
bgcolor(Buy ? color.green : na, transp = 70)
// logic to short
TriggerSell = ta.barssince(close > SMA) >= 8
Sell = TriggerSell[1] and TrendUp
strategy.entry("ES", strategy.short, when = Sell)
strategy.close(id = "ES", when = close < SMA)
// 1) color background when "run" begins and 2) change color when sell signal occurs
bgcolor(TriggerSell ? color.red : na, transp = 90)
bgcolor(Sell ? color.red : na, transp = 70)