Chiến lược này được gọi là
Nguyên tắc chính của chiến lược này là nắm bắt các cơ hội phục hồi trong các thị trường giới hạn phạm vi bằng cách sử dụng sự đảo ngược của trung bình động ngắn hạn. Cụ thể, khi giá vượt qua các trung bình động chu kỳ dài hơn (như MA 20 ngày và 50 ngày) và hiển thị các dấu hiệu bán quá mức mạnh, giá có xu hướng phục hồi ở một mức độ nào đó do đặc điểm đảo ngược trung bình của biến động thị trường. Tại thời điểm này, nếu các trung bình động chu kỳ ngắn hơn (như MA 10 ngày) hiển thị tín hiệu đảo ngược tăng, đó sẽ là thời điểm tốt để mua. Trong chiến lược này, nó sẽ mua khi giá đóng dưới MA 20 ngày trong khi trên MA 50 ngày, để nắm bắt sự phục hồi của nó với sự đảo ngược MA ngắn hạn.
Lý thuyết nhập khẩu cụ thể là: Mua 1 lô khi giá vượt qua MA 20 ngày, thêm 1 lô khi vượt qua MA 50 ngày, tiếp tục thêm 1 lô khi vượt qua MA 100 ngày và thêm đến 1 lô khi vượt qua MA 200 ngày, tối đa 4 lô. Lấy lợi nhuận sau khi đạt được các mục tiêu đã đặt trước. Nó cũng đặt thời gian và điều kiện dừng lỗ.
Nói chung, đây là một chiến lược giao dịch MA cổ điển và phổ quát. Nó sử dụng đúng tính năng làm mịn của MA, kết hợp với nhiều MA để xác định các cơ hội mua ngắn hạn. Nó kiểm soát rủi ro bằng cách đặt hàng kim tự tháp và thu lợi nhuận kịp thời. Nhưng phản ứng của nó đối với các sự kiện thị trường như tin tức chính sách quan trọng có thể bị động hơn. Đây là điều có thể được tối ưu hóa hơn nữa. Nhìn chung, với những cải tiến thích hợp trong tối ưu hóa tham số và kiểm soát rủi ro, chiến lược này có thể đạt được lợi nhuận dư thừa ổn định.
/*backtest start: 2023-12-13 00:00:00 end: 2023-12-20 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true) // Input parameters qt1 = input.int(5, title="Quantity 1", minval=1) qt2 = input.int(10, title="Quantity 2", minval=1) qt3 = input.int(15, title="Quantity 3", minval=1) qt4 = input.int(20, title="Quantity 4", minval=1) ema10 = ta.ema(close, 10) ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Date range filter start_date = timestamp(year=2021, month=1, day=1) end_date = timestamp(year=2024, month=10, day=27) in_date_range = true // Profit condition profit_percentage = input(1, title="Profit Percentage") // Adjust this value as needed // Pyramiding setting pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10) // Buy conditions buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1] buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1] buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1] buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1] // Exit conditions profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2] // Exit condition for when today's close is less than the previous day's low //exit_condition_3 = close < low[1] // Strategy logic strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1) strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2) strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3) strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4) strategy.close("Buy1", when=exit_condition_1 or exit_condition_2) strategy.close("Buy2", when=exit_condition_1 or exit_condition_2) strategy.close("Buy3", when=exit_condition_1 or exit_condition_2) strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)