Chiến lược giao dịch kỹ thuật tổng hợp Three Dragons


Ngày tạo: 2023-12-21 11:56:31 sửa đổi lần cuối: 2023-12-21 11:56:31
sao chép: 0 Số nhấp chuột: 636
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch kỹ thuật tổng hợp Three Dragons

Tổng quan

Hệ thống SamRong là một chiến lược giao dịch kỹ thuật kết hợp các chỉ số xu hướng giá trị kéo dài, chỉ số đường Đông Dương và chỉ số SAR đường thẳng. Chiến lược này sử dụng lợi thế bổ sung của ba chỉ số để xác định hướng xu hướng thị trường và tín hiệu mua bán tiềm năng.

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

Chiến lược này đầu tiên sử dụng chỉ số xu hướng giá trị mở rộng và kênh Đồng Chiên để xác định hướng xu hướng thị trường. Khi chỉ số xu hướng giá trị mở rộng nằm trên đường cơ sở và giá cao hơn kênh Đồng Chiên, nó biểu thị xu hướng tăng; ngược lại, khi chỉ số xu hướng giá trị mở rộng nằm dưới đường cơ sở và giá thấp hơn kênh Đồng Chiên, nó biểu thị xu hướng giảm.

Sau khi xác định xu hướng của thị trường, chiến lược này đưa ra các chỉ số SAR parallax để xác định thời điểm mua và bán cụ thể. Khi đường SAR parallax xuyên qua giá dưới, nó tạo ra tín hiệu mua; Khi đường SAR parallax xuyên qua giá trên, nó tạo ra tín hiệu bán.

Để xác minh thêm tín hiệu, chiến lược này cũng xác nhận hướng xu hướng trong nhiều chu kỳ thời gian, tránh tham gia vào thị trường trong thời gian biến động mạnh. Ngoài ra, chiến lược này cũng đặt nhiều mức dừng để khóa lợi nhuận và kiểm soát rủi ro.

Phân tích lợi thế

Ưu điểm lớn nhất của hệ thống Sanlong là sử dụng ba loại chỉ số khác nhau với sự bổ sung mạnh mẽ, có thể đánh giá chính xác hơn về xu hướng thị trường. Cụ thể, các lợi thế chính là:

  1. Chỉ số xu hướng giá trị mở rộng có thể xác định chính xác điểm thay đổi xu hướng và cường độ xu hướng, cơ bản là tốt;
  2. Chỉ số đường Đông Dương có thể đánh giá rõ xu hướng và nắm bắt được xu hướng tốt hơn;
  3. SAR đường parabola kết hợp với các chỉ số xu hướng để xác định chính xác hơn điểm mua và bán.

Thông qua kết hợp hữu cơ của các chỉ số, các lợi thế của các chỉ số có thể được khai thác đầy đủ, cho phép hệ thống Samsung đánh giá chính xác về xu hướng đường dài lớn và trung bình, xác định điểm mua và bán chính xác hơn, do đó có thể có được tỷ lệ lợi nhuận rủi ro tốt hơn.

Phân tích rủi ro

Hệ thống Samsung là một chiến lược bao gồm các chỉ số, rủi ro tổng thể có thể kiểm soát được, nhưng vẫn có một số rủi ro cần lưu ý:

  1. Mở rộng chỉ số xu hướng của giá cả để đánh giá rủi ro sai lầm trong trường hợp phá vỡ giả và đảo ngược khối lượng lớn;
  2. Trong quá trình kiểm tra động đất, các đường hầm có thể bị thu hẹp, tạo ra các tín hiệu sai lệch.
  3. Cài đặt tham số SAR đường parabola không đúng cũng có thể ảnh hưởng đến nhận dạng điểm mua và bán.

Đối với các rủi ro trên, chúng tôi khuyên bạn nên điều chỉnh các thiết lập tham số chỉ số phù hợp và tham khảo các chỉ số khác để giảm khả năng thất bại của chỉ số đơn lẻ. Ngoài ra, việc quản lý lỗ hổng và vị trí hợp lý cũng rất quan trọng đối với việc kiểm soát rủi ro tổng thể của chiến lược.

Tối ưu hóa chiến lược

