Chiến lược xu hướng trung bình của Dynamic Mark


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

Chiến lược xu hướng trung bình của Dynamic Mark

Tổng quan

Chiến lược này dựa trên các chỉ số của đường trung bình Mark Dynamic và lọc tín hiệu giao dịch kết hợp với Brin và RSI để thực hiện một chiến lược theo dõi xu hướng chỉ cần làm nhiều hơn không làm rỗng. Chiến lược này đánh giá xu hướng bằng cách tính toán sự thay đổi của đường trung bình Mark Dynamic của giá đóng cửa Hicker và so sánh với Brin để phát ra tín hiệu giao dịch. Kết hợp với bộ lọc RSI, có thể xác định hiệu quả điểm bùng phát của xu hướng và thực hiện theo dõi xu hướng.

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

Trung tâm của chiến lược này là tính toán biến động của đường trung bình Mark của giá đóng cửa đường Heck. Cụ thể, tính toán chênh lệch đường trung bình Mark của đường K hiện tại so với hai đường K trước và nhân hệ số nhạy cảm để có được giá trị biến đổi đường trung bình Mark chính xác.

Sau đó, so sánh giá trị thay đổi này với chênh lệch giữa đường ray trên và dưới của dải Brin. Nếu sự thay đổi đường trung bình của Mark lớn hơn so với chênh lệch của dải Brin, thì xu hướng được coi là có một đợt bùng nổ. Khi đợt bùng nổ là tích cực, tức là đường trung bình của Mark thay đổi tích cực, sẽ tạo ra tín hiệu đa và đường cột màu xanh lá cây.

Ngoài ra, chiến lược này cũng thiết lập bộ lọc RSI, chỉ phát ra nhiều tín hiệu khi RSI cao hơn ngưỡng thấp, tránh nguy cơ đảo ngược xu hướng.

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

  • Sử dụng đường trung bình động của Mark để đánh giá xu hướng, có thể theo dõi hiệu quả sự thay đổi của xu hướng
  • Blink là một chỉ số động, kết hợp với đường trung bình của Mark, có thể nhận biết rõ hơn về sự bùng nổ xu hướng
  • Bộ lọc RSI có thể ngăn chặn các tín hiệu giả tạo do phản hồi thấp
  • Chỉ cần làm nhiều hơn và không làm rảnh, phù hợp với thị trường bò tăng liên tục
  • Các tham số có thể điều chỉnh linh hoạt, có thể được tối ưu hóa cho các giống và chu kỳ khác nhau

Rủi ro chiến lược

  • Chỉ cần làm nhiều hơn mà không làm rỗng, bạn sẽ không thể hưởng lợi từ sự suy giảm.
  • Quá phụ thuộc vào tối ưu hóa tham số, cần phải thử nghiệm lại các giống và chu kỳ khác nhau
  • Không thể nắm bắt hiệu quả sự thay đổi xu hướng, có thể dẫn đến tổn thất lớn hơn
  • RSI Filter không được thiết lập đúng có thể làm mất cơ hội giao dịch
  • Tính nhạy cảm thông số cao dễ gây ra giao dịch ồn ào

Các biện pháp giảm thiểu rủi ro bao gồm: điều chỉnh các tham số thích hợp để làm cho nó ổn định hơn, kết hợp với các chỉ số khác để đánh giá xu hướng đảo ngược, chỉ sử dụng trong xu hướng rõ ràng đường dài, v.v.

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

Chiến lược này có thể được tối ưu hóa:

  • Thử các nguồn giá khác nhau, chẳng hạn như giá đóng cửa, đường trung bình, để có hiệu quả làm mịn tốt hơn

  • Điều chỉnh các tham số chu kỳ của đường trung bình Mark và Brin để tối ưu hóa cho các giống khác nhau

  • Cố gắng thay thế hệ số nhạy cảm bằng tỷ lệ để kết quả chỉ số trực quan hơn

  • Thêm các bộ lọc khác, chẳng hạn như đường trung bình xu hướng, khối lượng giao dịch, để cải thiện chất lượng tín hiệu

  • Phát triển chiến lược không đầu, hoạt động ngược theo hình dạng chỉ số

  • Tham gia hệ thống ngăn chặn thiệt hại để kiểm soát rủi ro tốt hơn

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi xu hướng ổn định hơn. Nó sử dụng đường trung bình động để xác định xu hướng, xác định điểm bùng nổ của Brin, RSI lọc tín hiệu giả, thực hiện một hệ thống xu hướng chỉ làm nhiều hơn. Nhưng cũng có một số rủi ro, cần tối ưu hóa tham số cho các giống và chu kỳ khác nhau và không thể kiếm lợi nhuận từ tình huống giảm.

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

