Tài nguyên đang được tải lên... tải...

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

Tác giả:ChaoZhang, Ngày: 2024-07-29 14:12:08
Tags:KAMATP

img

Tổng quan

Chiến lược theo dõi đà tăng theo tỷ lệ chuyển động tần số cao (High-Frequency Flip Percentage Tracking Momentum Strategy) là một cách tiếp cận giao dịch tần số cao dựa trên trung bình chuyển động thích nghi Kaufman (KAMA). Chiến lược này sử dụng chỉ số KAMA trên một khung thời gian 1 giờ như là tham chiếu chính của nó trong khi thực hiện giao dịch trong các khung thời gian ngắn hơn, chẳng hạn như 15 phút. Khái niệm cốt lõi liên quan đến việc nhanh chóng chuyển đổi giữa các vị trí dài và ngắn khi giá vượt qua đường KAMA, với mục tiêu lợi nhuận 1% để đảm bảo lợi nhuận nhỏ nhưng thường xuyên.

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

  1. Sử dụng đường KAMA trên khung thời gian 1 giờ làm chỉ số xu hướng chính.
  2. Mở một vị trí dài khi giá vượt qua trên đường KAMA, và một vị trí ngắn khi nó vượt qua bên dưới.
  3. Khi nắm giữ một vị trí dài, nếu giá vượt qua dưới đường KAMA, đóng dài và mở ngắn; ngược lại đối với các vị trí ngắn.
  4. Đặt mục tiêu lợi nhuận 1%, sau khi đạt được, ngay lập tức đóng vị trí và thiết lập 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 một 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.

Lòng 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 nghi với biến động thị trường thông qua việc xoay đổi vị trí thường xuyên.

Ưu điểm chiến lược

  1. Đặc điểm giao dịch tần suất cao: Chiến lược có thể nắm bắt sự biến động thị trường ngắn hạn, tăng tần suất giao dịch và cơ hội 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 lợi nhuận 1%, chiến lược có thể nhanh chóng khóa lợi nhuận nhỏ, giảm rủi ro cho mỗi giao dịch.

  3. Khả năng thích nghi cao: Chỉ số KAMA có tính năng thích nghi, cho phép nó điều chỉnh độ nhạy trong các điều kiện thị trường khác nhau, tăng khả năng thích nghi của chiến lược.

  4. Hiệu quả vốn cao: Chiến lược sử dụng 90% số dư tài khoản làm kích thước vị trí, sử dụng đầy đủ các quỹ có sẵn.

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

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

  7. Tự động hóa hoàn toàn: Logic chiến lược rõ ràng và dễ thực hiện cho 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. Giao dịch quá mức: Chuyển đổi tần suất cao có thể dẫn đến giao dịch quá mức, tăng chi phí giao dịch và lỗ trượt.

  2. Không thuận lợi trong các thị trường hỗn loạn: Trong các thị trường hỗn loạn, hỗn loạn, các lần lật dài ngắn thường xuyên có thể dẫn đến tổn thất nhỏ tích lũy.

  3. Xu hướng bị thiếu: Mục tiêu lợi nhuận 1% có thể gây ra việc thoát sớm trong các thị trường xu hướng mạnh, bỏ lỡ các cơ hội lợi nhuận lớn hơn.

  4. Rủi ro phá vỡ sai: Sự vượt qua giá thường xuyên xung quanh đường KAMA có thể kích hoạt nhiều giao dịch phá vỡ sai.

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

  6. Áp dụng hạn chế: Chiến lược chỉ có thể phù hợp với các thị trường biến động cao, hoạt động kém trong môi trường biến động thấp.

  7. Sự phụ 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ố thất bại, nó có thể dẫn đến tổn thất đáng kể.

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

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

  2. Việc lọc đầu vào: Thiết lập các điều kiện lọc bổ sung (như RSI, khối lượng) để giảm các giao dịch thoát sai.

  3. Đánh giá sức mạnh xu hướng: Đánh giá sức mạnh xu hướng trước khi vào, chỉ giao dịch khi xu hướng rõ ràng để tránh giao dịch thường xuyên trong thị trường hỗn loạn.

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

  5. Phân tích nhiều khung thời gian: Kết hợp phân tích từ các khung thời gian dài hơn để cải thiện độ chính xác hướng giao dịch.

  6. Cơ chế dừng lỗ: Thiết lập các cơ chế dừng lỗ thích hợp để ngăn ngừa tổn thất quá mức trên các giao dịch cá nhân.

  7. Tối ưu hóa tham số: Tối ưu hóa các tham số KAMA để tìm sự kết hợp tốt nhất của các giai đoạn nhanh và chậm.

  8. Khả năng thích nghi thị trường: Phát triển một 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 điều kiện thị trường khác nhau.

Kết luận

Chiến lược theo dõi đà tăng theo tỷ lệ Flip cao tần số 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. Bằng cách nhanh chóng nắm bắt những thay đổi xu hướng ngắn hạn và thiết lập các mục tiêu lợi nhuận cố định, 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 tối ưu hóa các điều kiện nhập cảnh, giới thiệu lợi nhuận động và cải thiện quản lý vị trí, chiến lược này có tiềm năng tăng cường hiệu suất và ổn định của nó. Tuy nhiên, các nhà giao dịch nên nhận ra đầy đủ rủi ro của nó khi sử dụng chiến lược này và thực hiện điều chỉnh thích hợp dựa trên sở thích rủi ro cá nhân và điều kiện thị trường. Nhìn chung, đây là một chiến lược giao dịch định lượng đầy hứa hẹn, đặc biệt phù hợp với các nhà đầu tư tìm kiếm các cơ hội giao dịch tần suất cao, rủi ro thấp.


/*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
// ----------------------------------------


Có liên quan

Thêm nữa