Chiến lược đột phá chéo


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

Tổng quan

Chiến lược chéo đường trung bình di chuyển là một chiến lược giao dịch định lượng rất phổ biến. Chiến lược này sử dụng đường trung bình di chuyển để đánh giá xu hướng để kiếm lợi nhuận. Khi đường trung bình di chuyển ngắn hạn vượt qua đường trung bình di chuyển dài hạn, cho thấy giá cổ phiếu bắt đầu tăng, bạn có thể làm nhiều hơn; khi đường trung bình di chuyển ngắn hạn vượt qua đường trung bình di chuyển dài hạn, cho thấy giá cổ phiếu bắt đầu giảm, bạn có thể làm trống.

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

Chiến lược này dựa trên đường trung bình di chuyển để xác định thời điểm mua và bán.upOrDownlongOrShortHai tham số nhập Boolean để đánh giá việc làm quá nhiều; sử dụngpercentInputNhập tham số để thiết lập phần trăm giảm giá của biến đổi giá cổ phiếu; sử dụngclosePositionDaysNhập tham số để thiết lập số ngày giữ vị trí.

Lập luận cốt lõi của chiến lược là: tính toán xu hướng giảm giá ngày hôm nay so với ngày hôm qua, nếu đạt được phần trăm giá trị giảm giá của đầu vào, sẽ phát ra tín hiệu giao dịch. Nếu là đợt tăng giá, hãy làm nhiều khi giá trị tăng giá ngày hôm nay so với ngày hôm qua vượt quá giá trị giảm giá; nếu là đợt giảm giá, hãy làm không khi giá trị giảm giá ngày hôm nay so với ngày hôm qua vượt quá giá trị giảm giá.

Sau khi thực hiện nhiều lần, nó sẽ được đánh dấu bằng màu sắc khác nhau trên bản vẽ ngày đó và 4 ngày sau đó.

Lợi thế chiến lược

  • Sử dụng di chuyển đồng đạo kim cương là một cách đáng tin cậy để đánh giá xu hướng thị trường
  • Lập luận chiến lược đơn giản, rõ ràng và dễ hiểu
  • Bạn có thể điều chỉnh mức độ thường xuyên của chiến lược bằng cách điều chỉnh các tham số
  • Cơ chế tự động dừng lỗ có thể kiểm soát rủi ro hiệu quả

Rủi ro chiến lược

  • Đường trung bình di chuyển có tính chậm trễ, có thể bỏ lỡ thời điểm thay đổi giá nhanh
  • Giá cổ phiếu có thể biến động mạnh trong thời gian ngắn, dẫn đến tín hiệu giao thoa không cần thiết
  • Các tham số ParameterSet không đúng cũng ảnh hưởng đến hiệu quả của chính sách
  • Không có khả năng đối phó hiệu quả với các sự kiện bất ngờ

Biện pháp kiểm soát rủi ro:

  1. Tối ưu hóa các tham số đường trung bình di chuyển, chu kỳ kéo dài thích hợp giúp lọc tiếng ồn
  2. Tăng tỷ lệ giảm giá cổ phiếu, giảm giao dịch không cần thiết
  3. Kiểm tra số ngày nắm giữ khác nhau để kiểm soát tổn thất đơn lẻ
  4. Kết hợp với các chỉ số khác để xác nhận thêm tín hiệu xu hướng

Hướng tối ưu hóa chiến lược

  • Có thể xem xét thay đổi đường trung bình di chuyển thành đường trung bình di chuyển của các chỉ số như EMA, DMA, để nó nhạy cảm hơn với sự thay đổi giá
  • Tăng cơ chế dừng lỗ, chẳng hạn như dừng lỗ ngay lập tức khi phá vỡ đường trung bình
  • Thêm các chỉ số kỹ thuật khác để kết hợp, như MACD, KDJ, v.v. để tăng tỷ lệ chiến lược
  • Bạn có thể thử phương pháp học máy để tự động tối ưu hóa tham số
  • Tối ưu hóa thời gian nhập cảnh và xuất cảnh, như breakout entrada

Tóm tắt

Chiến lược giao dịch chéo đường trung bình di chuyển là một chiến lược giao dịch định lượng rất đơn giản và thực tế. Nó lợi dụng xu hướng của giá cổ phiếu bằng cách đánh giá mối quan hệ giữa xu hướng ngắn hạn và dài hạn. Chiến lược này dễ thực hiện, logic rõ ràng, là cơ sở của nhiều chiến lược giao dịch định lượng.

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

//@version=3
//  Created by Leon Ross

strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, 
  pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, 
  calc_on_every_tick=true, initial_capital=100000)
  
//Inputs
longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false
upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day
percentInput = input(title="Percent", type=float, defval=4.5)
closePositionDays = input(title="How Many Days to Close Position", defval=4)

//Conditions
//percentUpValue = (close / close[1]) - 1
//percentUp = percentUpValue >= (percentInput/100.0)
//upConditions = percentUp
//percentDownValue = 1- (close / close[1])
//percentDown = percentDownValue >= (percentInput/100.0)
//downConditions = percentDown
upValue = (close / close[1]) - 1
downValue = 1 - (close / close[1])
allConditions = if(upOrDown)
    upValue >= (percentInput/100.0)
else
    downValue >= (percentInput/100.0)
    
//Plots
bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70)
bgcolor(allConditions ? silver : na, transp=70, offset=1)
bgcolor(allConditions ? silver : na, transp=70, offset=2)
bgcolor(allConditions ? silver : na, transp=70, offset=3)
bgcolor(allConditions ? silver : na, transp=70, offset=4)
//bgcolor(downConditions == 1 ? red : na, transp=70)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3)
//bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4)

//Entires
if(longOrShort)
    strategy.entry(id = "Long", long = true, when = allConditions) 
else
    strategy.entry(id = "Short", long = false, when = allConditions)

//Exits
if (barssince(allConditions) == closePositionDays)
    if(longOrShort)
        strategy.close("Long")
    else
        strategy.close("Short")