Xu hướng sau chiến lược phá vỡ đà tăng

Tác giả:ChaoZhang, Ngày: 2024-01-05 13:38:18
Tags:

img

Tổng quan

Chiến lược được đặt tên là Trend Following Momentum Breakout Strategy. Nó sử dụng chỉ số siêu xu hướng để xác định hướng xu hướng hiện tại và kết hợp nó với hướng của các thân nến cho xu hướng sau khi giao dịch để đạt được sự đột phá đà.

Chiến lược logic

Cốt lõi của chiến lược này dựa trên chỉ số siêu xu hướng để đánh giá hướng xu hướng hiện tại. Chỉ số siêu xu hướng tính toán các dải trên và dưới dựa trên phạm vi trung bình (ATR). Khi giá vượt qua dải trên, đó là tín hiệu tăng, và khi giá vượt qua dải dưới, đó là tín hiệu giảm.

Khi chỉ số siêu xu hướng xác định xu hướng tăng, nếu ngọn nến là một cơ thể màu đỏ (khép dưới mở), đi dài. Khi chỉ số siêu xu hướng xác định xu hướng giảm, nếu ngọn nến là một cơ thể màu xanh lá cây (khép trên mở), đi ngắn. Điều này đạt được xu hướng sau khi giao dịch đột phá đà.

Phân tích lợi thế

Chiến lược này kết hợp đánh giá xu hướng và đặc điểm động lực để lọc hiệu quả các đột phá sai và tăng tính hợp lệ của các tín hiệu giao dịch.

Những lợi thế chính được tóm tắt như sau:

  1. Chế độ lọc các sự phá vỡ sai bằng cách kết hợp các đặc điểm của xu hướng và động lực
  2. Theo hướng của các cơ quan nến để tránh giao dịch ngược xu hướng
  3. Lợi nhuận cao hơn

Phân tích rủi ro

Những rủi ro chính của chiến lược này là:

  1. Vấn đề về cách thiết lập các thông số của chỉ số siêu xu hướng.
  2. Chỉ theo hướng của thân cây nến không thể xác định sức mạnh của thân, và có thể có rủi ro mất mát.
  3. Tỷ lệ rủi ro-lợi nhuận cố định không thể được điều chỉnh năng động và không thể kiểm soát lỗ đơn.

Các biện pháp đối phó là:

  1. Tối ưu hóa các thông số của chỉ số Super Trend để đưa ra phán đoán chính xác hơn.
  2. Đánh giá sức mạnh của thân cây nến bằng cách kết hợp các chỉ số như khối lượng giao dịch và dòng tiền.
  3. Thêm stop loss động để kiểm soát single loss.

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

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

  1. Kết hợp nhiều chỉ số kỹ thuật hơn để lọc tín hiệu, chẳng hạn như Bollinger Bands và KDJ, để tăng hiệu suất chiến lược.
  2. Thêm thuật toán học máy để tối ưu hóa các tham số một cách động và làm cho chỉ số Super Trend ổn định hơn.
  3. Thêm các cơ chế dừng lỗ để ngăn chặn lỗ trước khi lỗ mở rộng.
  4. Sử dụng các sản phẩm có khả năng giao dịch hai chiều, chẳng hạn như hợp đồng tương lai để tận dụng đầy đủ cả cơ hội dài và ngắn.

Tóm lại

Nói chung, chiến lược này rất phù hợp cho các vị trí trung hạn và ngắn hạn. Bằng cách kết hợp phán đoán xu hướng và động lực đột phá, nó có thể lọc hiệu quả tiếng ồn và cải thiện tỷ lệ thắng. Đồng thời, vẫn còn chỗ cho tối ưu hóa tham số để có được hiệu suất chiến lược tốt hơn.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's SuperTrend Strategy v1.0", shorttitle = "ST str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
cloud = input(25, defval = 25, minval = 5, maxval = 50, title = "cloud, % of ATR")
Factor = input(title = "Super Trend", defval = 3, minval = 1, maxval = 100)
ATR = input(title = "ATR", defval = 7, minval = 1,maxval = 100)
centr = input(true, defval = true, title = "need center of ATR?")
border = input(false, defval = false, title = "need border?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Super Trend ATR 1
src = close
Up=hl2-(Factor*atr(ATR))
Dn=hl2+(Factor*atr(ATR))
TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up
TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn
Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1)
Tsl1 = Trend==1? TUp: TDown
Tsl2 = Trend==1? TDown: TUp
limit = (Tsl1 - Tsl2) / 100 * cloud
upcloud = Tsl1 - limit
dncloud = Tsl2 + limit

//Cloud
linecolor = Trend == 1 ? green : red
centercolor = centr == true ? blue : na
cloudcolor = Trend == 1 ? green : red
cline = (Tsl1 + Tsl2) / 2
P1 = plot(Tsl1, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1")
P2 = plot(Tsl2, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2")
P3 = plot(cline, color = centercolor , style = line , linewidth = 1,title = "SuperTrend Center")
P4 = plot(upcloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center+1")
P5 = plot(dncloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center-1")
fill(P1, P4, color = linecolor == red ? red : lime, transp = 50)
fill(P2, P5, color = linecolor == red ? red : lime, transp = 50)

//Signals
up = Trend == 1 and close < open //and low < cline 
dn = Trend == -1 and close > open //and high > cline

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong ? lot : 0)

if dn
    strategy.entry("Short", strategy.short, needshort ? lot : 0)


Thêm nữa