Chiến lược thêm vị trí động


Ngày tạo: 2023-12-22 14:36:30 sửa đổi lần cuối: 2023-12-22 14:36:30
sao chép: 0 Số nhấp chuột: 565
1
tập trung vào
1623
Người theo dõi

Chiến lược thêm vị trí động

Tổng quan

Chiến lược gia tăng giá động đạt được mục đích của Stop Loss Compensation bằng cách gia tăng giá trị trung bình chi phí khi mất lỗ. Khi giá kích hoạt điều kiện gia tăng giá, chiến lược này sẽ gia tăng liên tục với số lượng và khoảng thời gian nhất định, đồng thời thiết lập số lần gia tăng tối đa để tránh rủi ro gia tăng giá vô hạn.

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

Lập luận cốt lõi của chiến lược này là:

  1. Mua và mua vị trí: Nếu bạn đang nắm giữ vị trí 0 thì hãy mua và mua vị trí theo giá được chỉ định.

  2. Điều kiện tăng vị thế: Nếu số lần tăng vị thế hiện tại ít hơn số lần tăng vị thế tối đa và giá thấp hơn mức giảm dự kiến của giá vị trí trước, thì sẽ kích hoạt tăng vị thế.

  3. Phương pháp tích trữ: Số lượng tích trữ tăng theo hệ số thu nhỏ của số lượng trước đó, khoảng cách tích trữ giảm theo hệ số thu nhỏ của khoảng cách trước đó.

  4. Điều kiện dừng: Nếu một mức lợi nhuận dự kiến của giá trung bình của vị trí được kích hoạt, toàn bộ vị trí bị dừng.

Như vậy, khi thị trường không thuận lợi, chiến lược này có thể giảm chi phí giữ vị trí bằng cách tăng vị thế và thu được lợi nhuận bổ sung trong khi điều chỉnh dừng lỗ. Khi thị trường chuyển sang phía trên, điều kiện dừng được kích hoạt và tất cả các vị trí đều có lợi nhuận.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là giảm giá trị trung bình chi phí thông qua việc gia tăng kho, thu được lợi nhuận lớn hơn với giả định chịu được một số tổn thất, điều này đặc biệt rõ ràng trong thị trường bò. Cụ thể, có một số lợi thế sau:

  1. Có thể làm giảm đáng kể chi phí giữ vị trí, tăng khả năng dừng lỗ. Khi giá bị điều chỉnh lại, chiến lược sẽ tăng vị trí, do đó làm loãng kim loại đơn mua trước đó với giá cao hơn, làm giảm chi phí tổng thể.

  2. Tăng lợi nhuận. Sau khi giảm chi phí, miễn là giá tăng trở lại, lợi nhuận sẽ được mở rộng, điều này cho phép.

  3. Tính linh hoạt thiết lập logic đặt cược, tùy chỉnh. Chính sách cho phép thiết lập các tham số như tỷ lệ đặt cược, số lượng, khoảng cách, người dùng có thể điều chỉnh theo sở thích của riêng mình.

  4. Có thể kiểm soát rủi ro, đặt giới hạn đặt cược. Hạn chế đặt cược tối đa để chiến lược không đặt cược vô hạn, có thể kiểm soát rủi ro.

Phân tích rủi ro

Mặc dù chiến lược này mang lại lợi nhuận lớn hơn thông qua việc gia tăng rủi ro, nhưng cũng có một số rủi ro cần phải cảnh giác:

  1. Rủi ro mất mát. Chiến lược này được đặt cược với giả định chịu một số tổn thất. Nếu tình hình tiếp tục xấu, tổn thất có thể mở rộng.

  2. Rủi ro giảm giá. Trong các trường hợp cực đoan, giá có thể giảm mạnh, vượt quá khả năng chịu đựng của chiến lược. Điều này đòi hỏi phải thiết lập các tham số tăng giá và điểm dừng lỗ hợp lý.

  3. Không có sự phản hồi kịp thời. Giá không nhất thiết phải phản hồi để kích hoạt dừng, không có khả năng dừng kịp thời là bàn ngắn của chiến lược.

  4. Các tham số đặt rủi ro. Các tham số đặt không đúng như hệ số gia tăng, mức dừng tăng giá có thể dẫn đến thất bại của chiến lược.

Những rủi ro này có thể được giảm thiểu bằng cách:

  1. Giảm bồi thường hợp lý, kiểm soát tổn thất đơn lẻ

  2. Giảm thời gian gia tăng và giảm chi phí nhanh chóng.

  3. Thiết lập mức dừng lỗ hợp lý. Thiết lập mức dừng lỗ quá rộng có thể gây tổn thất.

Hướng tối ưu hóa

Với tính chất của chiến lược sử dụng phương thức gia tăng rủi ro để thu được lợi nhuận lớn hơn, hướng tối ưu hóa của nó tập trung chủ yếu vào việc kiểm soát rủi ro và thu được lợi nhuận tốt hơn. Cụ thể, có một số hướng tối ưu hóa chính sau đây:

  1. Cải thiện các thuật toán logic đặt cược, làm cho đặt cược thông minh hơn và phù hợp với tình hình. Bạn có thể xem xét kích hoạt đặt cược dựa trên các chỉ số như tỷ lệ biến động, giá tăng vọt.

  2. Tối ưu hóa phương thức dừng, để đạt được hiệu quả dừng cao hơn. Có thể kết hợp với các phương thức dừng di động, ngăn chặn hàng loạt, để giảm khả năng phản xạ không thể dừng.

  3. Tiếp theo, các tham số chính sẽ không còn tĩnh mà thay vào đó sẽ được điều chỉnh theo tình hình thực tế và phản hồi động.

  4. Tăng cơ chế dừng lỗ, kiểm soát tổn thất tối đa. Các phương pháp dừng lỗ có thể xem xét việc dừng lỗ di chuyển, dừng lỗ đơn, v.v., để tránh sự gia tăng tổn thất do các tình huống cực đoan.

Tóm tắt

Chiến lược gia tăng trọng lượng động bằng cách gia tăng trọng lượng để giảm giá trị bình quân chi phí, thu được lợi nhuận lớn hơn với giả định kiểm soát rủi ro thích hợp. Chiến lược này dựa trên giả định chịu một số tổn thất, đặc biệt được ưa chuộng trong các nhà đầu tư có khả năng chịu thua lỗ mạnh mẽ.

Mã nguồn chiến lượ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)