Tuy nhiên, hệ thống này vẫn còn nhiều khả năng tối ưu hóa hơn nữa:

  1. Có thể giới thiệu các tham số chỉ số tự động tối ưu hóa của thuật toán học máy;
  2. Có thể xem xét việc đưa ra các chỉ số biến động hỗ trợ phán đoán để tăng sự ổn định của chiến lược;
  3. Các chỉ số cảm xúc có thể được kết hợp để đánh giá tác động của sự thay đổi cảm xúc của công chúng đối với chiến lược.

Chúng tôi sẽ tiếp tục chú ý đến công nghệ tiên tiến trong ngành và liên tục tối ưu hóa hệ thống chiến lược cải tiến.

Tóm tắt

Hệ thống SamRong là một chiến lược kết hợp các chỉ số kỹ thuật, đánh giá xu hướng thị trường và tìm ra điểm mua bán bằng cách mở rộng chỉ số xu hướng giá trị, chỉ số đường Đông Dương và chỉ số SAR đường ngang. Chiến lược này đánh giá chính xác, có thể kiểm soát rủi ro, được kiểm tra nhiều lần, là một hệ thống chiến lược hiệu quả phù hợp với các nhà đầu tư trung bình và dài hạn. Chúng tôi sẽ tiếp tục tối ưu hóa hệ thống SamRong để có được tỷ lệ lợi nhuận rủi ro tốt hơn.

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

//@version=5
strategy(title="TRIPLE DRAGON SYSTEM", overlay=true,default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=1000,pyramiding=0,commission_value=0.01)
/////////////// DRAG-ON ///// EMA'S /////////////// 
emar = ta.ema(close,5)
plot(emar, color=color.blue, title="S-Fast EMA")
//EMAlengthTRF = input.int(200, minval=1,title = "EMA Filter")
//ematrf = ta.ema(close,EMAlengthTRF)
//plot(ematrf, "EMA-TREND FILTER", color=color.red,linewidth = 4)
/////////////// 1-DRAG-ON /////EXTENDED PRICE VOLUME TREND /////////////// 
lenght = input(200,"EPVT - Trend Lenght")   
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
    runtime.error("No volume is provided by the data vendor.")
src = close

vt = ta.cum(ta.change(src)/src[1]*volume)
upx = ta.highest(vt,lenght)
downx = ta.lowest(vt,lenght)
basex = (upx +downx)/2
VTX = vt - basex

/////////////// 2-DRAG-ON ///// DON TREND /////////////// 

length = input.int(200, minval=1, title = "Donchian Lenght")
lower = ta.lowest(length)
upper = ta.highest(length)
basis = math.avg(upper, lower)

updiff = upper - close
downdiff = lower - close
dontrend = -(updiff + downdiff)   

xupx = ta.highest(dontrend,length) >0 ? ta.highest(dontrend,length) : 0 

xdownx = ta.lowest(dontrend,length) < 0 ?ta.lowest(dontrend,length) :0 
xxbasisxx = math.avg(xdownx, xupx)

inversedragup = xupx[1]  
inversedragdown = xdownx[1]  
inversedragon = (inversedragup+inversedragdown)/2

/////////////// 3-DRAG-ON ///// SUPER SAR-X /////////////// 
start = input(0.02)
increment = input(0.02)
maximum = input(0.8)
entry_bars = input(1, title='Entry on Nth trend bar')

atr = ta.atr(14)

atr := na(atr) ? ta.tr : atr

psar = 0.0  // PSAR
af = 0.0  // Acceleration Factor
trend_dir = 0  // Current direction of PSAR
ep = 0.0  // Extreme point
trend_bars = 0

sar_long_to_short = trend_dir[1] == 1 and close <= psar[1]  // PSAR switches from long to short
sar_short_to_long = trend_dir[1] == -1 and close >= psar[1]  // PSAR switches from short to long

trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long

// Calculate trend direction
trend_dir := barstate.isfirst[1] and close[1] > open[1] ? 1 : barstate.isfirst[1] and close[1] <= open[1] ? -1 : sar_long_to_short ? -1 : sar_short_to_long ? 1 : nz(trend_dir[1])

trend_bars := sar_long_to_short ? -1 : sar_short_to_long ? 1 : trend_dir == 1 ? nz(trend_bars[1]) + 1 : trend_dir == -1 ? nz(trend_bars[1]) - 1 : nz(trend_bars[1])

