Chiến lược giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao
Chiến lược này sử dụng hai bộ tham số SMA,smaB1
, smaB2
cho tín hiệu mua, vàsmaS1
, smaS2
cho tín hiệu bán, đại diện cho trung bình di chuyển chậm hơn và nhanh hơn tương ứng.smaB1
thập giá trênsmaB2
, một tín hiệu mua được tạo ra.smaS2
các chữ thập bên dướismaS1
, một tín hiệu bán được tạo ra. Điều này cho phép điều chỉnh linh hoạt các điều kiện vào và ra để thích nghi với môi trường thị trường thay đổi.
Đặc biệt, chiến lược này theo dõi các tình huống chéo giữa hai đường SMA được tính từ giá đóng để xác định thời gian mua và bán. Khi đường SMA nhanh hơn vượt qua trên đường SMA chậm hơn, nó được đánh giá là xu hướng giá tăng, vì vậy đi dài vào thời điểm này. Và khi đường SMA chậm hơn vượt qua dưới đường SMA nhanh hơn, xu hướng giá giảm, vì vậy thoát khỏi các vị trí dài.
Những lợi thế chính của chiến lược này là:
Ngoài ra còn có một số rủi ro liên quan đến chiến lược này:
Để kiểm soát các rủi ro trên, các phương pháp như tối ưu hóa tham số SMA, dừng lỗ động để khóa lợi nhuận, v.v. có thể được sử dụng để cải thiện chiến lược.
Một số hướng tối ưu hóa cho chiến lược này:
Chiến lược SMA Crossover tạo ra các tín hiệu giao dịch đơn giản và hiệu quả bằng cách tính toán các tình huống chéo giữa hai đường SMA. Tính linh hoạt để điều chỉnh các tham số làm cho chiến lược này thích nghi với các sản phẩm khác nhau, và nó là một chiến lược theo xu hướng thường được sử dụng.
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-22 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © melihtuna //@version=4 strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent) smaB1 = input(title="smaB1",defval=377) smaB2 = input(title="smaB2",defval=200) smaS1 = input(title="smaS1",defval=377) smaS2 = input(title="smaS2",defval=200) smawidth = 2 plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1') plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2') plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1') plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2') // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2020, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => time >= start and time <= finish ? true : false longCondition = crossover(sma(close, smaB1),sma(close, smaB2)) if (window() and longCondition) strategy.entry("BUY", strategy.long) shortCondition = crossover(sma(close, smaS2),sma(close, smaS1)) if (window() and shortCondition) strategy.entry("SELL", strategy.short)