Chiến lược của Williams Alligator


Ngày tạo: 2023-11-13 10:58:22 sửa đổi lần cuối: 2023-11-13 10:58:22
sao chép: 0 Số nhấp chuột: 719
1
tập trung vào
1617
Người theo dõi

Chiến lược của Williams Alligator

Tổng quan

Chiến lược cá mập Williams là một chiến lược theo dõi xu hướng, sử dụng hình dạng cá mập hình thành từ các đường trung bình di chuyển của ba chu kỳ khác nhau để xác định xu hướng. Khi đường nhanh cao hơn đường trung bình, đường trung bình cao hơn đường chậm, tạo thành một cá mập xu hướng tăng, làm nhiều hơn; khi đường nhanh thấp hơn đường trung bình, đường trung bình thấp hơn đường chậm, tạo thành một cá mập xu hướng giảm, làm trống.

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

Chiến lược này sử dụng đường trung bình di chuyển SMA với 3 chu kỳ khác nhau, tức là đường nhanh sma1, đường trung sma2 và đường chậm sma3. Trong đó, chu kỳ sma1 ngắn nhất và chu kỳ sma3 dài nhất.

Khi sma1 đi qua sma2 và sma2 đi qua sma3, nó cho thấy thị trường đang trong xu hướng tăng, tạo ra một miệng cá mập tăng, theo lý thuyết giao dịch xu hướng, khi đó nên tham gia nhiều hơn.

Ngược lại, khi sma1 đi qua sma2 và sma2 đi qua sma3, thị trường đang ở trong xu hướng giảm, tạo ra một con cá mập giảm, và khi đó nên tham gia vào.

Các điều kiện ra ngoài của over và short được sắp xếp lại thành ba đường đồng bằng, đường nhanh thấp hơn đường trung tâm hoặc đường trung tâm thấp hơn đường chậm, tại thời điểm này phải cân bằng vị trí.

Chiến lược này cũng vẽ màu nền để biểu thị xu hướng, màu xanh lá cây đại diện cho xu hướng tăng, màu đỏ đại diện cho xu hướng giảm.

Nhìn chung, chiến lược này sử dụng lợi thế của các đường trung bình di chuyển để đánh giá xu hướng theo hình dạng của con cá mập và tiến vào thị trường, một chiến lược theo dõi xu hướng điển hình.

Phân tích lợi thế

  • Sử dụng sự phán đoán của miệng cá mập, bạn có thể xác định được xu hướng hiệu quả.
  • Việc sử dụng các kết hợp khác nhau của các đường chu kỳ có thể cải thiện độ chính xác của phán đoán hình dạng.
  • Giao dịch nhập cảnh trôi chảy, phù hợp với lý thuyết giao dịch xu hướng.
  • Cài đặt màu nền hỗ trợ phán đoán, hiển thị trực quan.
  • Các giao dịch có logic đơn giản, rõ ràng và dễ thực hiện.

Phân tích rủi ro

  • Trong một thị trường có biến động chu kỳ lớn, có nguy cơ điều chỉnh nhiều lần.
  • Khi thứ tự xếp hàng ba thay đổi, rủi ro hòa vốn cao hơn.
  • Không thể đánh giá được xu hướng mạnh hay yếu, và có những trường hợp không phù hợp với xu hướng.
  • Không tính đến lỗ hổng, rủi ro rút tiền lớn hơn.
  • Chu kỳ cố định không thể thích ứng với sự thay đổi của thị trường, nên sử dụng chu kỳ thích ứng.

Các biện pháp sau đây có thể được áp dụng để tối ưu hóa các rủi ro trên:

  1. Tăng các điều kiện lọc xu hướng để tránh các thị trường chấn động thường xuyên mở các vị trí.

  2. Tối ưu hóa các điều kiện ra sân, kết hợp với các chỉ số xu hướng để xác định thời gian thanh toán.

  3. Tăng chiến lược dừng lỗ, kiểm soát tổn thất đơn lẻ.

  4. Sử dụng trung bình di chuyển thích ứng để thay đổi năng lượng theo chu kỳ.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa hơn nữa ở những khía cạnh sau:

  1. Tăng phán đoán mạnh hoặc yếu của xu hướng, tránh xu hướng ổn định hoặc dao động vào sớm. Các phán đoán phụ trợ như MACD, KDJ có thể được đưa vào.

  2. Tối ưu hóa các tham số chu kỳ trung bình di chuyển, tìm kiếm sự kết hợp tốt nhất. Các tham số tối ưu có thể được tìm thấy bằng cách kiểm tra lại các tham số đa nhóm.

  3. Sử dụng trung bình di chuyển thích ứng để chu kỳ có thể thích ứng với sự thay đổi theo động lực thị trường.

  4. Tăng các chiến lược dừng lỗ, chẳng hạn như theo dõi dừng lỗ, dừng lỗ dư, để kiểm soát rủi ro.

  5. Tối ưu hóa các điều kiện nhập học, có thể xem xét các chỉ số như số lượng giao dịch, bạch cầu và lọc để tăng độ chính xác nhập học.

  6. Tối ưu hóa các điều kiện ra sân, kết hợp với các chỉ số xu hướng để xác định xác suất đảo ngược xu hướng khi giao ba đường, giảm rủi ro ra sân.

Tóm tắt

Chiến lược cá mập của Williams là một chiến lược theo dõi xu hướng điển hình. Nó tạo ra hướng định hướng xu hướng cá mập bằng cách sử dụng ba đường trung bình di chuyển nhanh và chậm, và tiến bộ vào thị trường. Ưu điểm của chiến lược này là logic giao dịch đơn giản và rõ ràng, dễ vận hành; Nhược điểm là tính chính xác của định xu hướng và khả năng kiểm soát rủi ro yếu.

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

//Noro
//2019

//@version=3
strategy(title = "Noro's Alligator Strategy by Bill Williams", shorttitle = "Alligator", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len1 = input(50, defval = 50, minval = 1, title = "MA 1 Length")
len2 = input(100, defval = 100, minval = 1, title = "MA 2 Length")
len3 = input(200, defval = 200, minval = 1, title = "MA 3 Length")
src = input(close, title = "Source")
showbg = input(false, title = "Show Background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MAs
sma1 = sma(src, len1)
sma2 = sma(src, len2)
sma3 = sma(src, len3)
plot(sma1, color = lime, linewidth = 2)
plot(sma2, color = blue, linewidth = 2)
plot(sma3, color = red, linewidth = 2)

//Signals
up = sma1 > sma2 and sma2 > sma3
dn = sma1 < sma2 and sma2 < sma3

//Background
trend = 0
trend := up ? 1 : dn ? -1 : trend[1]
col = showbg == false ? na : trend == 1 ? lime : red
bgcolor(col)

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn
    strategy.entry("Short", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()