Chiến lược đột phá động lượng Stochastic

Tác giả:ChaoZhang, Ngày: 2023-10-24 16:35:24
Tags:

img

Tổng quan

Chiến lược Momentum Breakout chủ yếu sử dụng chỉ số dao động Stochastic để xác định hướng xu hướng thị trường, kết hợp với chỉ số ADX để đánh giá sức mạnh xu hướng, để tạo ra các tín hiệu giao dịch.

Chiến lược logic

Chiến lược dựa trên hai chỉ số kỹ thuật:

  1. Stochastic oscillator: được sử dụng để xác định hướng xu hướng thị trường. Giá trị của Stochastic oscillator dao động từ 0 đến 100. Một giá trị giữa 45 và 55 khi thời gian là 14 có nghĩa là không có xu hướng rõ ràng. Stochastic trên 55 là tín hiệu tăng và dưới 45 là tín hiệu giảm.

  2. Chỉ số ADX: được sử dụng để đánh giá sức mạnh của xu hướng.

Chiến lược đầu tiên đánh giá liệu có xu hướng tăng hoặc giảm rõ ràng dựa trên giá trị dao động Stochastic. Khi Stochastic trên 55, nó báo hiệu xu hướng tăng. Khi nó dưới 45, nó báo hiệu xu hướng giảm.

Sau đó nó kiểm tra xem ADX có trên 20 để xác nhận xu hướng mạnh không. Nếu ADX trên 20, điều đó có nghĩa là xu hướng đủ mạnh để giao dịch xu hướng. Nếu ADX dưới 20, xu hướng được coi là không rõ ràng và sẽ không có tín hiệu giao dịch nào được tạo ra.

Bằng cách kết hợp bộ dao động Stochastic và ADX, các tín hiệu giao dịch được tạo ra khi cả hai điều kiện sau được đáp ứng:

  1. Stochastic trên 55, báo hiệu xu hướng tăng.
  2. ADX trên 20, xác nhận xu hướng tăng mạnh.

Các tín hiệu bán được tạo ra khi cả hai điều kiện này được đáp ứng:

  1. Stochastic dưới 45, báo hiệu xu hướng giảm.
  2. ADX trên 20, xác nhận xu hướng giảm mạnh.

Với các quy tắc này, chiến lược tạo thành một hệ thống theo xu hướng trung bình đến dài hạn.

Ưu điểm

Những lợi thế của chiến lược này bao gồm:

  1. Nhận các xu hướng trung hạn đến dài hạn: Bằng cách kết hợp Stochastic và ADX, nó có thể xác định hiệu quả hướng và sức mạnh xu hướng thị trường, bắt được các xu hướng chính.

  2. Kiểm soát rút tiền: Chỉ giao dịch khi xu hướng rõ ràng có thể giúp kiểm soát các whipsaws không cần thiết.

  3. Điều chỉnh tham số: Các giai đoạn của Stochastic và ADX có thể được tối ưu hóa cho các thị trường khác nhau.

  4. Sự đơn giản: Logic tổng thể là đơn giản và trực quan, bao gồm hai chỉ số kỹ thuật chung.

  5. Tính phổ quát: Chiến lược có thể được áp dụng cho các thị trường khác nhau với điều chỉnh tham số.

Rủi ro

Một số rủi ro của chiến lược:

  1. Điểm đột phá bị thiếu: Là các chỉ số theo xu hướng, Stochastic và ADX có thể bỏ lỡ các điểm đảo ngược xu hướng tiềm năng và các giao dịch đột phá sớm.

  2. Nguy cơ đảo ngược xu hướng: Họ có thể đánh giá sai xu hướng sẽ tiếp tục gần cuối xu hướng, bỏ lỡ cơ hội thoát ra kịp thời, dẫn đến tổn thất khuếch đại.

  3. Khó khăn trong tối ưu hóa tham số: Các tham số cần phải được điều chỉnh cho các thị trường khác nhau, gây ra một số khó khăn.

  4. Whipsaws: Nó có thể tạo ra nhiều tín hiệu không hợp lệ trong các thị trường giới hạn phạm vi mà không có xu hướng rõ ràng.

  5. Sự khác biệt: Khi xu hướng giá mâu thuẫn với xu hướng dao động Stochastic, sự khác biệt xuất hiện, có thể dẫn đến thua lỗ giao dịch.

