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


Ngày tạo: 2023-12-19 15:32:57 sửa đổi lần cuối: 2023-12-19 15:32:57
sao chép: 2 Số nhấp chuột: 531
1
tập trung vào
1176
Người theo dõi

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

Tổng quan

Chiến lược này là một chiến lược theo dõi xu hướng đường dài để xác định xu hướng giá. Nó quyết định đặt hàng bằng cách tính toán các điểm phân chia của giá lịch sử để xác định sự phá vỡ của điểm phân chia cuối cùng.

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

  1. Điểm phân chia của giá được tính. Điểm phân chia được định nghĩa là giá cao nhất trong ngày cao hơn giá cao nhất hai ngày trước và hai ngày sau.
  2. Ghi lại giá của điểm chia cuối cùng như là kháng cự.
  3. Khi giá đóng phá vỡ điểm phân chia cuối cùng, hãy cho rằng kháng cự đã bị phá vỡ và thiết lập vị trí giao dịch.
  4. Tính giá trung bình của N điểm phân chia cuối cùng để xác định xu hướng, khi giá trung bình tăng là xu hướng đi lên, khi giảm là xu hướng đi xuống.
  5. Nếu giá điểm chia trung bình chuyển sang giảm khi thực hiện nhiều vị trí, thì vị trí bằng phẳng.

Phân tích lợi thế

Chiến lược này dựa trên phân điểm để đánh giá xu hướng, lợi thế lớn nhất của nó là có thể lọc hiệu quả tiếng ồn thị trường và đánh giá xu hướng của đường dài hơn. So với các chỉ số như trung bình di chuyển đơn giản, nó có khả năng chống lại sự biến động bất thường đột ngột.

Ngoài ra, chiến lược này có tiêu chuẩn rõ ràng về việc xây dựng và giữ cổ phiếu, không có vấn đề giao dịch thường xuyên. Điều này cũng làm cho nó đặc biệt phù hợp với việc giữ cổ phiếu dài.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là xác suất của bản thân các điểm phân dạng. Các điểm phân dạng không thể dự đoán 100% giá sẽ đảo ngược, nghĩa là xác suất của sự phán đoán sai vẫn tồn tại. Khi xảy ra sai, sẽ có nguy cơ bị mất mát.

Ngoài ra, khoảng thời gian của điểm phân tách là quá dài và không phù hợp với giao dịch tần số cao. Chiến lược này cũng không phù hợp nếu theo đuổi giao dịch đường ngắn.

Hướng tối ưu hóa

Xét về xác suất lỗi trong phân tích điểm hình dạng, chúng ta có thể tối ưu hóa bằng cách sử dụng các phương pháp sau:

  1. Kết hợp với các chỉ số khác như đường dẫn Brin, trung bình di chuyển, v.v. để tránh lỗi phân tích đơn vị.

  2. Điều chỉnh các tham số của điểm phân hình, chẳng hạn như số lần trước và sau khi đánh giá, để tối ưu hóa đánh giá điểm phân hình.

  3. Tăng chiến lược dừng lỗ, dừng lỗ khi tổn thất mở rộng đến một mức độ nhất định.

Tóm tắt

Chiến lược phân tách đột phá này rất phù hợp cho việc đánh giá xu hướng đường dài và rất phù hợp cho các nhà đầu tư đường dài. Chúng tôi chỉ cần điều chỉnh các tham số thích hợp, thêm các chỉ số lọc khác, để đảm bảo tính chính xác của phán đoán, chúng tôi có thể tối ưu hóa chiến lược này một cách đáng kể và biến nó thành một phần quan trọng của Quantified Decision.

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

//@version=2
strategy("Fractal Breakout Strategy (by ChartArt)", shorttitle="CA_-_Fractal_Breakout_Strat", overlay=true)

// ChartArt's Fractal Breakout Strategy
//
// Version 1.0
// Idea by ChartArt on April 24, 2016.
//
// This long only strategy determines the last fractal top
// and enters a trade when the price breaks above the last
// fractal top. The strategy also calculates the average
// price of the last 2 (or 3) fractal tops to get the trend.
//
// The strategy exits the long trade when the average of the
// fractal tops is falling (when the trend is lower highs).
// And the user can manually set a delay of this exit.
//
// In addition the fractals tops can be colored in blue
// and a line can be drawn based on the fractal tops.
// This fractal top line is colored by the fractal trend.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 


// input

n_time = input(title='Always exit each trade after this amount of bars later (Most important strategy setting)', defval=3)
price = input(hl2,title='Price type to determine the last fractal top and the fractal breakout, the default is (high+low)/2')


// fractal calculation

fractal_top = high[2] > high[3] and high[2] > high[4] and high[2] > high[1] and high[2] > high[0]
fractal_price = valuewhen(fractal_top, price, 1)
use_longer_average = input(true,title='Use Fractal price average of the last 3 fractals instead of the last 2 fractals?')
fractal_average = use_longer_average?(fractal_price[1] + fractal_price[2] + fractal_price[3] ) / 3 : (fractal_price[1] + fractal_price[2]) / 2
fractal_trend = fractal_average[0] > fractal_average[1]
no_repainting = input(true,title='Use the price of the last bar to prevent repainting?')
fractal_breakout = no_repainting?price[1] > fractal_price[0]:price[0] > fractal_price[0]


// highlight fractal tops

show_highlight = input(true,title='Highlight fractal tops in blue and color all other bars in gray?')
highlight = fractal_top?blue:silver
barcolor(show_highlight?highlight:na,offset=-2)
show_fractal_top_line = input(true,title='Draw a colored line based on the fractal tops?')
fractal_top_line = change(fractal_top) != 0 ? price : na
fractal_top_line_color = change(fractal_price) > 0 and fractal_breakout == true ? green : change(fractal_price) < 0 and fractal_breakout == false ? red : blue
plot(show_fractal_top_line?fractal_top_line:na,offset=-2,color=fractal_top_line_color,linewidth=4)


// strategy

trade_entry = fractal_trend and fractal_breakout
trade_exit = fractal_trend[n_time] and fractal_trend == false 
 
if (trade_entry)
    strategy.entry('Long', strategy.long)
 
if (trade_exit)
    strategy.close('Long')