Chiến lược theo dõi động lượng tỷ lệ lật tần số cao

KAMA TP
Ngày tạo: 2024-07-29 14:12:08 sửa đổi lần cuối: 2024-07-29 14:12:08
sao chép: 0 Số nhấp chuột: 560
1
tập trung vào
1617
Người theo dõi

Chiến lược theo dõi động lượng tỷ lệ lật tần số cao

Tổng quan

Chiến lược tỷ lệ phần trăm xoay chuyển tần số cao là một chiến lược giao dịch tần số cao dựa trên đường trung bình di chuyển thích ứng của Kaufman (KAMA). Chiến lược sử dụng chỉ số KAMA làm tham chiếu chính trên khung thời gian 1 giờ và giao dịch trên khung thời gian ngắn hơn (ví dụ 15 phút). Ý tưởng cốt lõi của chiến lược là xoay lại các vị trí mở khi giá vượt qua đường KAMA một cách nhanh chóng, đồng thời đặt mục tiêu lợi nhuận 1% để khóa lợi nhuận nhỏ nhưng thường xuyên. Phương pháp này nhằm tận dụng sự biến động ngắn hạn của thị trường, đồng thời kiểm soát rủi ro bằng cách dừng nhanh.

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

  1. Sử dụng đường Kama trong khung thời gian 1 giờ làm chỉ số xu hướng chính.
  2. Mở vị trí đầu nhiều khi giá vượt qua đường KAMA, mở vị trí đầu trống khi giá vượt qua.
  3. Khi nắm giữ vị trí nhiều đầu, nếu giá vượt qua đường KAMA, thì vị trí nhiều đầu sẽ bị xóa và mở đầu trống; ngược lại.
  4. Đặt mục tiêu thu lợi nhuận là 1%. Một khi đạt được mục tiêu, lập tức thanh toán và đặt lại số dư tài khoản.
  5. Sử dụng 90% số dư tài khoản làm kích thước vị trí cho mỗi giao dịch.
  6. Thực hiện giao dịch trong khung thời gian ngắn hơn (ví dụ 15 phút) để nắm bắt nhiều cơ hội giao dịch hơn.

Cốt lõi của chiến lược là sử dụng đường KAMA để nắm bắt xu hướng ngắn hạn và thích ứng với biến động của thị trường bằng cách đảo ngược vị trí thường xuyên. Mục tiêu thu lợi nhuận 1% đảm bảo lợi nhuận được khóa nhanh, giảm thời gian giữ vị trí và rủi ro tiềm ẩn.

Lợi thế chiến lược

  1. Tính năng giao dịch tần số cao: Chiến lược có thể nắm bắt biến động thị trường ngắn hạn, tăng tần số giao dịch và cơ hội kiếm lợi nhuận tiềm năng.

  2. Kiểm soát rủi ro: Bằng cách đặt mục tiêu thu lợi nhuận 1%, chiến lược có thể nhanh chóng khóa lợi nhuận nhỏ và giảm rủi ro của giao dịch đơn lẻ.

  3. Khả năng thích ứng: Chỉ số KAMA có tính tự thích ứng, có thể điều chỉnh độ nhạy cảm theo các điều kiện thị trường khác nhau, nâng cao khả năng thích ứng của chiến lược.

  4. Hiệu quả tài chính: Chiến lược sử dụng 90% số dư tài khoản làm kích thước vị trí, tận dụng tối đa số tiền có sẵn.

  5. Kiểm soát drawdown: Tỷ lệ lợi nhuận nhỏ thường xuyên giúp kiểm soát mức rút tối đa và làm cho chiến lược ổn định hơn.

  6. Tiềm năng đòn bẩy: Do mức rút lui thấp, chiến lược có tiềm năng sử dụng đòn bẩy cao hơn để tăng lợi nhuận.

  7. Tự động hóa hoàn toàn: Chiến lược logic rõ ràng, dễ dàng thực hiện giao dịch tự động hóa hoàn toàn, giảm can thiệp của con người.

Rủi ro chiến lược

  1. Quá giao dịch: Chuyển đổi tần số cao có thể dẫn đến giao dịch quá mức, tăng chi phí giao dịch và mất điểm trượt.

  2. Thị trường sốc không thuận lợi: Trong thị trường sốc ngang, việc lật ngược thường xuyên có thể dẫn đến sự tích lũy lỗ nhỏ liên tục.

  3. Trải qua xu hướng: Mục tiêu lợi nhuận 1% có thể dẫn đến việc giảm giá quá sớm trong thị trường có xu hướng mạnh, bỏ lỡ cơ hội kiếm lợi nhuận lớn hơn.

  4. Rủi ro phá vỡ giả mạo: Giá xuyên qua gần đường KAMA có thể gây ra nhiều giao dịch phá vỡ giả mạo.

  5. Rủi ro quản lý tiền: Sử dụng 90% số dư tài khoản như một vị trí có thể nhanh chóng ăn mòn tiền trong trường hợp thua lỗ liên tục.

  6. Hạn chế áp dụng: Chiến lược có thể chỉ áp dụng cho thị trường có biến động cao và không hiệu quả trong thị trường có biến động thấp.

  7. Tùy thuộc kỹ thuật: Chiến lược phụ thuộc rất nhiều vào chỉ số KAMA, nếu chỉ số không hoạt động có thể dẫn đến tổn thất nghiêm trọng.

