Chiến lược này là một chiến lược giao dịch theo xu hướng được thiết kế dựa trên nguyên tắc chéo của đường trung bình di chuyển của Bitcoin. Chiến lược sử dụng chéo của đường trung bình di chuyển nhanh và đường trung bình di chuyển chậm như tín hiệu mua và bán. Khi đường trung bình di chuyển nhanh vượt qua đường trung bình di chuyển chậm, nó được coi là một đường chéo vàng và đi dài; khi đường trung bình di chuyển nhanh vượt qua đường trung bình di chuyển chậm, nó được coi là một đường chéo chết và đi ngắn.
Chiến lược này chủ yếu dựa trên hai chỉ số:
Moving Average (MA): Tính toán giá đóng trung bình trong một khoảng thời gian nhất định để xác định xu hướng giá và tín hiệu đảo ngược.
Chỉ số sức mạnh tương đối (RSI): Tính toán tốc độ giá tăng và giảm trong một khoảng thời gian nhất định để đánh giá các khu vực mua quá mức và bán quá mức.
Cụ thể, chiến lược sử dụng MA ngắn hơn như đường nhanh và MA dài hơn như đường chậm. Khi đường nhanh vượt qua trên đường chậm, nó cho thấy rằng giá tăng ngắn hạn đang tăng tốc và một tín hiệu mua được tạo ra; khi đường nhanh vượt qua dưới đường chậm, nó cho thấy rằng giá giảm ngắn hạn đang tăng tốc và một tín hiệu bán được tạo ra.
Đồng thời, chiến lược cũng đặt ngưỡng cho RSI, tạo ra tín hiệu mua chỉ khi RSI trên 50 và chỉ bán tín hiệu khi RSI dưới 50, tránh nhập cảnh liều lĩnh khi giá dao động mạnh.
Chiến lược có những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Để giảm thiểu rủi ro, nên tối ưu hóa các thông số thời gian trung bình động, điều chỉnh các vị trí dừng lỗ và giảm kích thước vị trí một cách thích hợp.
Các hướng tối ưu hóa chính cho chiến lược này bao gồm:
Tối ưu hóa các tham số thời gian trung bình động để tìm kết hợp tham số tối ưu, thông qua tìm kiếm gia tăng, thuật toán di truyền, v.v.
Tăng các chỉ số kỹ thuật khác để lọc, chẳng hạn như KDJ, MACD, vv để cải thiện chất lượng tín hiệu giao dịch.
Theo dõi biến động giá và điều chỉnh các vị trí và dừng lỗ phù hợp.
Bao gồm khối lượng giao dịch để tránh các vụ phá vỡ sai, chỉ phát ra tín hiệu khi khối lượng giao dịch mở rộng.
Phát triển các cơ chế tự điều chỉnh tham số, cho phép các chiến lược tự động điều chỉnh các giá trị tham số dựa trên các môi trường thị trường khác nhau.
Tóm lại, đây là một chiến lược theo xu hướng điển hình. Dựa trên nguyên tắc chéo trung bình động, logic giao dịch đơn giản và rõ ràng, dễ hiểu và thực hiện. Việc kết hợp chỉ số RSI có thể tránh giao dịch không hợp lý. Chiến lược mang lại cả rủi ro và phần thưởng, phù hợp với các nhà đầu tư có một số kinh nghiệm giao dịch lượng, nhưng cần phải cảnh giác với rủi ro mất mát tiềm ẩn. Nếu các nhà phát triển có thể thêm nhiều bộ lọc, tối ưu hóa khả năng thích ứng tham số, nó có thể cải thiện thêm lợi nhuận ổn định của chiến lược.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Trading Strategy Warning - Past performance may not equal future performance //Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown. //Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended //Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future strategy("Bitcoin - MA Crossover Strategy", overlay=true) // User Input usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false) sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false) sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false) rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false) // Create Indicator's shortSMA = sma(close, sma_fast) longSMA = sma(close, sma_slow) rsi = rsi(close, rsi_valu) strategy.initial_capital = 50000 // Units to buy amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit) units = floor(amount / close) // Specify entry conditions longEntry = crossover(shortSMA, longSMA) shortEntry = crossunder(shortSMA, longSMA) // Specify exit conditions longExit = crossunder(shortSMA, longSMA) shortExit = crossover(shortSMA, longSMA) // Execute long trade if (longEntry) strategy.entry("long", strategy.long, units, when = rsi > 50) // Exit long trade if(longExit and strategy.position_size > 0) strategy.order("exit long", strategy.short, abs(strategy.position_size)) // Execute short trade if (shortEntry) strategy.entry("short", strategy.short, units, when = rsi < 50) // Exit short trade if(shortExit and strategy.position_size < 0) strategy.order("exit short", strategy.long, abs(strategy.position_size)) // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black)