Strategi ini adalah sistem perdagangan trend-mengikut berdasarkan Triple Exponential Moving Average (TEMA). Ia menangkap trend pasaran dengan menganalisis isyarat silang antara penunjuk TEMA jangka pendek dan jangka panjang, menggabungkan stop-loss berasaskan turun naik untuk pengurusan risiko. Strategi ini beroperasi pada jangka masa 5 minit, menggunakan penunjuk TEMA 300 dan 500 tempoh sebagai asas untuk penjanaan isyarat.
Logik teras strategi ini adalah berdasarkan unsur-unsur utama berikut:
Strategi ini adalah sistem trend berikut yang komprehensif yang menangkap trend melalui persimpangan TEMA sambil menguruskan risiko dengan stop-loss dinamik. Logik strategi jelas, pelaksanaan mudah, dan menunjukkan kepraktisan yang baik. Walau bagaimanapun, ketika berdagang secara langsung, perhatian mesti diberikan kepada pengenalan persekitaran pasaran dan kawalan risiko. Disyorkan untuk mengoptimumkan parameter berdasarkan keadaan pasaran sebenar selepas pengesahan backtesting.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("TEMA Strategy for Gold", overlay=true) // Inputs tema_short_length = input.int(300, title="Short TEMA Length") tema_long_length = input.int(500, title="Long TEMA Length") pip_value = input.float(0.10, title="Pip Value (10 pips = 1 point for Gold)") // Calculate TEMA tema_short = ta.ema(2 * ta.ema(close, tema_short_length) - ta.ema(ta.ema(close, tema_short_length), tema_short_length), tema_short_length) tema_long = ta.ema(2 * ta.ema(close, tema_long_length) - ta.ema(ta.ema(close, tema_long_length), tema_long_length), tema_long_length) // Plot TEMA plot(tema_short, color=color.blue, title="300 TEMA") plot(tema_long, color=color.red, title="500 TEMA") // Crossover conditions long_condition = ta.crossover(tema_short, tema_long) short_condition = ta.crossunder(tema_short, tema_long) // Calculate recent swing high/low swing_low = ta.lowest(low, 10) swing_high = ta.highest(high, 10) // Convert pips to price pip_adjustment = pip_value * syminfo.mintick // Long entry logic if (long_condition and strategy.position_size == 0) stop_loss_long = swing_low - pip_adjustment strategy.entry("Long", strategy.long) label.new(bar_index, swing_low, style=label.style_label_down, text="Buy", color=color.green) // Short entry logic if (short_condition and strategy.position_size == 0) stop_loss_short = swing_high + pip_adjustment strategy.entry("Short", strategy.short) label.new(bar_index, swing_high, style=label.style_label_up, text="Sell", color=color.red) // Exit logic if (strategy.position_size > 0 and short_condition) strategy.close("Long") label.new(bar_index, high, style=label.style_label_up, text="Exit Long", color=color.red) if (strategy.position_size < 0 and long_condition) strategy.close("Short") label.new(bar_index, low, style=label.style_label_down, text="Exit Short", color=color.green)