Strategi ini berdasarkan prinsip salib emas dan salib kematian purata bergerak mudah, membuat keputusan membeli dan menjual berdasarkan persilangan purata bergerak 7 hari dan 14 hari. Ia menghasilkan isyarat beli apabila MA 7 hari melintasi di atas MA 14 hari dari bawah, dan isyarat jual apabila MA 7 hari melintasi di bawah MA 14 hari dari atas. Strategi ini juga mempunyai fungsi stop loss, mengambil keuntungan, dan trailing stop untuk mengunci keuntungan dan mengawal risiko.
Logik perdagangan teras strategi ini adalah berdasarkan prinsip silang purata bergerak 7 hari dan 14 hari. MA 7 hari mencerminkan trend harga jangka pendek, sementara MA 14 hari mencerminkan trend jangka sederhana. Apabila MA jangka pendek melintasi di atas MA jangka sederhana dari bawah, ia menandakan bahawa trend jangka pendek semakin kuat, menjadikannya masa yang baik untuk pergi panjang. Sebaliknya, apabila MA jangka pendek melintasi di bawah MA jangka sederhana dari atas, ia menandakan bahawa trend jangka pendek melemah, jadi seseorang harus menutup kedudukan atau pergi pendek.
Secara khusus, strategi ini mengira purata bergerak mudah 7 hari dan 14 hari menggunakan penunjuk SMA. Selepas setiap candlestick terbentuk, ia membandingkan nilai semasa garisan 7 hari dan garisan 14 hari. Jika garisan 7 hari melintasi di atas garisan 14 hari, isyarat panjang dihasilkan untuk pergi panjang. Jika garisan 7 hari melintasi di bawah garisan 14 hari, isyarat pendek dihasilkan untuk pergi pendek.
Di samping itu, strategi ini juga menetapkan fungsi stop loss, take profit, dan trailing stop untuk mengunci keuntungan dan mengawal risiko. Parameter boleh dioptimumkan berdasarkan hasil backtest.
Strategi ini mempunyai kelebihan berikut:
Terdapat juga beberapa risiko dengan strategi ini:
Untuk menangani risiko ini, langkah-langkah balas berikut boleh dipertimbangkan:
Strategi ini boleh dioptimumkan dalam aspek berikut:
Kesimpulannya, strategi ini sangat sesuai untuk pemula untuk belajar. Logiknya mudah dan mudah difahami dan dilaksanakan. Ia juga mempunyai daya adaptasi pasaran yang agak baik, dengan ruang yang cukup untuk penyesuaian parameter dan pengoptimuman 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)