Chiến lược định lượng Golden Cross

Tác giả:ChaoZhang, Ngày: 2023-12-26 15:52:13
Tags:

img

Tổng quan

Chiến lược này đánh giá xu hướng giá và cơ hội giao dịch bằng cách tính toán đường chéo trung bình động kép. Khi MA nhanh vượt qua trên MA chậm, nó được coi là một đường chéo vàng để đi dài. Khi MA nhanh vượt qua dưới MA chậm, nó được coi là một đường chéo chết để đi ngắn. Đồng thời, kết hợp Chỉ số khối lượng để đánh giá độ tin cậy của các đường chéo để tránh các tín hiệu sai.

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

Các nguyên tắc cốt lõi của chiến lược này là:

  1. Tính toán hai nhóm trung bình động với các thông số khác nhau, một nhóm phản ứng nhanh với những thay đổi giá và nhóm khác phản ứng tương đối chậm. Khi MA nhanh vượt qua trên MA chậm, nó báo hiệu xu hướng tăng giá. Khi MA nhanh vượt qua dưới MA chậm, nó báo hiệu xu hướng giảm giá.

  2. Khi các MAs vượt qua, kiểm tra sự thay đổi của Chỉ số khối lượng. Nếu Chỉ số khối lượng cũng phá vỡ đáng kể, tín hiệu chéo là đáng tin cậy. Nếu không có sự phá vỡ tương ứng trong khối lượng, nó có thể là tín hiệu sai.

  3. Nhập các vị trí dài hoặc ngắn dựa trên đánh giá hướng và khối lượng chéo.

Cụ thể, chiến lược đánh giá xu hướng giá bằng cách sử dụng chéo MAs kép 7 giai đoạn. Nó sử dụng các chỉ số khối lượng để kiểm tra độ tin cậy của tín hiệu. Khi nhận được các tín hiệu đáng tin cậy, nó đi dài hoặc ngắn theo SIGNAL. Nó đặt mục tiêu lợi nhuận để kiếm lợi nhuận.

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Kết hợp hai MAs để xác định hướng xu hướng và bộ lọc âm lượng để tránh tín hiệu sai và bị mắc kẹt.

  2. Chỉ nhận vị trí khi Volume xác nhận, tăng tỷ lệ thành công.

  3. Có cơ chế lấy lợi nhuận để lấy lợi nhuận kịp thời và tránh đưa lại lợi nhuận.

Phân tích rủi ro

Những rủi ro chính của chiến lược này là:

  1. Sự chậm trễ chuyển giao MA có thể bỏ lỡ cơ hội tốt nhất. Có thể tối ưu hóa các thông số để làm cho MA nhạy cảm hơn.

  2. Rất khó để đánh giá khi khối lượng khác nhau. Có thể thêm nhiều chỉ số để xác nhận.

  3. Cài đặt stop profit không chính xác có thể dẫn đến giao dịch quá nhiều hoặc giữ người thắng quá lâu.

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

Chiến lược có thể được tối ưu hóa từ các khía cạnh sau:

  1. Tối ưu hóa các giai đoạn MA để làm cho nó đáp ứng nhanh hơn để bắt những thay đổi giá theo thời gian.

  2. Thêm thêm các chỉ số như MACD, KD để xác nhận tín hiệu để tránh các tín hiệu sai về khối lượng.

  3. Kết hợp nhiều cơ chế thu lợi nhuận hơn như dừng đường mòn, dừng tỷ lệ phần trăm, dừng biến động để thu lợi nhuận năng động.

  4. Thêm cơ chế dừng lỗ để kiểm soát số tiền lỗ giao dịch duy nhất.

  5. Tối ưu hóa kích thước vị trí thích nghi với môi trường thị trường khác nhau.

Kết luận

Tóm lại, ý tưởng cốt lõi của chiến lược này là sử dụng bộ lọc MA kép cho xu hướng và bộ lọc khối lượng cho độ tin cậy tín hiệu. Nó ổn định và dễ thực hiện. Việc tối ưu hóa thêm các thông số, lọc tín hiệu, lấy lợi nhuận và dừng lỗ có thể làm cho nó đáng tin cậy và thông minh hơn cho giao dịch thực tế.


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("ZendicatoR", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15, pyramiding=0)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
sma1=sma(close,11)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
Q=n1>n2?blue:yellow
plot(sma1,style=line,color=Q,linewidth=4)
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)

Thêm nữa