
Strategi ini adalah berdasarkan pada asas mata wang dan mata wang bergerak sederhana, membuat keputusan membeli dan menjual melalui persilangan garis purata 7 hari dan garis purata 14 hari. Ia memberi isyarat membeli apabila garis purata 7 hari menembusi garis purata 14 hari dari arah bawah; dan ia memberi isyarat menjual apabila garis purata 7 hari jatuh dari arah atas ke arah bawah dan melanggar garis purata 14 hari.
Logik perdagangan teras strategi ini adalah berdasarkan prinsip persilangan antara garis purata 7 hari dan garis purata 14 hari. Trend jangka pendek untuk harga tindak balas garis purata 7 hari, trend pertengahan untuk harga tindak balas garis purata 14 hari.
Khususnya, strategi ini menggunakan indikator SMA untuk mengira purata bergerak sederhana pada hari ke-7 dan ke-14. Setelah setiap garis K terbentuk, bandingkan hubungan saiz garis ke-7 dan garis ke-14 semasa. Jika anda melewati garis ke-7 pada garis ke-14, anda akan membuat isyarat ganda dan masuk ke kedudukan panjang; jika anda melewati garis ke-7 di bawah garis ke-14, anda akan membuat isyarat kosong dan masuk ke kedudukan pendek.
Di samping itu, strategi ini juga menetapkan hentian, hentian dan hentian untuk mengunci keuntungan dan mengawal risiko. Parameter tertentu boleh dioptimumkan berdasarkan keputusan tinjauan semula.
Strategi ini mempunyai kelebihan berikut:
Strategi ini mempunyai beberapa risiko:
Untuk menangani risiko tersebut, langkah-langkah berikut boleh dipertimbangkan:
Strategi ini boleh dioptimumkan dalam beberapa arah:
Strategi ini secara keseluruhan sangat sesuai untuk pelajar pemula, asasnya mudah, mudah difahami dan dilaksanakan. Ia juga mempunyai daya serasi pasaran yang baik, ruang yang lebih besar untuk menyesuaikan dan mengoptimumkan parameter, dan diharapkan untuk mendapatkan 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)