Hướng tối ưu hóa chiến lược

  1. Động lực dừng: Xem xét thay đổi mục tiêu lợi nhuận 1% cố định thành động lực dừng dựa trên ATR hoặc tỷ lệ biến động để thích ứng với các điều kiện thị trường khác nhau.

  2. Bộ lọc nhập: giới thiệu các điều kiện lọc bổ sung (ví dụ như RSI, khối lượng giao dịch) để giảm các giao dịch phá vỡ giả.

  3. Đánh giá cường độ xu hướng: Đánh giá cường độ xu hướng trước khi mở vị trí, chỉ giao dịch khi xu hướng rõ ràng, tránh giao dịch thường xuyên trong thị trường biến động.

  4. Tối ưu hóa quản lý vị trí: Thực hiện các chiến lược quản lý vị trí linh hoạt hơn, chẳng hạn như điều chỉnh kích thước vị trí dựa trên lợi nhuận của tài khoản hoặc biến động của thị trường.

  5. Phân tích nhiều khung thời gian: kết hợp với phân tích khung thời gian dài hơn, tăng độ chính xác của hướng giao dịch.

  6. Thiết bị ngăn chặn: đưa ra các cơ chế ngăn chặn thích hợp để ngăn chặn tổn thất quá mức trong giao dịch đơn lẻ.

  7. Tối ưu hóa tham số: Tối ưu hóa tham số của KAMA để tìm kiếm kết hợp chu kỳ đường nhanh chậm tối ưu nhất.

  8. Thị trường thích ứng: Phát triển cơ chế nhận dạng trạng thái thị trường, tự động điều chỉnh các tham số chiến lược hoặc tạm dừng giao dịch trong các điều kiện thị trường khác nhau.

Tóm tắt

Chiến lược theo dõi động lực tỷ lệ phần trăm đảo ngược tần số cao là một phương pháp giao dịch tần số cao sáng tạo dựa trên chỉ số KAMA. Chiến lược này nhằm mục đích đạt được lợi nhuận nhỏ thường xuyên bằng cách nhanh chóng nắm bắt các thay đổi trong xu hướng ngắn hạn và đặt mục tiêu lợi nhuận cố định. Ưu điểm của nó là tính linh hoạt cao, giảm thiểu và hiệu quả vốn cao tiềm ẩn, nhưng đồng thời cũng đối mặt với những thách thức như rủi ro giao dịch quá mức và thị trường biến động.

Chiến lược này có tiềm năng nâng cao hiệu suất và ổn định hơn nữa bằng cách tối ưu hóa các điều kiện đầu vào, giới thiệu dừng động và cải thiện quản lý vị trí. Tuy nhiên, các nhà giao dịch nên hiểu đầy đủ về rủi ro khi sử dụng chiến lược này và điều chỉnh thích hợp theo sở thích rủi ro cá nhân và điều kiện thị trường. Nói chung, đây là một chiến lược giao dịch định lượng tiềm năng, đặc biệt phù hợp với các nhà đầu tư tìm kiếm cơ hội giao dịch tần số cao và rủi ro thấp.

