
Chiến lược này là một chiến lược giao dịch Bitcoin dựa trên chu kỳ thời gian 5 phút. Nó sử dụng các đường trung bình di chuyển 9 chu kỳ và 15 chu kỳ và hình dạng đường K làm tín hiệu giao dịch. Cụ thể, nó tạo ra tín hiệu mua khi đường trung bình di chuyển nhanh đi lên trên đường trung bình di chuyển chậm và đường K hình thành một đường tròn hoặc đường mặt trời thuần túy; nó tạo ra tín hiệu bán khi đường trung bình di chuyển nhanh đi xuống trên đường trung bình di chuyển chậm.
Chiến lược này sử dụng trung bình di chuyển của hai chu kỳ khác nhau để đánh giá xu hướng. Trung bình di chuyển 9 chu kỳ nhạy cảm hơn, có thể nắm bắt xu hướng ngắn hạn; Trung bình di chuyển 15 chu kỳ ổn định hơn, có thể lọc một số tiếng ồn. Khi trung bình di chuyển nhanh hơn đi lên trên trung bình di chuyển chậm hơn, cho thấy xu hướng ngắn hạn chuyển sang tăng; ngược lại, xu hướng ngắn hạn chuyển sang giảm.
Ngoài ra, chiến lược này cũng kết hợp với hình dạng K-line để lọc. Chỉ tạo ra tín hiệu mua khi tạo ra một K-line mạnh như đường nến hoặc đường nến thuần túy. Điều này có thể tránh tạo ra tín hiệu giao dịch sai trong quá trình cân bằng.
Các tín hiệu và quy tắc giao dịch cụ thể như sau:
9 chu kỳ di chuyển trung bình trên 15 chu kỳ di chuyển trung bình và 15 chu kỳ di chuyển trung bình góc lớn hơn 30 độ, cho thấy xu hướng ngắn hạn chuyển sang tăng;
Nếu đường K ở dạng tròn hoặc tròn, cho thấy đà tăng mạnh, nó sẽ tạo ra tín hiệu mua.
9 chu kỳ di chuyển trung bình dưới 15 chu kỳ di chuyển trung bình, thể hiện xu hướng ngắn hạn chuyển sang giảm, tại thời điểm này tạo ra một tín hiệu bán, không cần phải đánh giá hình dạng K;
Cài đặt 0.5% Stop Loss và 0.5% Stop Loss sau khi nhập.
Chiến lược này có một số lợi thế:
Quay lại nhỏ, lợi nhuận ổn định. Là một chiến lược scalping, thiết lập mức dừng lỗ nhỏ, tổn thất đơn lẻ hạn chế, thậm chí nếu gặp phải thị trường ngược sẽ không rút lại đáng kể.
Tín hiệu rõ ràng hơn. Đường trung bình di chuyển chéo kết hợp với đường K hình dạng nhận dạng xu hướng, tránh phá vỡ không hiệu quả.
Dễ dàng thực hiện giao dịch tự động. Quy tắc tín hiệu chiến lược rõ ràng, điều chỉnh tham số đơn giản, phù hợp với giao dịch thuật toán.
Thích hợp cho Bitcoin biến động cao. Là một loại tiền kỹ thuật số, Bitcoin biến động lớn, điều chỉnh ngắn hạn thường xuyên, sử dụng chiến lược này có thể nắm bắt cơ hội giao dịch ngắn hạn.
Chiến lược này cũng có một số rủi ro:
Dễ bị tổn thất nhỏ nhiều lần. Bitcoin có hai mặt mạnh mẽ, có khả năng dừng lỗ được kích hoạt, dừng lỗ liên tục sẽ tạo ra tổn thất;
Cài đặt tham số cần phải được tối ưu hóa liên tục. Các tham số trung bình di chuyển và thiết lập dừng lỗ cần được điều chỉnh theo thị trường, nếu không hiệu quả sẽ bị giảm giá;
Hiệu quả phụ thuộc vào xu hướng. Trong tình huống cân bằng, chiến lược này có thể tạo ra giao dịch thường xuyên nhưng thua lỗ nhỏ.
Các giải pháp tương ứng là:
Tăng cường quy mô đơn đặt hàng để đảm bảo tỷ lệ lợi nhuận hợp lý;
Điều chỉnh các thiết lập tham số để theo dõi sự thay đổi của thị trường;
Nhận biết tình hình thị trường, tránh giao dịch không hiệu lực trong khép lại.
Chiến lược này cũng có thể được tối ưu hóa theo các hướng sau:
Thêm cơ chế tự điều chỉnh dừng lỗ. Ví dụ, theo dõi đường dừng chân theo thời gian thực của đường trung bình di chuyển, thay đổi động lợi nhuận mục tiêu;
Kết hợp với các chỉ số khác để lọc tín hiệu. Ví dụ, chỉ số RSI đánh giá quá mua quá bán, khối lượng giao dịch tăng lên;
Thử nghiệm các loại hợp đồng khác nhau. Sử dụng chiến lược này để giao dịch scalping các loại như dầu thô, tương lai chỉ số chứng khoán;
Tối ưu hóa tham số và tối ưu hóa phản hồi để xác định tham số tối ưu.
Nhìn chung, chiến lược này là một chiến lược khai thác bitcoin ngắn hiệu quả. Nó đơn giản và dễ thực hiện, có khả năng cấu hình cao. Tuy nhiên, giao dịch cũng cần phải cảnh giác với rủi ro, kiểm soát hợp lý các lệnh dừng lỗ và vị trí. Ngoài ra, có thể tối ưu hóa chiến lược theo thị trường và tình hình của riêng bạn để có được hiệu quả tốt hơn.
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true)
// Define input parameters
fast_length = input(9, "Fast MA Length")
slow_length = input(15, "Slow MA Length")
stop_loss_percent = input(0.5, "Stop Loss (%)")
target_percent = input(0.5, "Target (%)")
angle_threshold = input(30, "Angle Threshold (degrees)")
// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)
// Define candlestick patterns
is_pin_bar() =>
pin_bar = abs(open - close) > 2 * abs(open[1] - close[1])
high_tail = max(open, close) - high > abs(open - close) * 1.5
low_tail = low - min(open, close) > abs(open - close) * 1.5
pin_bar and high_tail and low_tail
is_marubozu() =>
marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75
no_upper_shadow = high == max(open, close)
no_lower_shadow = low == min(open, close)
marubozu and no_upper_shadow and no_lower_shadow
is_full_body() =>
full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95
full_body
// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")
// Calculate angle of slow moving average
ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159))
// Generate buy/sell signals based on angle condition and candlestick patterns
buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body())
sell_signal = crossunder(fast_ma, slow_ma)
// Calculate stop-loss and target levels
stop_loss_level = close * (1 - stop_loss_percent / 100)
target_level = close * (1 + target_percent / 100)
// Execute trades based on signals with stop-loss and target
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level)
// Plot buy/sell signals on chart (optional)
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Plot angle line
hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)