Strategi ini didasarkan pada prinsip salib emas dan salib kematian dari rata-rata bergerak sederhana, membuat keputusan beli dan jual berdasarkan penyeberangan rata-rata bergerak 7 hari dan 14 hari. Ini menghasilkan sinyal beli ketika MA 7 hari melintasi di atas MA 14 hari dari bawah, dan sinyal jual ketika MA 7 hari melintasi di bawah MA 14 hari dari atas. Strategi ini juga menampilkan fungsi stop loss, take profit, dan trailing stop untuk mengunci keuntungan dan mengendalikan risiko.
Logika perdagangan inti dari strategi ini didasarkan pada prinsip crossover dari rata-rata bergerak 7 hari dan 14 hari. MA 7 hari mencerminkan tren harga jangka pendek, sementara MA 14 hari mencerminkan tren jangka menengah. Ketika MA jangka pendek melintasi di atas MA jangka menengah dari bawah, itu menandakan bahwa tren jangka pendek semakin kuat, menjadikannya waktu yang baik untuk pergi panjang. Sebaliknya, ketika MA jangka pendek melintasi di bawah MA jangka menengah dari atas, itu menandakan bahwa tren jangka pendek melemah, jadi seseorang harus menutup posisi atau pergi pendek.
Secara khusus, strategi ini menghitung rata-rata bergerak sederhana 7 hari dan 14 hari menggunakan indikator SMA. Setelah setiap candlestick terbentuk, itu membandingkan nilai saat ini dari garis 7 hari dan garis 14 hari. Jika garis 7 hari melintasi di atas garis 14 hari, sinyal panjang dihasilkan untuk pergi panjang. Jika garis 7 hari melintasi di bawah garis 14 hari, sinyal pendek dihasilkan untuk pergi pendek.
Selain itu, strategi juga menetapkan fungsi stop loss, take profit, dan trailing stop untuk mengunci keuntungan dan mengendalikan risiko. Parameter dapat dioptimalkan berdasarkan hasil backtest.
Strategi ini memiliki keuntungan berikut:
Ada juga beberapa risiko dengan strategi ini:
Untuk mengatasi risiko-risiko ini, langkah-langkah penanggulangan berikut dapat dipertimbangkan:
Strategi ini dapat dioptimalkan dalam aspek berikut:
Pada akhirnya, strategi ini sangat cocok untuk pemula untuk belajar. Logika sederhana dan mudah dipahami dan diimplementasikan. Ini juga memiliki daya adaptasi pasar yang relatif baik, dengan ruang yang cukup untuk penyesuaian parameter dan optimalisasi untuk mencapai keuntungan yang stabil.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © bensonsuntw strategy("Strategy Template[Benson]", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100) backtest_year = input(2019, type=input.integer, title='backtest_year') backtest_month = input(01, type=input.integer, title='backtest_month', minval=1, maxval=12) backtest_day = input(01, type=input.integer, title='backtest_day', minval=1, maxval=31) start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00) stop_loss_and_tp = input(title="Enable Stop Loss and Take Profit", type=input.bool, defval=true) trail_stop = input(title="Enable Trail Stop", type=input.bool, defval=true) buy_stop_loss = input(0.2, type=input.float, title='buy_stop_loss') sell_stop_loss = input(0.1, type=input.float, title='sell_stop_loss') buy_tp = input(0.4, type=input.float, title='buy_tp') sell_tp =input(0.2, type=input.float, title='sell_tp') trail_stop_long = input(1.1, type=input.float, title='trail_stop_long') trail_stop_short = input(0.9, type=input.float, title='trail_stop_short') trail_stop_long_offset = input(0.05, type=input.float, title='trail_stop_long_offset') trail_stop_short_offset = input(0.05, type=input.float, title='trail_stop_short_offset') // you can set your own logic here shortCondition = crossunder(sma(close,7),sma(close,14)) longCondition = crossover(sma(close,7),sma(close,14)) strategy.entry("Buy", strategy.long, when=longCondition ) strategy.close("Buy", when=shortCondition) strategy.exit("Close Buy","Buy", limit= stop_loss_and_tp?strategy.position_avg_price * (1+buy_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1-buy_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_long:na,trail_offset=trail_stop?-strategy.position_avg_price *trail_stop_long_offset:na) strategy.entry("Sell", strategy.short, when=shortCondition) strategy.close("Sell", when=longCondition) strategy.exit("Close Sell","Sell", limit= stop_loss_and_tp?strategy.position_avg_price * (1-sell_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1+sell_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_short:na,trail_offset=trail_stop?strategy.position_avg_price *trail_stop_short_offset:na) net_profit = strategy.netprofit + strategy.openprofit plot(net_profit, title="Net Profit", linewidth=2, style=plot.style_area, transp=50, color=net_profit >= 0 ? #26A69A : color.red)