Chiến lược mua và bán đa chỉ số

Tác giả:ChaoZhang, Ngày: 2023-10-18 11:36:38
Tags:

img

Tổng quan

Chiến lược này kết hợp các chỉ số trung bình động, mua quá mức và tỷ lệ biến động để mua khi giảm khi bán quá mức và bán khi tăng khi mua quá mức, để theo dõi xu hướng.

Chiến lược logic

Lấy vị trí khi RSI và Stoch đều ở vùng bán quá mức / mua quá mức và dao động AO cho thấy tín hiệu đảo ngược. Cụ thể, mua dài khi RSI và Stoch thấp (dưới 30 và 20) và AO chuyển từ âm sang dương; mua ngắn khi RSI và Stoch cao (trên 70 và 80) và AO chuyển từ dương sang âm. Đặt dừng lỗ và lấy lợi nhuận dựa trên giá trị ATR để điều chỉnh mức lỗ / lợi nhuận theo biến động thị trường.

Chiến lược chủ yếu sử dụng bốn chỉ số:

  • Trình dao động AO: phản ánh đà tăng giá, có thể được sử dụng để xác định sự đảo ngược xu hướng.
  • RSI: phản ánh mức mua quá mức / bán quá mức. Dưới 30 là vùng bán quá mức.
  • Cổ phiếu: phản ánh khu vực mua quá mức / bán quá mức.
  • ATR: phản ánh sự biến động giá gần đây.

Khi AO hiển thị tín hiệu đảo ngược và RSI & Stoch đều ở vùng bán quá mức / mua quá mức, giá có thể đảo ngược. Lấy vị trí vào thời điểm này. Sử dụng ATR để đặt giá dừng lỗ và lấy lợi nhuận để tránh bị mắc kẹt bằng cách điều chỉnh phạm vi lỗ / lợi nhuận dựa trên biến động.

Ưu điểm

  • Sử dụng nhiều chỉ số để xác nhận tín hiệu, tránh giao dịch sai từ chỉ số duy nhất.
  • Đặt stop loss/profit dựa trên biến động để kiểm soát lỗ đơn.
  • Logic đơn giản và rõ ràng, dễ hiểu và thực hiện.
  • Tận dụng các tình huống mua quá mức / bán quá mức để nắm bắt sự đảo ngược.

Rủi ro và giải pháp

  • AO có thể tạo ra tín hiệu sai. Cần kết hợp với RSI và Stoch để tránh giao dịch sai.
  • Các thông số cố định có thể không thích nghi với những thay đổi của thị trường.
  • Dừng lỗ quá gần có thể kích hoạt dừng thường xuyên. Có thể nới lỏng phạm vi dừng hoặc sử dụng chiến lược thoát.
  • Lợi nhuận cố định có thể thoát quá sớm hoặc muộn. Có thể sử dụng lợi nhuận thích nghi hoặc thoát một phần.

Để giảm rủi ro, tối ưu hóa các khía cạnh sau:

  1. Tối ưu hóa các tham số để thích nghi với các giai đoạn và công cụ khác nhau.
  2. Cải thiện các phương pháp dừng lỗ như dừng lại, ra ngoài một phần.
  3. Tối ưu hóa các quy tắc nhập để tránh tín hiệu sai.
  4. Tối ưu hóa cách kiếm lợi nhuận như thích nghi kiếm lợi nhuận, phân khúc theo xu hướng.

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

Các khía cạnh sau đây có thể được tối ưu hóa cho chiến lược:

  1. Tối ưu hóa cài đặt tham số bằng cách đi qua các giá trị khác nhau.

  2. Thêm điều kiện lọc khi vào để tránh tín hiệu sai.

  3. Tối ưu hóa các phương pháp dừng lỗ như dừng lỗ sau.

  4. Tối ưu hóa lấy lợi nhuận theo cách thích nghi lấy lợi nhuận.

  5. Thêm tự động lấy lợi nhuận gần các mức chính để tránh rút lui.

  6. Tối ưu hóa quản lý tiền bằng cách điều chỉnh kích thước vị trí theo rủi ro.

  7. Kiểm tra và tối ưu hóa các tham số và mức dừng/lợi nhuận dựa trên các công cụ và khung thời gian khác nhau.

  8. Quản lý các sự kiện cực đoan như tránh giao dịch trong tin tức hoặc cắt lỗ nhanh.

Tóm lại

Chiến lược này kết hợp các hệ thống chuyển động trung bình, mua quá nhiều và bán quá nhiều và biến động để mua thấp và bán cao, với khả năng theo xu hướng mạnh. Nhưng một số vấn đề như các tham số cố định và stop loss không đúng tồn tại. Chúng ta có thể tối ưu hóa từ các khía cạnh khác nhau như điều chỉnh tham số, cải thiện stop loss, thêm các bộ lọc để làm cho nó mạnh mẽ hơn. Trong giao dịch thực tế, cần phải thử nghiệm và tối ưu hóa dựa trên các công cụ và khoảng thời gian cụ thể để tối đa hóa hiệu quả và lợi nhuận của nó.


/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Buy&Sell Strategy depends on AO+Stoch+RSI+ATR by SerdarYILMAZ", shorttitle="Buy&Sell Strategy")
// Created by Serdar YILMAZ
// This strategy is just for training, its purpose is just learning code in pine script.
// Don't make buy or sell decision with this strategy.
// Bu strateji sadece pine script'te kodlamanın nasıl yapildigini ogrenmek icindir.
// Bu stratejiye dayanarak, kesinlikle al-sat islemleri yapmayin.

//AO

fast=input(title="Fast Length",type=input.integer,defval=5)
slow=input(title="Slow length",type=input.integer,defval=34)

awesome=(sma(hl2,fast)-sma(hl2,slow))*1000

plot(awesome, style=plot.style_histogram, color=(awesome>awesome[1]?color.green:color.red))

//Stoch

K=input(title="K",type=input.integer,defval=14)
D=input(title="D",type=input.integer,defval=3)
smooth=input(title="smooth",type=input.integer,defval=3)

k=sma(stoch(close,high,low,K),D)
d=sma(k,smooth)

hline(80)
hline(20)

plot(k,color=color.blue)

//RSI

rsisource=input(title="rsi source",type=input.source,defval=close)
rsilength=input(title="rsi length",type=input.integer,defval=10)

rsi=rsi(rsisource,rsilength)

hline(70,color=color.orange)
hline(30,color=color.orange)

plot(rsi,color=color.orange)

//ATR

atrlen=input(title="ATR Length", type=input.integer,defval=14)

atrvalue=rma(tr,atrlen)

plot(atrvalue*1000,color=color.green)

LongCondition=k<20 and rsi<30 and awesome>awesome[1]
ShortCondition=k>80 and rsi>70 and awesome<awesome[1]
if (LongCondition)
    stoploss=low-atrvalue
    takeprofit=close+atrvalue
    strategy.entry("Long Position", strategy.long)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
if (ShortCondition)
    stoploss=high+atrvalue
    takeprofit=close-atrvalue
    strategy.entry("Short Position",strategy.short)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
    

    
    




Thêm nữa