Đèn lượng động trung bình theo dõi xu hướng chiến lược tối ưu hóa

Tác giả:ChaoZhang, Ngày: 2024-01-04 15:44:23
Tags:

img

Tổng quan

Quant Lights là một chiến lược kết hợp sử dụng chỉ số Stochastic và chỉ số OTT. Chiến lược này sử dụng chỉ số Stochastic để tạo ra tín hiệu mua và bán, và kết hợp chúng với chỉ số OTT để lọc các tín hiệu, cố gắng bắt được xu hướng lớn và giảm tác động của biến động thị trường gây ra tín hiệu sai.

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

Ý tưởng cốt lõi của chiến lược là chồng chất chỉ số OTT trên chỉ số Stochastic để lọc tín hiệu. Chỉ số Stochastic so sánh giá với giá cao nhất và thấp nhất trong khoảng thời gian đã chỉ định để đánh giá xem giá có ở khu vực cực hay không.

Mã đặt mức cao của Stochastic ở 1080 và mức thấp ở 1020. Khi giá trị Stochastic nằm giữa hai, đó là một khu vực giới hạn. Khi Stochastic tạo ra tín hiệu mua / bán, mã sẽ xác định tính hợp lệ của tín hiệu dựa trên chỉ số OTT. Nếu giá vượt qua đường trung bình OTT, một tín hiệu mua được phát hành. Nếu giá vượt dưới đường trung bình OTT, một tín hiệu bán được phát hành.

Sự kết hợp này tận dụng lợi thế của Stochastic để xác định các điều kiện mua quá mức và bán quá mức và tạo ra các tín hiệu nhập cảnh, trong khi OTT chịu trách nhiệm theo dõi xu hướng và sử dụng dừng để lọc các tín hiệu sai do biến động thị trường quá mức, do đó tối ưu hóa độ chính xác và biến động tín hiệu.

Phân tích lợi thế

Chiến lược kết hợp các chỉ số Stochastic và OTT để tối ưu hóa các khía cạnh sau:

  1. Cải thiện độ chính xác tín hiệu. Thẩm phán chứng khoán quá mua và quá bán điều kiện, OTT lọc ra các tín hiệu sai do biến động thị trường.
  2. Giảm biến động chiến lược. hạn chế lỗ hiện tại thông qua dừng động, lọc ra nhiều breakout sai.
  3. Hiệu quả nắm bắt xu hướng cổ phiếu chính. Stochastic cung cấp các tín hiệu cơ bản và theo dõi xu hướng chính OTT.
  4. Giảm nhiễu tín hiệu quá mức, cải thiện chất lượng tín hiệu trong khi giảm tín hiệu vô dụng.
  5. Số lượng các thiết lập dừng động. Đảm bảo chất lượng tổn thất hiện tại và tiếp tục giảm biến động chiến lược.
  6. Hệ thống tích hợp các chỉ số xu hướng và mua quá mức / bán quá mức.

Tóm lại, bằng cách sử dụng OTT để lọc tín hiệu Stochastic, chiến lược có hiệu quả cải thiện chất lượng tín hiệu và lợi nhuận đầu tư, đồng thời giảm số lượng giao dịch và biến động chiến lược, đạt được hiệu ứng rủi ro thấp, lợi nhuận cao và theo dõi chặt chẽ xu hướng.

Phân tích rủi ro

  • Phạm vi áp dụng của chiến lược này tương đối hẹp. Nó chủ yếu phù hợp với các cổ phiếu có xu hướng rõ ràng. Nó ít ảnh hưởng đến các cổ phiếu có biến động giá rất lớn hoặc cổ phiếu trong việc củng cố bên.
  • Hoàn toàn dựa vào phân tích kỹ thuật. Chiến lược không xem xét các nguyên tắc cơ bản của cổ phiếu và môi trường vĩ mô, vì vậy có một số điểm mù.
  • Cài đặt tham số nhạy cảm. Nhiều tham số của Stochastic và OTT cần điều chỉnh chuyên nghiệp, nếu không nó sẽ ảnh hưởng đến lợi nhuận của chiến lược.
  • Các điểm dừng quá lỏng lẻo, mang lại một số tổn thất tiềm năng cần tối ưu hóa hơn nữa.
  • Sẽ có một số tổn thất và nhiễu tín hiệu trong khi phá vỡ sai và thị trường biến động.