// Calculate  Acceleration Factor
af := trend_change ? start : trend_dir == 1 and high > ep[1] or trend_dir == -1 and low < ep[1] ? math.min(maximum, af[1] + increment) : af[1]

// Calculate extreme point
ep := trend_change and trend_dir == 1 ? high : trend_change and trend_dir == -1 ? low : trend_dir == 1 ? math.max(ep[1], high) : math.min(ep[1], low)

// Calculate PSAR
psar := barstate.isfirst[1] and close[1] > open[1] ? low[1] : barstate.isfirst[1] and close[1] <= open[1] ? high[1] : trend_change ? ep[1] : trend_dir == 1 ? psar[1] + af * atr : psar[1] - af * atr

//////////////// MELODY ///////////////////
VTY = ta.valuewhen(ta.cross(VTX,0),close,0)
//plot(VTY, color=color.black, title="Extended-PVT")

//DONTRENDX = ta.valuewhen(ta.cross(dontrend,0),close,0)
//plot(DONTRENDX, color=color.red, title="DONCHIAN TREND")

SSARX = ta.valuewhen(ta.cross(psar,close),close,0)
//plot(SSARX, color=color.black, title="SSAR-X")

MAXDRAG = math.max(SSARX,VTY)
//plot(MAXDRAG, color=color.black, title="MAX DRAG")
MINDRAG = math.min(SSARX,VTY)
//plot(MINDRAG, color=color.black, title="MIN DRAG")
BASEDRAG = math.avg(MAXDRAG,MINDRAG)
//plot(BASEDRAG, color=color.red, title="BASE DRAG")


/////BUY AND SELL LOGIC ///////////
DRAGONBUY = (ta.crossover(close,MAXDRAG) or ta.crossover(close,MINDRAG) )
DRAGONBUYSTOP = (ta.crossunder(close,MAXDRAG) or ta.crossunder(close,MINDRAG)) 
DRAGONBUYPLOT = ta.valuewhen(DRAGONBUY==true,close,0)
plot(DRAGONBUYPLOT, color=color.red, title="BUY LINE")

DRAGONSELL = (ta.crossunder(close,MAXDRAG) or ta.crossunder(close,MINDRAG) ) 
DRAGONSELLSTOP = (ta.crossover(close,MAXDRAG) or ta.crossover(close,MINDRAG))
DRAGONSELLPLOT = ta.valuewhen(DRAGONSELL==true,close,0)
plot(DRAGONSELLPLOT, color=color.red, title="SELL LINE")

/////TAKE PROFIT LOGIC ///////////
tp1 = input.int(5, minval=1,title = "TP-1")
tp2 = input.int(10, minval=1,title = "TP-2")
tp3 = input.int(15, minval=1,title = "TP-3")

TPTAKA1B = DRAGONBUYPLOT*(1+tp1/100)
//plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1)
TPTAKA2B = DRAGONBUYPLOT*(1+tp2/100)
//plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1)
TPTAKA3B = DRAGONBUYPLOT*(1+tp3/100)
//plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1)

TPTAKA1S = DRAGONSELLPLOT*(1-tp1/100)
//plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1)
TPTAKA2S = DRAGONSELLPLOT*(1-tp2/100)
//plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1)
TPTAKA3S = DRAGONSELLPLOT*(1-tp3/100)
//plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1)


BUYTP = ta.crossunder(emar,TPTAKA1B) or ta.crossunder(emar,TPTAKA2B) or ta.crossunder(emar,TPTAKA3B) 
SELLTP = ta.crossover(emar,TPTAKA1B) or ta.crossover(emar,TPTAKA2B) or ta.crossover(emar,TPTAKA3B)

/////STRATEGY ///////////
// Enter condition 
longCondition = DRAGONBUY==true 
if longCondition
    strategy.entry('Long', strategy.long, comment = "ENTER-LONG")

// Exit condition 
strategy.close('Long', when=DRAGONBUYSTOP, comment = "EXIT-LONG")

// Enter condition 
ShortCondition = DRAGONSELL  
if ShortCondition
    strategy.entry('Short', strategy.short, comment = "ENTER-SHORT")

// Exit condition 
strategy.close('Short', when=DRAGONSELLSTOP, comment = "EXIT-SHORT")
///// END OF STRATEGY ///////////