Chiến lược giao dịch chéo Williams kết hợp với bộ lọc trung bình động


Ngày tạo: 2023-09-19 21:57:46 sửa đổi lần cuối: 2023-09-19 21:57:46
sao chép: 0 Số nhấp chuột: 870
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này sử dụng các tín hiệu chéo của chỉ số William và lọc với đường trung bình di chuyển, để thực hiện một chiến lược giao dịch ngắn linh hoạt hơn. Chiến lược này có thể nắm bắt các trường hợp mua quá mức rõ ràng, trong khi lọc đường trung bình di chuyển có thể tránh bị ảnh hưởng bởi các biến động thị trường, do đó có tính ổn định cao hơn.

Nguyên tắc chiến lược

  1. Tính toán chỉ số William ((%R), và trung bình di chuyển đơn giản 200 chu kỳ.

  2. Khi chỉ số William vượt qua đường 50 và đạt ngưỡng thiết lập, và khi giá đóng cửa cao hơn đường trung bình di chuyển, hãy làm nhiều hơn.

  3. Khi chỉ số William giảm xuống dưới đường 50 và đạt ngưỡng thiết lập, và khi giá đóng cửa dưới mức trung bình di chuyển, hãy tháo lỗ.

  4. Sau khi thực hiện nhiều, nếu giá đóng cửa đạt đến điểm dừng ((giá mua cộng điểm dừng) hoặc điểm dừng ((giá mua trừ điểm dừng) thì sẽ bị phá vỡ.

  5. Sau khi mở cửa, nếu giá đóng cửa đạt đến điểm dừng ((giá mua giảm điểm dừng) hoặc điểm dừng ((giá mua cộng điểm dừng) thì đặt cược.

Chiến lược này tận dụng tối đa tính năng mua bán quá mức của chỉ số William, kết hợp với phán đoán xu hướng của đường trung bình di chuyển, làm cho tín hiệu giao dịch rõ ràng hơn và đáng tin cậy hơn. Chiến lược dừng lỗ cũng rõ ràng hơn và ngắn gọn hơn, nói chung là một hệ thống chiến lược đường ngắn hoàn chỉnh hơn.

Phân tích lợi thế chiến lược

  1. Chỉ số William có thể xác định hiệu quả tình trạng quá mua quá bán, và tín hiệu rõ ràng hơn.

  2. Các bộ lọc trung bình di chuyển giúp đánh giá xu hướng và tránh bị ảnh hưởng bởi các cú sốc.

  3. Các tham số chỉ số và bộ lọc có thể được tùy chỉnh, có thể được điều chỉnh linh hoạt.

  4. Các nhà đầu tư có thể sử dụng các phương pháp theo dõi xu hướng để khóa phần lớn lợi nhuận.

  5. Quy tắc tín hiệu chiến lược đơn giản, rõ ràng, dễ hiểu và thích hợp cho giao dịch đường ngắn.

  6. Có thể áp dụng cho nhiều giống, linh hoạt và phổ biến.

Phân tích rủi ro

  1. Chỉ số William bị tụt hậu và có thể đã bỏ lỡ một số cơ hội.

  2. Moving Average cũng có vấn đề về sự chậm trễ trong việc sử dụng nó như một bộ lọc.

  3. Các nhà phân tích cho rằng, một số cơ hội xu hướng có thể bị bỏ lỡ bởi những phán đoán quá mua quá bán nghiêm ngặt.

  4. Lệnh dừng quá nhỏ có thể bị phá vỡ bởi biến động giá.

  5. Giữ lỗ quá lớn có thể hạn chế lợi nhuận.

  6. Cần điều chỉnh các tham số để phù hợp với môi trường thị trường khác nhau.

Hướng tối ưu hóa chiến lược

  1. Tối ưu hóa các tham số chỉ số, tăng tỷ lệ chiến lược.

  2. Thêm các chỉ số khác để lọc, như MACD, KDJ, v.v.

  3. Thử các loại moving average khác nhau, chẳng hạn như moving average chỉ số.

  4. Tăng khả năng đánh giá xu hướng, chỉ giao dịch theo xu hướng.

  5. Tối ưu hóa các chiến lược dừng lỗ như dừng động, dừng thu nhỏ.

  6. Cố gắng thêm quản lý vị trí, chẳng hạn như vị trí cố định, Martingale, v.v.

  7. Sử dụng học máy để tìm các tham số tốt nhất.

Tóm tắt

Chiến lược này kết hợp các phán quyết mua bán quá mức của chỉ số William và bộ lọc xu hướng của đường trung bình di chuyển để tạo thành một chiến lược đường ngắn đơn giản và thực tế. Nó có tín hiệu giao dịch rõ ràng và quy tắc dừng lỗ.

Mã nguồn chiến lược
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Williams %R Cross Strategy with MA Filter", overlay=true)

// User Inputs
wrLength = input(14, title="Williams %R Length")
crossPips = input(10, title="Cross Threshold (Pips)")
takeProfitPips = input(30, title="Take Profit (Pips)")
stopLossPips = input(20, title="Stop Loss (Pips)")

// Calculate Williams %R
wrHigh = ta.highest(high, wrLength)
wrLow = ta.lowest(low, wrLength)
wr = (wrHigh - close) / (wrHigh - wrLow) * -100

// Calculate 200-period Simple Moving Average
ma200 = ta.sma(close, 200)

// Entry Conditions
enterLong = ta.crossover(wr, -50 - crossPips) and close > ma200
enterShort = ta.crossunder(wr, -50 + crossPips) and close < ma200

// Exit Conditions
exitLong = close >= (strategy.position_avg_price + (takeProfitPips / syminfo.mintick)) or close <= (strategy.position_avg_price - (stopLossPips / syminfo.mintick))
exitShort = close <= (strategy.position_avg_price - (takeProfitPips / syminfo.mintick)) or close >= (strategy.position_avg_price + (stopLossPips / syminfo.mintick))

// Order Management
if enterLong
    strategy.entry("Long", strategy.long)
    
if enterShort
    strategy.entry("Short", strategy.short)

if exitLong
    strategy.close("Long")

if exitShort
    strategy.close("Short")