
Chiến lược này dựa trên nguyên tắc giao thoa vàng của đường trung bình di chuyển đơn giản, đưa ra quyết định mua và bán thông qua giao thoa của đường trung bình 7 ngày và đường trung bình 14 ngày. Giao thoa này phát ra tín hiệu mua khi đường trung bình 7 ngày phá vỡ đường trung bình 14 ngày từ phía dưới; và phát ra tín hiệu bán khi đường trung bình 7 ngày phá vỡ đường trung bình 14 ngày từ phía trên. Chiến lược này đồng thời có chức năng dừng lỗ, dừng lỗ và theo dõi dừng lỗ để khóa lợi nhuận và kiểm soát rủi ro.
Lịch lý giao dịch cốt lõi của chiến lược này dựa trên nguyên tắc chéo giữa đường trung bình 7 ngày và đường trung bình 14 ngày. Xu hướng ngắn hạn của giá phản ứng đường trung bình 7 ngày, xu hướng trung bình của giá phản ứng đường trung bình 14 ngày.
Cụ thể, chiến lược này tính toán trung bình di chuyển đơn giản vào ngày 7 và ngày 14 thông qua chỉ số SMA. Sau khi mỗi đường K được hình thành, so sánh mối quan hệ giữa đường 7 và đường 14 hiện tại. Nếu đường 7 đi qua đường 14, sẽ phát đi nhiều tín hiệu và vào vị trí dài; Nếu đường 7 đi qua đường 14 dưới đường 7, sẽ phát đi tín hiệu trống và vào vị trí ngắn.
Ngoài ra, chiến lược cũng thiết lập dừng lỗ, ngăn chặn và theo dõi dừng lỗ để khóa lợi nhuận và kiểm soát rủi ro. Các tham số cụ thể có thể được tối ưu hóa dựa trên kết quả kiểm tra lại.
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Để đối phó với những rủi ro trên, các biện pháp sau đây có thể được xem xét:
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Chiến lược này rất thích hợp cho người mới bắt đầu học, nguyên tắc đơn giản, dễ hiểu và thực hiện. Đồng thời có khả năng thích ứng thị trường tốt, có thể nhận được lợi nhuận ổn định thông qua điều chỉnh và tối ưu hóa các tham số.
/*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)