Chiến lược chéo trung bình di chuyển kép là một chiến lược theo xu hướng điển hình. Nó tính toán hai đường trung bình di chuyển với các giai đoạn khác nhau và sử dụng chéo của chúng như các tín hiệu giao dịch để nắm bắt hướng và động lực của xu hướng thị trường.
Chiến lược này chủ yếu dựa trên hai đường trung bình động. đường trung bình động đầu tiên có thời gian ngắn hơn và có thể phản ứng nhanh hơn với sự thay đổi giá. đường trung bình động thứ hai có thời gian dài hơn và có thể lọc ra một số tiếng ồn. Khi đường trung bình động ngắn hạn vượt qua đường trung bình động dài hạn, nó được coi là tín hiệu mua.
Cụ thể, chiến lược này tính toán một đường trung bình chuyển động theo hàm số nhân 10 giai đoạn (giá 1) và đường trung bình chuyển động theo hàm số nhân 20 giai đoạn (giá 2). Nếu giá mở và đóng của thanh hiện tại đều cao hơn hai đường trung bình chuyển động, một tín hiệu mua được tạo ra. Nếu giá mở và đóng đều thấp hơn hai đường trung bình chuyển động, một tín hiệu bán được tạo ra.
Thiết kế này cho phép nhập sớm hơn khi xu hướng bắt đầu hình thành và theo xu hướng. Khi xu hướng đảo ngược, nó cũng có thể thoát khỏi thị trường sớm để kiểm soát rủi ro một cách hiệu quả.
Chiến lược này tương đối đơn giản và thực tế, nắm bắt xu hướng với giao thoa MA kép, làm cho nó trở thành một chiến lược lượng cơ bản. Nhưng nó cũng có một số rủi ro và cần tối ưu hóa hơn nữa cho các chế độ thị trường khác nhau. Có chỗ để tăng cường các tham số, dừng, bộ lọc vv để làm cho nó mạnh mẽ hơn.
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //study(title="MA River CC v1", overlay = true) strategy("MA River CC v1", overlay=true) src = input(close, title="Source") price = request.security(syminfo.tickerid, timeframe.period, src) ma1 = input(10, title="1st MA Length") type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"]) ma2 = input(20, title="2nd MA Length") type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"]) price1 = if (type1 == "SMA") sma(price, ma1) else ema(price, ma1) price2 = if (type2 == "SMA") sma(price, ma2) else ema(price, ma2) //plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0) plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0) plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0) buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2) sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2) buy_close = sell_entry sell_close = buy_entry //longCondition = crossover(price1, price2) if(buy_entry) strategy.entry("Long", strategy.long) if(sell_entry) strategy.entry("Short", strategy.short) strategy.close("Long" , when=buy_close) strategy.close("Short",when=sell_close)