Đối với các rủi ro trên, các biện pháp sau đây có thể được thực hiện để cải thiện:

  1. Sử dụng các kết hợp tham số khác nhau cho các loại cổ phiếu khác nhau.
  2. Tăng cường tín hiệu bằng cách kết hợp các cơ sở và tin tức.
  3. Tối ưu hóa các thông số thông qua thử nghiệm để tìm các thiết lập tối ưu.
  4. Đưa ra các điểm dừng để giảm thêm rủi ro.
  5. Thay đổi điều kiện đánh giá và sử dụng các cơ chế xác nhận tín hiệu nghiêm ngặt hơn.

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

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

  1. Điều chỉnh cài đặt tham số theo thị trường và loại cổ phiếu khác nhau. Các giá trị mặc định hiện tại là phổ biến và có thể được thử nghiệm riêng cho các cổ phiếu khác nhau để tìm kết hợp tham số tối ưu.

  2. giới thiệu các cơ chế dừng lợi nhuận và dừng di chuyển. Hiện nay sử dụng các điểm dừng cố định năng động không thể theo dõi mất mát và lợi nhuận một cách năng động. Có thể thử nghiệm việc giới thiệu các điểm dừng và dừng lợi nhuận để kiểm soát rủi ro và lợi nhuận hơn nữa.

  3. Tối ưu hóa logic đánh giá tín hiệu. Logic đánh giá hiện tại tương đối đơn giản, trực tiếp đánh dấu tín hiệu mua và bán khi giá phá vỡ hoặc giảm. Nhiều chỉ số và mô hình giá có thể được kết hợp để đảm bảo độ tin cậy tín hiệu.

  4. Tăng các điều kiện vị trí mở và cơ chế lọc. Chiến lược hiện tại xử lý mọi tín hiệu một cách không phân biệt. Các chỉ số khối lượng, chỉ số khối lượng giao dịch và các điều kiện vị trí mở khác có thể được giới thiệu, cũng như một cửa sổ thời gian tín hiệu nhất định để lọc các tín hiệu sai.

  5. Kiểm tra các kết hợp chỉ số khác nhau với OTT. Hiện đang sử dụng kết hợp Stochastic và OTT. Hiệu quả của việc kết hợp các chỉ số khác như MACD và RSI với OTT có thể được kiểm tra.

  6. Tích hợp các mô-đun quản lý vốn và kích cỡ vị trí. Hiện tại không có cơ chế quản lý vốn và kiểm soát vị trí, hoàn toàn dựa trên dừng. Các loại quản lý vốn và phương pháp kích cỡ vị trí khác nhau có thể được thử nghiệm để kiểm soát thêm rủi ro đơn lẻ và tổng thể.

Tóm lại

Quant Lights là một chiến lược định lượng kết hợp hữu cơ chỉ số Stochastic với chỉ số OTT. Nó sử dụng các điểm mạnh bổ sung của hai chỉ số để cải thiện độ chính xác tín hiệu và nắm bắt hiệu quả các xu hướng chính trong khi giảm rủi ro.

Ưu điểm của chiến lược bao gồm tỷ lệ lỗi thấp, tín hiệu rõ ràng và biến động nhỏ. Nó tăng độ tin cậy tín hiệu, tối ưu hóa mức dừng, giảm tần suất giao dịch và là một chiến lược định lượng được khuyến cáo.

