
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.
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.
Ư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à:
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.
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 ý:
Đố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.
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:
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.
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.
/*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 ///////////