//@version=5

///////////Original Script Courtesy of Lazy_Bear.... Absolute Legend\\\\\\\\\\\\\\\

strategy('SmoothedWaddah', overlay=false, initial_capital=1)
sensitivity = input(150, title='Sensitivity')
fastLength = input(20, title='MacD FastEMA Length')
slowLength = input(40, title='MacD SlowEMA Length')
channelLength = input(20, title='BB Channel Length')
mult = input(1.5, title='BB Stdev Multiplier')
RSI14filter = input(40, title='RSI Value trade filter')

////////////MacD Calculation of price//////////////////////////////
calc_macd(source, fastLength, slowLength) =>
    fastMA = ta.ema(source, fastLength)
    slowMA = ta.ema(source, slowLength)
    fastMA - slowMA

/////////BolingerBand Calculation of Price///////////////////////
calc_BBUpper(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    basis + dev

calc_BBLower(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    basis - dev

//////heinkenashi chart call for closing price "smoothing mechanism"\\\\\\\\\\\\\\\\\\\\\\\\\\\
point = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)

////////////////////T1 is change in MacD current  candle from previous candle Sensitivy amplifies calculation/////////////////////
t1 = (calc_macd(point, fastLength, slowLength) - calc_macd(point[1], fastLength, slowLength)) * sensitivity
//////////////////////T2 is  T1 from two candles prior\\\\\\\\\\\\\\\\\\\\\\\\\\\
t2 = (calc_macd(point[2], fastLength, slowLength) - calc_macd(point[3], fastLength, slowLength)) * sensitivity

////////////////E1 is difference in bolinger band upper and lower...E2 is E1 from one candle prior not needed//////////////
e1 = calc_BBUpper(ohlc4, channelLength, mult) - calc_BBLower(ohlc4, channelLength, mult)
//e2 = (calc_BBUpper(close[1], channelLength, mult) - calc_BBLower(close[1], channelLength, mult))

//////signal bar printing.. Up if MacD positive .. Down if MacD negative//////////
trendUp = t1 >= 0 ? t1 : 0
trendDown = t1 < 0 ? -1 * t1 : 0

///////plots difference in macD*Sensitivity, color change if increasing or decreasing. 
//////color is green/lime if explosion is up \ color is red/orange if explosion is down/////////
plot(trendUp, style=plot.style_columns, linewidth=1, color=trendUp < trendUp[1] ? color.new(color.lime,45) : color.new(color.green,45), title='UpTrend')
plot(trendDown, style=plot.style_columns, linewidth=1, color=trendDown < trendDown[1] ? color.new(color.orange,45) : color.new(color.red,45), title='DownTrend')
plot(e1, style=plot.style_line, linewidth=2, color=color.new(#A0522D, 0), title='ExplosionLine')


////////////Entry conditions and Concept/////////////////////
////////////Long Only System. T1 is measuring the distance between MACD EMA's. This is Multiplied
////////////by the sensitivity so that it can be compared to the difference between BollingerBand. 
/////////////{this could have been a ratio maybe i will work with that in a different script.} 
/////////////I found that 135-175 sensitivy allows for values to be compared on most charts.....
////////////If the (difference between the EMA)*(Sensitivity) is greater than (BB upper line- BB lower line)
////////////it is considered an explosion in either the downside or the upside.The indicator will print
///////////a bar higher than the trigger line either green or red (up or down respectively)//////////////////

longCondition = trendUp > e1 and ta.rsi(close, 14) > RSI14filter
if longCondition
    strategy.entry('up', strategy.long)

strategy.close('up', trendDown > e1)