Đồng thời, vẫn còn chỗ để cải thiện trong chiến lược này. Thông qua tối ưu hóa tham số, cải thiện cơ chế dừng, tăng cường tín hiệu và cơ chế lọc, vv, chiến lược có thể phát triển theo hướng ổn định hơn, tự động hóa và thông minh hơn. Đây cũng là mục tiêu của công việc tiếp theo của chúng tôi.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic
//created by: @Anil_Ozeksi
//developer: ANIL ÖZEKŞİ
//author: @kivancozbilgic


strategy(title="Stochastic Optimized Trend Tracker", shorttitle="SOTT", format=format.price, precision=2)
periodK = input(250, title="%K Length", minval=1)
smoothK = input(50, title="%K Smoothing", minval=1)
src1 = input(close, title="Source")
length=input(3, "OTT Period", minval=1)
percent=input(0.618, "OTT Percent", type=input.float, step=0.1, minval=0)
showsupport = input(title="Show Support Line?", type=input.bool, defval=false)
showsignalsc = input(title="Show Stochastic/OTT Crossing Signals?", type=input.bool, defval=false)
Var_Func1(src1,length)=>
    valpha1=2/(length+1)
    vud11=src1>src1[1] ? src1-src1[1] : 0
    vdd11=src1<src1[1] ? src1[1]-src1 : 0
    vUD1=sum(vud11,9)
    vDD1=sum(vdd11,9)
    vCMO1=nz((vUD1-vDD1)/(vUD1+vDD1))
    VAR1=0.0
    VAR1:=nz(valpha1*abs(vCMO1)*src1)+(1-valpha1*abs(vCMO1))*nz(VAR1[1])
VAR1=Var_Func1(src1,length)
k = Var_Func1(stoch(close, high, low, periodK), smoothK)
src=k+1000
Var_Func(src,length)=>
    valpha=2/(length+1)
    vud1=src>src[1] ? src-src[1] : 0
    vdd1=src<src[1] ? src[1]-src : 0
    vUD=sum(vud1,9)
    vDD=sum(vdd1,9)
    vCMO=nz((vUD-vDD)/(vUD+vDD))
    VAR=0.0
    VAR:=nz(valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*nz(VAR[1])
VAR=Var_Func(src,length)
h0 = hline(1080, "Upper Band", color=#606060)
h1 = hline(1020, "Lower Band", color=#606060)
fill(h0, h1, color=#9915FF, transp=80, title="Background")
plot(k+1000, title="%K", color=#0094FF)
MAvg=Var_Func(src, length)
fark=MAvg*percent*0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop =  MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir==1 ? longStop: shortStop
OTT=MAvg>MT ? MT*(200+percent)/200 : MT*(200-percent)/200 
plot(showsupport ? MAvg : na, color=#0585E1, linewidth=2, title="Support Line")
OTTC = #B800D9 
pALL=plot(nz(OTT[2]), color=OTTC, linewidth=2, title="OTT", transp=0)
alertcondition(cross(src, OTT[2]), title="Price Cross Alert", message="OTT - Price Crossing!")
alertcondition(crossover(src, OTT[2]), title="Price Crossover Alarm", message="PRICE OVER OTT - BUY SIGNAL!")
alertcondition(crossunder(src, OTT[2]), title="Price Crossunder Alarm", message="PRICE UNDER OTT - SELL SIGNAL!")
buySignalc = crossover(src, OTT[2])
plotshape(buySignalc and showsignalsc ? OTT*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
sellSignallc = crossunder(src, OTT[2])
plotshape(sellSignallc and showsignalsc ? OTT*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)

dummy0 = input(true, title = "=Backtest Inputs=")
FromDay    = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth  = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear   = input(defval = 2005, title = "From Year", minval = 2005)
ToDay      = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth    = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear     = input(defval = 9999, title = "To Year", minval = 2006)
Start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)
Finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)
Timerange() =>
    time >= Start and time <= Finish ? true : false
if buySignalc
    strategy.entry("Long", strategy.long,when=Timerange())
if sellSignallc
    strategy.entry("Short", strategy.short,when=Timerange())

  
  



Thêm nữa