Chiến lược dao động ngẫu nhiên

Tác giả:ChaoZhang, Ngày: 2023-11-06 09:30:27
Tags:

img

Tổng quan

Chiến lược dao động ngẫu nhiên tích hợp nhiều chỉ số kỹ thuật, bao gồm Ichimoku Kinko Hyo, MACD và Trung bình di chuyển Hull, để tạo thành một hệ thống quyết định giao dịch có hệ thống. Nó nhằm mục đích nắm bắt các điểm đảo ngược xu hướng và cơ hội tiềm năng trong các thị trường dao động.

Chiến lược logic

Đầu tiên, Tenkan-sen và Kijun-sen của Ichimoku Kinko Hyo được áp dụng. Tenkan-Sen được tính như là trung bình của mức cao nhất và thấp nhất trong 9 giai đoạn qua. Kijun-Sen là trung bình của mức cao nhất và thấp nhất trong 24 giai đoạn qua.

Thứ hai, chỉ số MACD được kết hợp như một chỉ số động lực theo xu hướng quan trọng. Nó cho thấy mối quan hệ giữa hai EMA của giá.

Thứ ba, trung bình động Hull được giới thiệu để cải thiện vấn đề chậm trễ của các trung bình động và tăng độ nhạy của việc bắt sự đảo ngược giá. Nó được tính bằng cách sử dụng WMA của thời gian nửa, đầy đủ và gốc vuông.

Cuối cùng, chiến lược kết hợp tất cả các chỉ số trên để tạo thành một hệ thống giao dịch mạnh mẽ.

Ưu điểm

  • Sự đa dạng hóa thông qua nhiều chỉ số làm giảm điểm thất bại duy nhất.

  • Tích hợp cung cấp quyền quyết định mạnh mẽ hơn thông qua mô hình toàn diện.

  • Giảm tín hiệu sai khi mỗi tín hiệu được xác minh bởi những người khác.

  • Tăng hiệu quả bằng cách chỉ hoạt động trên các tín hiệu thuyết phục cao.

  • Các tham số có thể tùy chỉnh để điều chỉnh chiến lược để thay đổi thị trường.

  • Giảm chậm trễ và phản ứng nhanh hơn từ trung bình chuyển động Hull.

Rủi ro

  • Rủi ro cao hơn trong các thị trường biến động với tín hiệu sai.

  • Không hiệu quả nếu các thông số chỉ số không được tối ưu hóa đúng cách.

  • Có khả năng bỏ lỡ xu hướng di chuyển bằng cách tập trung vào sự đảo ngược.

  • Hull MA tương đối mới và chưa được chứng minh về lâu dài.

  • Giao dịch không thường xuyên có thể bỏ lỡ một số cơ hội.

Tăng cường

  • Thêm thêm các chỉ số như Bollinger Bands có thể tối ưu hóa hệ thống hơn nữa.

  • Điều chỉnh tham số để tìm sự kết hợp tối ưu cho các tài sản và khung thời gian khác nhau.

  • Thiết lập dừng động để kiểm soát lỗ giao dịch duy nhất.

  • Tích hợp các bộ lọc xu hướng để tránh bỏ lỡ xu hướng.

  • Tối ưu hóa kích thước vị trí bằng cách điều chỉnh tần suất và kích thước dựa trên điều kiện thị trường.

Kết luận

Chiến lược dao động ngẫu nhiên kết hợp nhiều kỹ thuật phân tích kỹ thuật để nắm bắt các cơ hội trong thị trường giới hạn phạm vi. Nó cung cấp những lợi thế của tích hợp chỉ số, giảm tín hiệu sai và tăng hiệu quả. Nhưng nó cũng mang lại những rủi ro vốn có đòi hỏi tối ưu hóa và thích nghi hơn nữa. Nhìn chung, nó đại diện cho một cách tiếp cận mạnh mẽ, thực tế để giao dịch thị trường dao động.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Ichimoku Kinko Hyo + HULL-MA_X + MacD", shorttitle="@m", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)

keh=input(title="Double HullMA",defval=12, minval=1)

n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green

TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
LS=close, offset = -displacement

MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(24)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 3)
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
p1=plot (SenkouSpanA, offset = displacement, color=green,  title="Senkou Span A", linewidth = 2)
p2=plot (SenkouSpanB, offset = displacement, color=red,  title="Senkou Span B", linewidth = 3)
fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red)

closelong = n1<n2 and close<n2 and (MACD<aMACD or TenkanSen<KijunSen or close<KijunSen)
if (closelong)
    strategy.close("Long")

closeshort = n1>n2 and close>n2 and (MACD>aMACD or TenkanSen>KijunSen or close>KijunSen)
if (closeshort)
    strategy.close("Short")

longCondition = n1>n2 and close>n2 and MACD>aMACD and (TenkanSen>KijunSen or close>KijunSen) 
if (longCondition)
    strategy.entry("Long",strategy.long)

shortCondition = n1<n2 and close<n2 and MACD<aMACD and (TenkanSen<KijunSen or close<KijunSen)
if (shortCondition)
    strategy.entry("Short",strategy.short)

Thêm nữa