Strategi ini adalah sistem perdagangan automatik berdasarkan crossover Purata Bergerak Sederhana (SMA), digabungkan dengan mekanisme mengambil keuntungan dan menghentikan kerugian dinamik. Ia menggunakan dua SMA dari tempoh yang berbeza untuk menjana isyarat beli dan jual melalui crossover mereka. Di samping itu, strategi menetapkan tahap mengambil keuntungan dan menghentikan kerugian berasaskan peratusan untuk mengawal risiko dan mengunci keuntungan.
Strategi perdagangan crossover purata bergerak berganda ini menyediakan kerangka kerja yang mudah namun berkesan yang sesuai untuk pemula yang memasuki perdagangan automatik. Ia menggabungkan unsur-unsur trend berikut dan pengurusan risiko dengan menetapkan tahap keuntungan dan stop-loss secara dinamik untuk melindungi modal. Walau bagaimanapun, untuk mencapai hasil yang lebih baik dalam perdagangan sebenar, pengoptimuman dan penyempurnaan yang lebih lanjut diperlukan. Pertimbangkan untuk menambah lebih banyak penunjuk teknikal sebagai penapis, mengoptimumkan kaedah untuk menetapkan tahap keuntungan dan stop-loss, dan memperkenalkan strategi pengurusan kedudukan yang lebih canggih. Pada masa yang sama, pengujian balik dan pengesahan menyeluruh di pelbagai persekitaran pasaran dan jangka masa adalah penting. Melalui peningkatan berterusan dan penyesuaian dengan perubahan pasaran, strategi ini berpotensi menjadi sistem perdagangan yang boleh dipercayai.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Pubgentleman //@version=5 //@version=5 strategy("TSLA 1-Hour SMA Crossover Strategy with Buy/Sell Signals", overlay=true) // Parameters shortSmaLength = input.int(50, title="Short SMA Length") longSmaLength = input.int(100, title="Long SMA Length") takeProfitPerc = input.float(5.0, title="Take Profit Percentage", step=0.1) // 5.0% take profit stopLossPerc = input.float(3.0, title="Stop Loss Percentage", step=0.1) // 3.0% stop loss // Calculate SMAs shortSma = ta.sma(close, shortSmaLength) longSma = ta.sma(close, longSmaLength) // Plot SMAs plot(shortSma, color=color.blue, title="Short SMA") plot(longSma, color=color.red, title="Long SMA") // Entry Conditions longCondition = ta.crossover(shortSma, longSma) shortCondition = ta.crossunder(shortSma, longSma) // Trade Management var float entryPrice = na var float takeProfitLevel = na var float stopLossLevel = na if (longCondition) entryPrice := close takeProfitLevel := entryPrice * (1 + takeProfitPerc / 100) stopLossLevel := entryPrice * (1 - stopLossPerc / 100) strategy.entry("Long", strategy.long) label.new(x=bar_index, y=low, text="Buy", style=label.style_label_up, color=color.green, textcolor=color.white) if (shortCondition) entryPrice := close takeProfitLevel := entryPrice * (1 - takeProfitPerc / 100) stopLossLevel := entryPrice * (1 + stopLossPerc / 100) strategy.entry("Short", strategy.short) label.new(x=bar_index, y=high, text="Sell", style=label.style_label_down, color=color.red, textcolor=color.white) // Exit Conditions if (strategy.position_size > 0) if (close >= takeProfitLevel or close <= stopLossLevel) strategy.close("Long") if (strategy.position_size < 0) if (close <= takeProfitLevel or close >= stopLossLevel) strategy.close("Short") // Plot Take Profit and Stop Loss Levels plot(strategy.position_size > 0 ? takeProfitLevel : na, title="Take Profit Level", color=color.green, style=plot.style_stepline) plot(strategy.position_size > 0 ? stopLossLevel : na, title="Stop Loss Level", color=color.red, style=plot.style_stepline) plot(strategy.position_size < 0 ? takeProfitLevel : na, title="Take Profit Level (Short)", color=color.green, style=plot.style_stepline) plot(strategy.position_size < 0 ? stopLossLevel : na, title="Stop Loss Level (Short)", color=color.red, style=plot.style_stepline)