Mã nguồn chiến lược
/*backtest
start: 2023-07-23 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// indicator('TeeLek Flip 1 Percent', shorttitle='TeeLek Flip 1 Percent', overlay=true)
strategy("TeeLek Flip 1 Percent", shorttitle="TeeLek Flip 1 Percent", overlay=true)

// ----------------------------------------
// Input
// ----------------------------------------
BALANCE_USDT = input.float(1000, title="Start Balance (USDT)", minval=100)
PERCENT_POSITION_SIZE = input.float(90, title="Position Size (%USDT)", minval=1, maxval=100)
PERCENT_TAKE_PROFIT = input.float(10, title="Take Profit (%)", minval=0.1, maxval=100)
// KAMA Setup
KAMA_PERIOD = int(10)
KMA_FAST_LEN = input.int(5, "KMA Fast Legnth", minval=1,group="KAMA Setup")
KMA_SLOW_LEN = input.int(50, "KMA Slow Legnth", minval=1,group="KAMA Setup")

// ----------------------------------------
// Function
// ----------------------------------------
pine_kama(source) =>
    price_change = math.abs(source - source[KAMA_PERIOD])
    sum_price_change = math.sum(math.abs(source - source[1]), KAMA_PERIOD)
    fastest = 2/(KMA_FAST_LEN + 1)
    slowest = 2/(KMA_SLOW_LEN + 1)
    ER = price_change / sum_price_change
    SC =  math.pow((ER * (fastest-slowest) + slowest), 2)
    alpha = SC
    sum = 0.0
    sum := na(sum[1]) ? source : sum[1] + SC * (source - nz(sum[1]))

// ----------------------------------------
// Variable
// ----------------------------------------
var CurrentBalance_USDT = float(0)
var Accom_USDT = float(0)
var PositionSize_USDT = float(0)
var PositionSize_BTC = float(0)
var PositionTarget_USDT = float(0)
var TargetPrice = float(0)

var Long_BTC = float(0)
var Long_AvgPrice = float(0)
var Short_BTC = float(0)
var Short_AvgPrice = float(0)

var Long_Profit = float(0)
var Short_Profit = float(0)
// เริ่มต้นจากจำนวน Balanace ที่กำหนดมาให้
if CurrentBalance_USDT==0
    CurrentBalance_USDT:=BALANCE_USDT

// ----------------------------------------
// Signal
// ----------------------------------------
// kama line
kama_1h = request.security(syminfo.tickerid, "60",pine_kama(close))

// ----------------------------------------
// Strategy Preparing
// ----------------------------------------
// คำนวณ Position Size เตรียมเอาไว้
PositionSize_USDT:=CurrentBalance_USDT*PERCENT_POSITION_SIZE/100
PositionSize_BTC:=PositionSize_USDT/close
// คำนวณหามูลค่าเป้าหมาย ถ้าถึงก็จะขายเลย
PositionTarget_USDT:=CurrentBalance_USDT+(CurrentBalance_USDT*PERCENT_TAKE_PROFIT/100)

// ถ้ายังไม่ได้เปิด Order // ให้รอ ราคาตัดเส้น KAMA 1H ก่อน
if Long_BTC==0 and Short_BTC==0
    // ตัดขึ้น ให้ซื้อขึ้น Long
    if close>kama_1h and close[1]<=kama_1h[1]
        strategy.entry("L", strategy.long)
        Long_BTC:=PositionSize_BTC
        Long_AvgPrice:=close
    // ตัดลง ให้ซื้อลง  Short
    else if close<kama_1h and close[1]>=kama_1h[1]
        strategy.entry("S", strategy.short)
        Short_BTC:=PositionSize_BTC
        Short_AvgPrice:=close

// ----------------------------------------
// Strategy Switch Side
// ----------------------------------------
// ถ้าเปิด Long อยู่
if Long_BTC>0 
    // ถ้าตัดลง ให้ปิด Long แล้วซื้อลง Short
    if close<kama_1h and close[1]>=kama_1h[1]
        strategy.close_all("X")
        strategy.entry("S", strategy.short)
        Accom_USDT:=Accom_USDT+(close*Long_BTC)-(Long_AvgPrice*Long_BTC)
        Long_AvgPrice:=0
        Long_BTC:=0
        Short_AvgPrice:=close
        Short_BTC:=PositionSize_BTC
// ถ้าเปิด Short อยู่
if Short_BTC>0
    // ตัดขึ้น ให้ปิด Short แล้วซื้อขึ้น Long
    if close>kama_1h and close[1]<=kama_1h[1]
        strategy.close_all("X")
        strategy.entry("L", strategy.long)
        Accom_USDT:=Accom_USDT+(Short_AvgPrice*Short_BTC)-(close*Short_BTC)
        Short_AvgPrice:=0
        Short_BTC:=0
        Long_AvgPrice:=close
        Long_BTC:=PositionSize_BTC

// ----------------------------------------
// Strategy Take Profit
// ----------------------------------------
// ถ้าเปิด Long อยู่
if Long_BTC>0
    // คำนวณหาราคา Target price
    TargetPrice:=(PositionTarget_USDT+(Long_AvgPrice*Long_BTC)-(CurrentBalance_USDT+Accom_USDT))/Long_BTC
    // ถ้าราคามากกว่าราคาเป้าหมายก็ปิดทำกำไรได้เลย
    if close>=TargetPrice
        strategy.close_all("Take Profit")
        // เก็บกำไรเป็นทุน ไปเริ่มรอบใหม่
        CurrentBalance_USDT:=CurrentBalance_USDT+(close*Long_BTC)-(Long_AvgPrice*Long_BTC)
        Long_BTC:=0
        Long_AvgPrice:=0
        Accom_USDT:=0

// ถ้าเปิด Short อยู่
if Short_BTC>0
    // คำนวณหาราคา Target price
    TargetPrice:=((CurrentBalance_USDT+Accom_USDT)+(Short_AvgPrice*Short_BTC)-PositionTarget_USDT)/Short_BTC
    // ถ้าราคามากกว่าราคาเป้าหมายก็ปิดทำกำไรได้เลย
    if close<=TargetPrice
        strategy.close_all("Take Profit")
        // เก็บกำไรเป็นทุน ไปเริ่มรอบใหม่
        CurrentBalance_USDT:=CurrentBalance_USDT+(Short_AvgPrice*Short_BTC)-(close*Short_BTC)
        Short_BTC:=0
        Short_AvgPrice:=0
        Accom_USDT:=0

// ----------------------------------------
// Draw
// ----------------------------------------
// KAMA
plot(kama_1h,"KAMA 1H", #f18a23 , linewidth = 2)

// ----------------------------------------
// Alert
// ----------------------------------------

// ----------------------------------------
// Info Table
// ----------------------------------------