Chiến lược này sử dụng sự đồng thuận của các chỉ số trên nhiều khung thời gian để theo dõi xu hướng. Nó đi dài hoặc ngắn khi các khung thời gian hàng ngày, 10 ngày, 15 ngày và 30 ngày đồng thời đưa ra tín hiệu tăng hoặc giảm, với dừng lỗ năng động.
Chiến lược đánh giá hướng xu hướng bằng cách sử dụng bốn khung thời gian - hàng ngày, 10 ngày, 15 ngày và 30 ngày. Khi giá đóng cao hơn giá mở trên tất cả bốn khung thời gian, nó chỉ ra tín hiệu tăng. Khi giá đóng thấp hơn giá mở trên tất cả bốn khung thời gian, nó chỉ ra tín hiệu giảm.
Khi tín hiệu tăng, nó đi dài. Khi tín hiệu giảm, nó đi ngắn. Sau khi vào, kênh KC được sử dụng để dừng lỗ năng động.
Cụ thể, chiến lược so sánh giá mở và giá đóng trên các khung thời gian khác nhau để xác định hướng xu hướng. Nếu giá đóng cao hơn giá mở, khung thời gian được coi là tăng và được vẽ màu xanh lá cây. Nếu giá đóng thấp hơn giá mở, khung thời gian được coi là giảm và được vẽ màu đỏ.
Khi tất cả bốn khung thời gian đồng ý về một tín hiệu tăng, chiến lược sẽ mở một vị trí dài. Khi tất cả bốn khung thời gian đồng ý về một tín hiệu giảm, chiến lược sẽ mở một vị trí ngắn. Nó sẽ thoát ra khi chạm vào điểm dừng lỗ hoặc xu hướng đảo ngược.
Sử dụng nhiều khung thời gian để xác nhận xu hướng có thể lọc hiệu quả các sự đột phá sai và xác định hướng xu hướng.
Đánh lỗ động có thể tối đa hóa bảo vệ vốn.
Các tiêu chí nhập cảnh nghiêm ngặt làm giảm các giao dịch không cần thiết và chi phí trượt.
Kết hợp nhiều khung thời gian cân bằng tốc độ lợi nhuận và sự ổn định.
Các tiêu chí nhập học có thể quá nghiêm ngặt, bỏ lỡ một số cơ hội.
Cài đặt stop loss không đúng có thể quá hung hăng hoặc bảo thủ.
Các lựa chọn khung thời gian không phù hợp có thể không phù hợp với xu hướng dài hạn hoặc ngắn hạn.
Các biến đổi đột ngột từ các sự kiện có thể không kích hoạt dừng lỗ.
Tối ưu hóa lựa chọn khung thời gian để cân bằng tốc độ lợi nhuận và sự ổn định.
Kiểm tra các thiết lập tham số khác nhau để tối ưu hóa mức dừng lỗ.
Thêm các thuật toán học máy để giúp đánh giá các điểm đảo ngược.
Theo dõi các sự kiện quan trọng để tránh tổn thất từ sự đảo ngược đột ngột.
Chiến lược này tích hợp các phán quyết trên nhiều khung thời gian, với các tiêu chí nhập cảnh nghiêm ngặt và dừng động, nhằm mục đích lợi nhuận ổn định. Nó có nguy cơ bỏ lỡ cơ hội và kiểm soát rủi ro không phù hợp. Bước tiếp theo là tiếp tục tối ưu hóa các tham số cho sự ổn định cao hơn.
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("[RichG] Easy MTF Strategy v1.1", overlay=false) TF_1_time = input("D", "Timeframe 1") TF_2_time = input("10D", "Timeframe 2") TF_3_time = input("15D", "Timeframe 3") TF_4_time = input("30D", "Timeframe 4") lengthKC=input(20, title="KC Length") multKC = input(1.5, title="KC MultFactor") lengthBB=input(20, title="BB Length") transaction_size = input(1, "Contract/Share Amount") src = close, len = 20 out = sma(src, len) width = 5 upcolor = green downcolor = red neutralcolor = blue linestyle = line kc() => ma = sma(close, lengthKC) range = tr rangema = sma(range, lengthKC) upperKC = ma + rangema * multKC lowerKC = ma - rangema * multKC [lowerKC, upperKC] bb() => source = close basis = sma(source, lengthBB) dev = multKC * stdev(source, lengthBB) upperBB = basis + dev lowerBB = basis - dev [upperBB, lowerBB] TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false TF_1_color = TF_1 ? upcolor:downcolor TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false TF_2_color = TF_2 ? upcolor:downcolor TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false TF_3_color = TF_3 ? upcolor:downcolor TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false TF_4_color = TF_4 ? upcolor:downcolor TF_global = TF_1 and TF_2 and TF_3 and TF_4 TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false TF_global_color = TF_global ? green : TF_global_bear ? red : white TF_trigger_width = TF_global ? 6 : width plot(1, style=linestyle, linewidth=width, color=TF_1_color) plot(5, style=linestyle, linewidth=width, color=TF_2_color) plot(10, style=linestyle, linewidth=width, color=TF_3_color) plot(15, style=linestyle, linewidth=width, color=TF_4_color) plot(25, style=linestyle, linewidth=4, color=TF_global_color) exitCondition_Long = TF_global_bear exitCondition_Short = TF_global longCondition = TF_global if (longCondition) strategy.entry("MTF_Long", strategy.long, qty=transaction_size) shortCondition = TF_global_bear if (shortCondition) strategy.entry("MTF_Short", strategy.short, qty=transaction_size) [kc_lower,kc_upper] = kc() strategy.close("MTF_Long", when=close < kc_upper) strategy.close("MTF_Short", when=close > kc_lower)