Byron Serpent Cloud Quant Chiến lược

Tác giả:ChaoZhang, Ngày: 2024-02-18 15:36:22
Tags:

img

Tổng quan

Byron Serpent Cloud Quant Strategy chủ yếu kết hợp các chỉ số Ichimoku và chỉ số ngẫu nhiên RSI để xây dựng các tín hiệu chiến lược giao dịch định lượng bằng cách cân nhắc các phán quyết của hai chỉ số, do đó đạt được giao dịch tự động các loại chứng khoán.

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

Chiến lược này sử dụng các chỉ số như đường chuyển đổi, đường cơ sở, dẫn 1 và dẫn 2 trong Ichimoku, kết hợp với đường K và đường D trong StochRSI. Ở phía Ichimoku, nếu đường chuyển đổi nằm trên đường cơ bản và dẫn 1 nằm trên đường dẫn 2, đó là tín hiệu tăng. Nếu đường chuyển đổi nằm dưới đường cơ bản và dẫn 1 nằm dưới đường dẫn 2, đó là tín hiệu giảm mạnh. Ngoài ra, nếu đường chuyển đổi nằm trên hoặc dưới đường cơ bản, nó cũng có thể tạo ra các tín hiệu tăng hoặc giảm yếu. Ở phía StochRSI, nếu đường K nằm trên đường DSI và đường K nằm dưới đường mua quá mức và đường D nằm dưới đường mua quá mức, đó là tín hiệu mua quá mức của StochR. Nếu đường quyết định KSI nằm dưới đường D và đường quyết định KSI nằm trên đường bán quá mức và đường quyết định D nằm trên đường bán quá mức, đó là một tín hiệu quyết định khác nhau của StochRSI. Bằng cách so sánh các tín hiệu mua và bán với giá trị cuối cùng của StochRSI, Ichimoku sẽ tạo ra các tín hiệu quyết định khác nhau. Bằng cách

Phân tích lợi thế

Chỉ số này kết hợp các chỉ số Ichimoku và StochRSI để đồng thời xác định hướng xu hướng và điều kiện mua quá mức / bán quá mức cho các tín hiệu toàn diện và đáng tin cậy hơn. So với việc sử dụng một chỉ số duy nhất, nó có thể làm giảm việc tạo ra các tín hiệu sai. Chỉ số Ichimoku khá chính xác trong việc đánh giá xu hướng trung và dài hạn, trong khi chỉ số StochRSI có thể đo hiện tượng mua quá mức / bán quá mức ngắn hạn, cho phép chiến lược phù hợp với các chu kỳ khác nhau. Thiết kế thêm trọng lượng quyết định cũng làm cho các tín hiệu chiến lược mượt mà và đáng tin cậy hơn. Nhìn chung, chiến lược này có thể tự động xác định các điểm chuyển đổi trong xu hướng thị trường và tạo ra các tín hiệu giao dịch với những lợi thế như hoạt động dễ dàng, khả năng áp dụng rộng và tín hiệu ổn định.

Phân tích rủi ro

Nguy cơ lớn nhất của chiến lược này là cả chỉ số Ichimoku và StochRSI có thể tạo ra tín hiệu sai, đặc biệt là trong các thị trường giới hạn phạm vi, điều này sẽ làm tăng giao dịch không cần thiết. Ngoài ra, việc thiết lập cân nặng và giá trị tham số cũng sẽ có tác động lớn đến hiệu quả của chiến lược. Nếu cân nặng được đặt không đúng cách, các tín hiệu quan trọng có thể bị bỏ qua hoặc quá nhiều tín hiệu sai có thể được tạo ra. Một số tham số chính như chiều dài RSI và chiều dài Stoch cũng cần được thử nghiệm và tối ưu hóa cho các loại và môi trường thị trường khác nhau, nếu không nó sẽ ảnh hưởng đến chiến lược. Cuối cùng, các vấn đề dữ liệu cũng có thể trở thành rủi ro cho chiến lược. Nếu chất lượng dữ liệu không tốt, nó cũng sẽ gây ra tín hiệu và độ lệch.

Hướng dẫn tối ưu hóa

Chiến lược này cũng có tiềm năng tối ưu hóa lớn. Thứ nhất, xem xét thêm các chỉ số như Bollinger Bands và KD để đánh giá tín hiệu toàn diện hơn. Thứ hai, sử dụng máy học hoặc thuật toán di truyền để tự động tối ưu hóa các thông số thay vì sử dụng các thông số cố định để làm cho các chiến lược thông minh và thích nghi hơn. Thứ ba, nghiên cứu cách cải thiện các thuật toán chỉ số để giảm việc tạo ra tín hiệu sai. Thứ tư, cơ chế thiết lập trọng lượng cũng có thể được tối ưu hóa hơn nữa, chẳng hạn như tăng trọng lượng của các tín hiệu mạnh. Thứ năm, các thông số và quy tắc có thể được tối ưu hóa cho nhiều giống hoặc thị trường con hơn để thích nghi với môi trường thị trường luôn thay đổi.

Tóm lại

Byron Serpent Cloud Quant Strategy kết hợp các chỉ số Ichimoku và StochRSI để tạo ra các tín hiệu giao dịch thông qua cân nặng và thiết kế tham số, có thể tự động nắm bắt sự thay đổi xu hướng của thị trường và có khả năng thích nghi tốt với các loại và chu kỳ khác nhau. Đây là một tập hợp các chiến lược định lượng đáng nghiên cứu và áp dụng sâu sắc. Chiến lược cũng có tiềm năng mở rộng và tối ưu hóa hơn nữa, chẳng hạn như giới thiệu nhiều chỉ số và kỹ thuật hơn, và dự kiến sẽ đạt được kết quả giao dịch tốt hơn.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Baracuda Ichimoku/StochRSI Strategy", overlay=true)

DecisionWeight = input(50, minval = 0, title="BUY/SELL decision weight")

ichimokuStrong = input(35, minval = 0, title="Ichimoku strong weight")
ichimokuStandard = input(20, minval = 0, title="Ichimoku standard weight")
ichimokuWeak = input(20, minval = 0, title="Ichimoku weak weight")
stochRSIWweak = input(30, minval = 0, title="Stoch RSI weight")

conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(5, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

lengthRSI = input(8, minval=8) //14
lengthStoch = input(5, minval=5)//14
smoothK = input(3,minval=3) 
smoothD = input(3,minval=3)
OverSold = input(20)
OverBought = input(80)
rsi1 = rsi(close, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)


stronglong = conversionLine > baseLine and leadLine1 > leadLine2
strongshort = conversionLine < baseLine and leadLine1 < leadLine2

weaklong = conversionLine > baseLine
weakshort = conversionLine < baseLine

RSIlong = k > d and k < OverSold and d < OverSold
RSIshort = k < d and k > OverBought and d > OverBought

long=(((stronglong ? 1:0)*ichimokuStrong) + ((weaklong? 1:0)*ichimokuWeak) + ((RSIlong? 1:0)*stochRSIWweak)) > DecisionWeight
short=(((strongshort? 1:0)*ichimokuStrong) + ((weakshort? 1:0)*ichimokuWeak) + ((RSIshort? 1:0)*stochRSIWweak)) > DecisionWeight

strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)

Thêm nữa