Các rủi ro có thể được giảm thiểu bằng cách:

  1. Thêm các chỉ số khác để xác định xu hướng địa phương và các điểm đột phá tiềm năng.

  2. Kết hợp các tín hiệu đảo ngược xu hướng để thoát kịp thời khi xu hướng đảo ngược đáng kể.

  3. Sử dụng máy học để tự động tối ưu hóa các thông số.

  4. Tăng ngưỡng ADX để lọc các tín hiệu xu hướng yếu ở các thị trường khác nhau.

  5. Áp dụng các chỉ số bổ sung để xác nhận các tín hiệu Stochastic và tránh giao dịch phân kỳ.

Hướng dẫn cải thiện

Một số cách để cải thiện chiến lược:

  1. Tối ưu hóa các thông số Stochastic như thời gian K và D để xác định chính xác các điểm chuyển đổi.

  2. Tối ưu hóa thời gian ADX để xác định các thông số tốt nhất để đánh giá sức mạnh xu hướng.

  3. Thêm các tín hiệu đảo ngược xu hướng như tăng kích thước vị trí trong các khu vực mua quá mức / bán quá mức theo Stochastic với dừng lỗ.

  4. Kết hợp các chỉ số khác như RSI và MACD để tinh chỉnh thời gian vào và ra.

  5. Sử dụng máy học để tìm các kết hợp thông số tối ưu.

  6. Thực hiện các chiến lược dừng lỗ như di chuyển dừng lỗ hoặc đảo ngược dừng lỗ để kiểm soát lỗ giao dịch duy nhất.

  7. Trailong stop loss: Thêm trailing stop loss để khóa lợi nhuận khi xu hướng mở rộng.

  8. Quản lý tiền: Tối ưu hóa quản lý rủi ro bằng cách điều chỉnh kích thước vị trí dựa trên sức mạnh ADX.

Tóm lại

Tóm lại, chiến lược Momentum Breakout này nói chung là một hệ thống theo xu hướng, sử dụng Stochastic để xác định hướng xu hướng và ADX để đo lường sức mạnh, tạo thành một chiến lược giao dịch trung hạn đến dài hạn. Những lợi thế nằm trong việc bắt được xu hướng và kiểm soát giảm với một logic đơn giản và trực quan. Những điểm yếu là các giao dịch bỏ lỡ sớm và rủi ro đảo ngược xu hướng. Chúng ta có thể tối ưu hóa nó thông qua các phương pháp như điều chỉnh tham số, thêm tín hiệu, thực hiện dừng lỗ để cải thiện phần thưởng / rủi ro trong khi kiểm soát rủi ro.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Created by Bitcoinduke
//Original Creator is Jake Bernstein 
// Link: https://school.stockcharts.com/doku.php?id=trading_strategies:stochastic_pop_drop
// Tested: XBTUSD 3h | BTCPERP FTX 3h
//@version=4
// strategy(shorttitle="Stochastic Pop and Drop", title="Pop and Drop", overlay=false, 
//      calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
//      default_qty_value=1000, currency=currency.USD, initial_capital=1000,
//      commission_type=strategy.commission.percent, commission_value=0.075)

upper_threshold_buy = input(55, minval=50, title="Buy Entry/Exit Line")
lower_threshold_sell = input(45, maxval=50, title="Sell Entry/Exit Line")

oscillator_length = input(14, minval=1, title="Stochastic Length - Default 14")
sma_length = input(2, minval=1, title="SMA Length - 3-day (3 by default) simple moving average of stoch")

stoch_oscillator = sma(stoch(close, high, low, oscillator_length), sma_length)

//Upper and Lower Entry Lines
upper_line = upper_threshold_buy
lower_line = lower_threshold_sell

stoch_color = stoch_oscillator >= upper_line ? green : stoch_oscillator <= lower_line ? red : purple

//Charts
plot(stoch_oscillator, title="Stochastic", style=histogram, linewidth=4, color=stoch_color)
upper_threshold = plot(upper_line, title="Upper Line", style=line, linewidth=4, color=green)
lower_threshold = plot(lower_line, title="Lower Line", style=line, linewidth=4, color=red)

// Strategy Logic
LongSignal = stoch_oscillator >= upper_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false
ShortSignal = stoch_oscillator <= lower_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false

strategy.entry("POP_Short", strategy.short, when=ShortSignal)
strategy.entry("POP_Long", strategy.long, when=LongSignal)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(5, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END



Thêm nữa