Chiến lược giao dịch bóng tối

Tác giả:ChaoZhang, Ngày: 2023-11-03 16:03:59
Tags:

img

Tổng quan

Chiến lược giao dịch bóng sẽ xác định đường K với bóng dưới hoặc trên dài để xác định cơ hội đảo ngược thị trường tiềm năng.

Chiến lược logic

Logic cốt lõi của chiến lược giao dịch bóng là xác định bóng dài trên và dưới trong các đường K. Chiến lược tính toán kích thước của cơ thể đường K.corpovà bóng tối.pinnaLpinnaSKhi kích thước của bóng lớn hơn kích thước cơ thể bằng một số nhân nhất định, nó xem xét có thể có cơ hội đảo ngược.

  1. Tính toán kích thước cơ thể K-linecorpo, đó là giá trị tuyệt đối của sự khác biệt giữa giá mở và giá đóng.
  2. Tính toán bóng phía trênpinnaL, đó là giá trị tuyệt đối của sự khác biệt giữa giá cao nhất và giá đóng cửa.
  3. Tính toán bóng dướipinnaS, đó là giá trị tuyệt đối của sự khác biệt giữa giá thấp nhất và giá đóng cửa.
  4. Kiểm tra xem bóng phía trên lớn hơn so với kích thước cơ thể bằng một nhân, thông quapinnaL > (corpo*size), nơisizelà một tham số có thể điều chỉnh.
  5. Kiểm tra xem bóng dưới lớn hơn so với kích thước cơ thể bằng một nhân, thông quapinnaS > (corpo*size).
  6. Nếu các điều kiện trên được đáp ứng, hãy đi ngắn (cây bóng phía trên dài) hoặc dài (cây bóng phía dưới dài) ở cuối đường K với bóng.

Ngoài ra, chiến lược cũng kiểm tra xem phạm vi đường Kdimlớn hơn giá trị tối thiểuminđể lọc ra các đường K tầm thường với phạm vi không đáng kể.

Phân tích lợi thế

  • Sử dụng nguyên tắc chung của đảo ngược bóng, đó là một tín hiệu giao dịch tương đối đáng tin cậy
  • Logic chiến lược đơn giản và rõ ràng, cài đặt tham số trực quan, dễ hiểu
  • Kiểm soát rủi ro linh hoạt bằng cách điều chỉnh các tham số để thay đổi tần suất nhập
  • Có thể được tối ưu hóa thêm bằng cách kết hợp xu hướng, hỗ trợ / kháng cự vv.

Rủi ro và giải pháp

  • Khả năng thất bại trong đảo ngược bóng tồn tại, có thể giảm rủi ro bằng cách điều chỉnh các thông số
  • Cần kết hợp với đánh giá xu hướng để tránh giao dịch ngược xu hướng
  • Các thông số cần tối ưu hóa cho các sản phẩm khác nhau, có thể khác nhau giữa các sản phẩm
  • Có thể kết hợp các chỉ số khác để lọc các mục nhập, tỷ lệ thắng thấp hơn cho lợi nhuận cao hơn

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

  • Tối ưu hóa các thông số theo sản phẩm để cải thiện độ ổn định
  • Thêm đánh giá xu hướng với đường trung bình động v.v. để tránh xu hướng ngược
  • Thêm kiểm tra về việc phá vỡ điểm cao / thấp gần đây để cải thiện hiệu quả
  • Tối ưu hóa dừng lỗ và lấy lợi nhuận để tối đa hóa lợi nhuận trong khi giảm thiểu lỗ
  • Tối ưu hóa kích thước vị trí, có thể khác nhau giữa các sản phẩm khác nhau

Kết luận

Chiến lược giao dịch bóng là một chiến lược giao dịch ngắn hạn đơn giản và thực tế. Nó tạo ra các tín hiệu giao dịch sử dụng nguyên tắc tổng quát của sự đảo ngược bóng. Logic chiến lược đơn giản và dễ thực hiện, và có thể được điều chỉnh và tối ưu hóa theo sự khác biệt của sản phẩm. Đồng thời, giao dịch bóng cũng mang lại một số rủi ro nhất định. Nó cần được kết hợp với xu hướng và các yếu tố khác để lọc để giảm các giao dịch sai. Khi được sử dụng đúng cách, giao dịch bóng có thể trở thành một thành phần hiệu quả trong một hệ thống giao dịch lượng.


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

//@version=2
strategy("Shadow Trading", overlay=true)

size = input(1,type=float)
pinnaL = abs(high - close) 
pinnaS = abs(low-close)
scarto = input(title="Tail Tollerance", type=float, defval=0.0018)
corpo = abs(close - open)
dim = abs(high-low)
min = input(0.001)
shortE = (open + dim)

longE = (open - dim)
barcolor(dim > min and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) ? navy : na)

longcond = (dim > min) and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto)
minimo=low+scarto
massimo=high+scarto
barcolor( dim > min and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) ? orange: na)
shortcond = (dim > min) and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
//plot(shortE)
//plot(longE)
//plot(open)
ss= shortcond ? close : na
ll=longcond ? close : na
offset= input(0.00000)

DayClose = 2
closup = barssince(change(strategy.opentrades)>0)  >= DayClose 

longCondition = (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) 

crossFlag = longcond ? 1 : 0
monthBegin = input(1,maxval = 12)
yearBegin = input(2013, maxval= 2015, minval=2000)

if(month(time)>monthBegin and year(time) >yearBegin)
    if (longcond)
        strategy.entry("short", strategy.short, stop = low - offset)   
//strategy.close("short", when = closup)
shortCondition = (close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
if(month(time)>monthBegin and year(time) >yearBegin)
    if (shortcond)
        strategy.entry("long", strategy.long, stop = high + offset)
//strategy.close("long", when = closup)

Target =  input(20) 
Stop = input(70) //- 2
Trailing = input(0) 
CQ = 100

TPP = (Target > 0) ? Target*10: na
SLP = (Stop > 0) ? Stop*10 : na
TSP = (Trailing > 0) ? Trailing : na

strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)

Thêm nữa