Chiến lược kim tự tháp năng động

Tác giả:ChaoZhang, Ngày: 2023-12-22 14:36:30
Tags:

img

Tổng quan

Chiến lược kim tự tháp năng động nhằm mục đích giảm chi phí nắm giữ trung bình bằng cách kim tự tháp thêm các vị trí khi giá giảm. Nó có thể giúp giảm thiểu tổn thất và kiếm được lợi nhuận bổ sung khi giá bật trở lại. Chiến lược sẽ mở thêm các vị trí với số lượng và khoảng thời gian nhất định khi các điều kiện kim tự tháp được kích hoạt. Trong khi đó, số lượng tối đa của kim tự tháp được đặt để hạn chế rủi ro.

Chiến lược logic

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

  1. Vị trí mở: Mở vị trí dài với giá chỉ định nếu vị trí hiện tại là 0.

  2. Điều kiện kim tự tháp: Trigger kim tự tháp nếu thời gian kim tự tháp hiện tại thấp hơn giá trị tối đa và giá giảm xuống dưới giá nhập khẩu cuối cùng với tỷ lệ phần trăm đã được đặt trước.

  3. Phương thức kim tự tháp: Tăng số lượng kim tự tháp ở một nhân tố mở rộng của lần trước, và giảm khoảng thời gian ở một nhân tố mở rộng.

  4. Điều kiện lấy lợi nhuận: Đóng tất cả các vị trí nếu mục tiêu lợi nhuận dựa trên giá nắm giữ trung bình được kích hoạt.

Bằng cách xây dựng kim tự tháp với giá giảm, chiến lược này làm giảm chi phí trung bình một cách năng động. Nó ngăn chặn tổn thất hiệu quả và để lại nhiều không gian cho lợi nhuận khi xu hướng đảo ngược. Khi điều kiện lấy lợi nhuận được kích hoạt, tất cả các vị trí sẽ thoát ra với lợi nhuận.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là đạt được tiềm năng lợi nhuận lớn hơn với tổn thất chấp nhận được bằng cách giảm chi phí nắm giữ trung bình bằng cách sử dụng kim tự tháp.

  1. Giảm đáng kể chi phí nắm giữ do đó tăng khả năng dừng lỗ. Bằng cách thêm các đơn đặt hàng mua bổ sung với giá thấp hơn khi giảm giá xảy ra, chiến lược loãng các mục nhập cao hơn trước đó và giảm chi phí tổng thể.

  2. Tăng phạm vi lợi nhuận sau khi giảm chi phí. Nếu giá bật trở lại, tiềm năng lợi nhuận được mở rộng và mở đường cho lợi nhuận.

  3. Tùy chỉnh linh hoạt cho logic kim tự tháp bằng cách thiết lập các tham số liên quan đến gia tăng, số lượng và khoảng thời gian vv.

  4. Kiểm soát rủi ro bằng cách giới hạn thời gian xây dựng kim tự tháp tối đa.

Phân tích rủi ro

Trong khi chiến lược cho phép nhiều tiềm năng lợi nhuận hơn với kim tự tháp, một số rủi ro cần chú ý:

  1. Rủi ro mất mát - tiền đề là thực hiện một số lỗ từ kim tự tháp.

  2. Rủi ro lặn trên vách đá - Trong các trường hợp cực đoan như lặn trên vách đá, tổn thất có thể vượt quá phạm vi chấp nhận được.

  3. Lễ hoặc thiếu lợi nhuận - Sự phục hồi giá có thể không phải lúc nào cũng kích hoạt điều kiện lợi nhuận, đó là khuyết điểm của chiến lược.

  4. Rủi ro điều chỉnh tham số - Các thiết lập không phù hợp về các tham số như hệ số kim tự tháp và tỷ lệ lợi nhuận có thể dẫn đến thất bại.

Các biện pháp sau đây có thể giúp giảm thiểu rủi ro:

  1. Thang đo gia tăng thấp hơn để kiểm soát số lượng lỗ nhập đơn.

  2. Thu hẹp khoảng cách kim tự tháp để đạt được giảm chi phí nhanh hơn.

  3. Đặt điểm dừng mất mát phù hợp hơn là quá lỏng lẻo.

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

Xem xét bản chất của việc đạt được tiềm năng lợi nhuận cao hơn bằng kim tự tháp, các hướng tối ưu hóa chủ yếu tập trung vào kiểm soát rủi ro tốt hơn và tăng lợi nhuận:

  1. Cải thiện logic kim tự tháp để làm cho các mục nhập thông minh hơn và thích nghi với điều kiện thị trường.

  2. Tối ưu hóa các cơ chế thu lợi nhuận để tăng hiệu quả, chẳng hạn như thu lợi nhuận, đóng cửa một phần v.v., để giảm khả năng giảm giá.

  3. Giới thiệu các thuật toán học máy để cho phép tự động điều chỉnh tham số.

  4. Thêm cơ chế dừng lỗ để hạn chế tổn thất tối đa, chẳng hạn như lệnh dừng lỗ và lệnh dừng lợi nhuận. Nó ngăn ngừa tổn thất vượt khỏi tầm kiểm soát trong các sự kiện thị trường cực đoan.

Kết luận

Chiến lược kim tự tháp năng động làm giảm chi phí nắm giữ trung bình bằng các mục bổ sung, cho phép tiềm năng lợi nhuận cao hơn do dung nạp lỗ chấp nhận được.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("DCA Bot Emulator", overlay=true, pyramiding=99, default_qty_type=strategy.cash, commission_value = 0.02)

// Date Ranges
from_month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
from_day   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
from_year  = input(defval = 2021, title = "From Year")
to_month   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
to_day     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
to_year    = input(defval = 9999, title = "To Year")
start  = timestamp(from_year, from_month, from_day, 00, 00)  // backtest start window
finish = timestamp(to_year, to_month, to_day, 23, 59)        // backtest finish window
window = time >= start and time <= finish ? true : false // create function "within window of time"

// Strategy Inputs
price_deviation = input(2, title='Price deviation to open safety orders', maxval=0)/100
take_profit = input(1.5, title='Target Take Profit', minval=0)/100

// base order
base_order  = input(100000, title='base order') 
safe_order  = input(200, title='safe order') 
safe_order_volume_scale  = input(2, title='Safety order volume scale') 
safe_order_step_scale  = input(1, title='Safety order step scale') 

max_safe_order = input(10, title='max safe order') 
var current_so = 1
var initial_order = 0.0

// Calculate our key levels
pnl = (close - strategy.position_avg_price) / strategy.position_avg_price

take_profit_level = strategy.position_avg_price * (1 + take_profit)

// First Position
if(strategy.position_size == 0 and window)
    strategy.entry("Long", strategy.long, qty = base_order/close)
    initial_order := close
    current_so := 1

// Average Down!
if current_so > 0 and close  < initial_order * (1 - price_deviation * current_so * safe_order_step_scale) and current_so <= max_safe_order
    so_name = "SO " + tostring(current_so) 
    strategy.entry(so_name, long=strategy.long , qty = safe_order * safe_order_volume_scale /close)
    current_so := current_so + 1
    
// Take Profit!
strategy.close_all(when=take_profit_level <= close  and strategy.position_size > 0)


Thêm nữa