Chiến lược này dựa trên các nguyên tắc chéo vàng và chéo chết của các đường trung bình động đơn giản, đưa ra quyết định mua và bán dựa trên sự chéo chéo của đường trung bình động 7 ngày và 14 ngày. Nó tạo ra tín hiệu mua khi MA 7 ngày vượt qua trên MA 14 ngày từ dưới, và tín hiệu bán khi MA 7 ngày vượt qua dưới MA 14 ngày từ trên. Chiến lược cũng có các chức năng dừng lỗ, lấy lợi nhuận và dừng kéo theo để khóa lợi nhuận và kiểm soát rủi ro.
Định hướng giao dịch cơ bản của chiến lược này dựa trên các nguyên tắc chéo của các đường trung bình động 7 ngày và 14 ngày. MA 7 ngày phản ánh xu hướng giá ngắn hạn, trong khi MA 14 ngày phản ánh xu hướng trung hạn. Khi MA ngắn hạn vượt qua trên MA trung hạn từ dưới, nó báo hiệu rằng xu hướng ngắn hạn đang tăng cường, làm cho nó trở thành thời điểm tốt để đi dài. Ngược lại, khi MA ngắn hạn vượt qua dưới MA trung hạn từ trên, nó báo hiệu rằng xu hướng ngắn hạn đang suy yếu, vì vậy người ta nên đóng các vị trí hoặc đi ngắn.
Đặc biệt, chiến lược này tính toán các đường trung bình di chuyển đơn giản 7 ngày và 14 ngày bằng chỉ số SMA. Sau mỗi hình thành nến, nó so sánh các giá trị hiện tại của đường 7 ngày và đường 14 ngày. Nếu đường 7 ngày vượt qua đường 14 ngày, một tín hiệu dài được tạo ra để đi dài. Nếu đường 7 ngày vượt qua dưới đường 14 ngày, một tín hiệu ngắn được tạo ra để đi ngắn.
Ngoài ra, chiến lược cũng đặt các chức năng dừng lỗ, lấy lợi nhuận và dừng lại để khóa lợi nhuận và kiểm soát rủi ro. Các thông số có thể được tối ưu hóa dựa trên kết quả backtest.
Chiến lược này có những lợi thế sau:
Ngoài ra còn có một số rủi ro với chiến lược này:
Để đối phó với những rủi ro này, các biện pháp đối phó sau đây có thể được xem xét:
Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:
Tóm lại, chiến lược này rất phù hợp cho người mới bắt đầu học. Logic là đơn giản và dễ hiểu và thực hiện. Nó cũng có khả năng thích nghi thị trường tương đối tốt, với không gian rộng rãi để điều chỉnh tham số và tối ưu hóa để đạt được lợi nhuận ổn định.
/*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)