% thay đổi biểu đồ thanh Backtest chiến lược

Tác giả:ChaoZhang, Ngày: 2023-11-15 15:41:20
Tags:

img

Tổng quan

Chiến lược này tính toán tỷ lệ thay đổi tỷ lệ phần trăm của giá đóng cửa thanh hiện tại so với giá đóng cửa N thanh trước, và hiển thị các thanh biểu đồ màu khác nhau để xác định xu hướng.

Chiến lược logic

  1. Đặt các tham số chiến lược thông qua đầu vào, bao gồm chiều rộng thanh, hiển thị thay đổi giá hoặc thay đổi tỷ lệ phần trăm, thời gian xem lại, ngưỡng mua / bán v.v.

  2. Tính toán chênh lệch giá hoặc chênh lệch tỷ lệ phần trăm giữa giá đóng cửa của thanh hiện tại và giá đóng cửa N thanh trước.

  3. Thiết lập mua và bán các đường ngưỡng.

  4. Hiển thị các thanh biểu đồ với màu sắc khác nhau dựa trên tỷ lệ thay đổi.

  5. Đặt thành dài khi tỷ lệ thay đổi tỷ lệ phần trăm lớn hơn ngưỡng mua, và đặt thành ngắn khi thấp hơn ngưỡng bán.

  6. Các thanh biểu đồ màu theo hướng vị trí.

  7. Nhập và ra dựa trên hướng vị trí.

Ưu điểm

  1. Hiển thị trực quan xu hướng thay đổi giá để ra quyết định.

  2. Các tín hiệu vào và ra rõ ràng kết hợp với các chỉ số xu hướng.

  3. Các tham số có thể được tối ưu hóa cho các sản phẩm và khung thời gian khác nhau.

  4. Logic đơn giản và rõ ràng, dễ hiểu và sửa đổi.

  5. Hiển thị tốt để nhanh chóng đánh giá xu hướng.

Rủi ro

  1. Thường bị tín hiệu sai, lựa chọn nhập khẩu không chính xác có thể dẫn đến tổn thất.

  2. Các thông số cần phải được điều chỉnh cho các sản phẩm biến động cao, nếu không sẽ làm tăng xác suất mất mát.

  3. Không được giải thích cho những sự kiện đột ngột như tin tức giảm đáng kể.

  4. Thời gian kiểm tra hậu quả ngắn có thể không thể xác định độ bền của các thông số.

  5. Mất cơ hội quay lại mà không có thời gian dừng.

Các rủi ro có thể được kiểm soát thông qua tối ưu hóa tham số, lọc tín hiệu với các chỉ số khác, dừng lỗ, mở rộng thời gian backtest vv.

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

  1. Xem xét kết hợp với các chỉ số khác như chỉ số xu hướng và biến động để xác nhận tín hiệu.

  2. Đưa ra các thuật toán học máy để tối ưu hóa cài đặt tham số.

  3. Thiết lập stop loss động để kiểm soát số tiền lỗ đơn.

  4. Bao gồm các chỉ số tâm lý và tin tức để tránh tác động của sự kiện đột ngột.

  5. Thêm thời gian giao dịch hoặc bộ lọc phiên.

  6. Tối ưu hóa thời gian backtest với khung thời gian dài hơn.

Tóm lại

Chiến lược này hiển thị tỷ lệ thay đổi giá theo thời gian thực với các thanh biểu đồ và sử dụng đường xu hướng để ra quyết định, tạo ra các tín hiệu giao dịch rõ ràng. Logic đơn giản để dễ dàng vận hành. Nhưng rủi ro tồn tại và cần phải được kiểm soát thông qua tối ưu hóa, lọc, dừng lỗ vv. Với tối ưu hóa liên tục, nó có thể trở thành một chiến lược theo xu hướng dễ hiểu và thực tế.


/*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=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v3.0 27/07/2018
//
//  This histogram displays price or % change from previous bar. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Percent change bar chart Backtest", precision = 2)
input_barwidth = input(4, title="Bar Width")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xPrice = close
xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
colorg = iff(xPrice1 < 0, red, green)
pos = iff(xPrice1 > BuyZone, 1,
       iff(xPrice1 < SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xPrice1, color=colorg, style = histogram, linewidth = input_barwidth, title="Change")

Thêm nữa