Cấp độ theo cấp độ Xây dựng chiến lược trung bình di chuyển

Tác giả:ChaoZhang, Ngày: 2023-09-26 16:00:20
Tags:

Tổng quan

Chiến lược trung bình động xây dựng theo cấp độ là một chiến lược giao dịch dựa trên biểu đồ RENKO. Nó sử dụng các chỉ số trung bình động để làm mịn giá và chéo giữa các trung bình động của các khung thời gian khác nhau như tín hiệu giao dịch. Trong khi đó, nó cũng sử dụng chỉ số ATR để xác định mức dừng lỗ cho các điểm dừng hợp lý hơn.

Chiến lược logic

Logic cốt lõi của chiến lược này bao gồm:

  1. Sử dụng đầu vào để chọn khung thời gian RENKO và thời gian ATR

  2. Tính toán giá RENKO và màu sắc. Chuyển lên khi giá vượt quá giá RENKO trước đó cộng với ATR hiện tại. Chuyển xuống khi giá giảm xuống dưới giá RENKO trước trừ ATR hiện tại.

  3. Sử dụng hai số nguyên BUY và SELL để ghi lại các vị trí dài và ngắn hiện tại.

  4. Khi phá vỡ, nếu không có vị trí ngắn sau đó đi dài. Khi phá vỡ xuống, nếu không có vị trí dài thì đi ngắn.

  5. Chụp biểu đồ RENKO bằng cách vẽ.

Với logic này, chiến lược có thể mở dài hoặc ngắn khi giá phá vỡ mức trước và đóng các vị trí khi giá đảo ngược.

Phân tích lợi thế

Chiến lược này có những lợi thế sau:

  1. RENKO lọc tiếng ồn và xác định xu hướng RENKO có thể lọc hiệu quả tiếng ồn giá và xác định xu hướng quan trọng.

  2. Crossover trung bình động tạo ra tín hiệu giao dịch Crossover giữa các đường trung bình động của các khung thời gian khác nhau có thể cung cấp các tín hiệu giao dịch đáng tin cậy và tránh các tín hiệu sai từ tiếng ồn.

  3. Dừng động với ATR Sử dụng ATR để thiết lập dừng lỗ một cách năng động có thể làm cho dừng hợp lý hơn dựa trên biến động hiện tại, tránh dừng quá rộng hoặc quá chặt chẽ.

  4. Kết hợp xu hướng và trung bình động Kết hợp các chỉ số xu hướng và trung bình chuyển động sử dụng điểm mạnh của cả hai - bắt xu hướng với RENKO trong khi đảm bảo tín hiệu đáng tin cậy với trung bình chuyển động.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Xác định xu hướng sai Cách RENKO xác định xu hướng có thể dẫn đến việc dài hoặc ngắn không cần thiết. Các tham số cần phải được tối ưu hóa để giảm tín hiệu sai.

  2. Các tín hiệu sai từ đường chéo trung bình động
    Có thể có các tín hiệu sai từ đường chéo trung bình động, gây ra các giao dịch không cần thiết.

  3. Các thông số ATR không chính xác Thiết lập thời gian ATR không chính xác cũng có thể dẫn đến việc dừng quá rộng hoặc quá chật.

  4. Thị trường kim cưa Trong các thị trường thắt lưng hoặc mạnh, RENKO có thể tạo ra nhiều giao dịch không cần thiết, chiếm vốn.

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

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

  1. Tối ưu hóa các thông số RENKO và ATR
    Điều chỉnh các thông số này để giảm thiểu các tín hiệu sai của RENKO và bắt được xu hướng tốt hơn.

  2. Thêm bộ lọc chéo trung bình động Thêm thêm các đường trung bình động và yêu cầu hầu hết chúng phải thẳng hàng trước khi tạo ra tín hiệu, để lọc các tín hiệu sai.

  3. Thêm các bộ lọc chỉ số khác Ví dụ, thêm khối lượng để chỉ giao dịch khi khối lượng xác nhận giá, tránh bẫy.

  4. Cải thiện chiến lược dừng lỗ Nghiên cứu cách sử dụng các điểm dừng dựa trên xu hướng thay vì chỉ theo dõi ATR, để dừng hợp lý hơn.

  5. Tối ưu hóa quản lý tiền bạc Nghiên cứu phân bổ vốn tối ưu theo chiến lược này để tối đa hóa lợi nhuận trong khi kiểm soát rủi ro.

Kết luận

Nhìn chung, đây là một chiến lược đáng tối ưu hóa và thử nghiệm trên thị trường trực tiếp. Ý tưởng cốt lõi của việc sử dụng RENKO cho xu hướng và chuyển trung bình chéo như các tín hiệu được lọc là âm thanh. Với các điểm dừng ATR năng động, nó có thể trở thành một hệ thống theo xu hướng vững chắc. Bước tiếp theo là tiếp tục tối ưu hóa nó dựa trên các rủi ro đã biết để cải thiện các thông số và hiệu suất.


/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Renko Level Strategy 2", shorttitle="RLS2", overlay=true, pyramiding=2, currency=currency.USD, default_qty_value=50, initial_capital=2000, default_qty_type=strategy.percent_of_equity) 

TF = input(title='TimeFrame', type=input.resolution, defval="D")
ATRlength = input(title="ATR length", type=input.integer, defval=14, minval=2, maxval=100)

HIGH = security(syminfo.tickerid, TF, high)
LOW = security(syminfo.tickerid, TF, low)
CLOSE = security(syminfo.tickerid, TF, close)
ATR = security(syminfo.tickerid, TF, atr(ATRlength))

float RENKO = na
color COLOR = na
int BUY = na
int SELL = na
bool UP = na
bool DN = na

RENKO := na(RENKO[1]) ? close : RENKO[1]
COLOR := na(COLOR[1]) ? color.white : COLOR[1]
BUY := na(BUY[1]) ? 0 : BUY[1]
SELL := na(SELL[1]) ? 0 : SELL[1]
UP := false
DN := false

if(close > RENKO[1]+ATR[1])
    UP := true
    RENKO := close
    COLOR := color.lime
    SELL := 0
    BUY := BUY+1

if(close < RENKO[1]-ATR[1])
    DN := true
    RENKO := close
    COLOR := color.red
    BUY := 0
    SELL := SELL+1
    

if(BUY[1]==1 and BUY==2)
    strategy.entry("long", strategy.long)//, limit = RENKODN)

if(DN)
    strategy.cancel_all()
    strategy.close_all(comment = "close")


plot(RENKO, style=plot.style_line, linewidth=2, color=COLOR)

Thêm nữa