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

Chiến lược theo dõi giá trung bình động

Tác giả:ChaoZhang, Ngày: 2024-01-29 15:28:53
Tags:

img

Tổng quan

Ý tưởng chính của chiến lược này là khi giá cổ phiếu giảm xuống một tỷ lệ phần trăm nhất định, các vị trí có thể được tăng dần để giảm chi phí trung bình của vị trí nắm giữ.

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

Khi giá cổ phiếu lần đầu tiên vượt qua mức trung bình di chuyển đơn giản 20 ngày, hãy mua dài để mở một vị trí. Nếu cổ phiếu sau đó giảm theo tỷ lệ phần trăm mất mát mục tiêu đặt ra, chẳng hạn như 10%, thêm vào vị trí ở tỷ lệ phần trăm được chỉ định, chẳng hạn như 50% vị trí hiện tại. Điều này làm giảm chi phí trung bình của vị trí nắm giữ. Khi giá cổ phiếu đạt đến điểm lợi nhuận được đặt ra, chẳng hạn như 10% trên chi phí nắm giữ trung bình, đóng tất cả các vị trí để kiếm lợi nhuận.

Cụ thể, chức năng chiến lược thiết lập các tham số như cho phép tối đa 4 giao dịch mua thêm, với kích thước vị trí được đặt theo tỷ lệ phần trăm vốn chủ sở hữu, và kích thước vị trí ban đầu là 10% vốn chủ sở hữu. Nó nhận được đường trung bình di chuyển đơn giản 20 ngày. Khi giá đóng vượt qua mức trung bình đó và không có vị trí hiện tại, nó mở một vị trí dài. Sau đó nó tính tỷ lệ lợi nhuận / lỗ nổi của vị trí. Nếu nó đạt được tỷ lệ thua lỗ mục tiêu, nó tiếp tục kim tự tháp tại tỷ lệ phần trăm mua thêm mục tiêu cho đến khi cổ phiếu phục hồi để đạt được mục tiêu lợi nhuận.

Phân tích lợi thế

Lợi thế lớn nhất của loại chiến lược này là khi điều kiện thị trường không thuận lợi, chi phí trung bình của vị trí nắm giữ có thể được giảm bằng cách mua thêm kim tự tháp. Điều này cho phép thu được lợi nhuận lớn hơn khi điều kiện thị trường cải thiện, đạt được hiệu ứng mất ít hơn, kiếm được nhiều hơn. So với dừng lỗ đơn giản, chiến lược này có thể nắm bắt tốt hơn các chuyển động của thị trường thay vì buộc phải dừng lỗ khi giá tiếp tục giảm.

Đồng thời, chiến lược cho phép mua thêm nhiều lần, tận dụng tối đa sự khác biệt thời gian trong sự đảo ngược thị trường để điều chỉnh dần các vị trí. Điều này có chi phí thấp hơn so với mua thêm một lần lớn và cũng phù hợp hơn với sức mạnh vốn của hầu hết các nhà đầu tư.

Phân tích rủi ro

Tất nhiên, nếu giá tiếp tục giảm, chiến lược này cũng phải đối mặt với nguy cơ mất mát lớn. Đặc biệt là trong thị trường gấu, mức độ giảm giá có thể vượt xa trí tưởng tượng của chúng ta. Do đó, tỷ lệ và số lượng mua bổ sung phải được thiết lập hợp lý để kiểm soát rủi ro trong phạm vi chấp nhận được.

Đồng thời, chúng ta phải nhận ra rằng nếu tất cả các nhà đầu tư áp dụng một chiến lược như vậy, khi nhiều nhà đầu tư đạt được mục tiêu tỷ lệ thua lỗ của họ, có thể có một kịch bản tập thể thêm vào các vị trí. Điều này sẽ thúc đẩy giá tăng và tạo thành một sự phục hồi ngắn hạn không hợp lý. Nếu chúng ta không đánh giá tình hình đúng cách, chúng ta có thể đánh giá sai xu hướng thị trường và tiếp tục tăng vị trí của chúng ta. Kết quả sẽ còn là tổn thất lớn hơn khi giá giảm lại.

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

Có một số cách để tối ưu hóa chiến lược này:

  1. Điều chỉnh năng động tỷ lệ mua thêm. Điều này có thể được điều chỉnh trong thời gian thực dựa trên điều kiện thị trường.

  2. Bao gồm các chỉ số định lượng. Ví dụ, theo dõi sự gia tăng khối lượng để xác nhận các tín hiệu đảo ngược và tránh các tín hiệu sai.

  3. Sử dụng các lỗ dừng lại sau khi mua thêm, sử dụng một hệ thống dừng lỗ tiến bộ để đảm bảo lỗ được giữ trong một phạm vi nhất định.

Tóm lại

Chiến lược theo dõi giá trung bình năng động sử dụng hiệu ứng giá trung bình bằng cách điều chỉnh các vị trí thông qua mua thêm. Trong tiền đề có đủ hỗ trợ vốn, nó có thể thu được lợi nhuận trên mức trung bình khi giá đảo ngược. Chìa khóa là đánh giá đúng thời điểm và tỷ lệ để giữ rủi ro trong phạm vi chấp nhận được. Nếu áp dụng đúng cách, đây có thể là một phương pháp rất hiệu quả trong giao dịch định lượng.


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

//@version=3

// ########################################################################## // 
//
// This scipt is intended to demonstrate how pyramiding can be used to average
// down a position.
//
// We will buy when a stock closes above its 20 day MA and Average down if
// the trade does not go in our favor. We will hold until a profit is made. 
// (which could mean we hold forever)
//
// ########################################################################## //

strategy("Average Down", overlay=true )

// 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 = 2010, 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 = true
// Strategy Inputs
target_perc = input(-10, title='Target Loss to Average Down (%)', maxval=0)/100
take_profit = input(10, title='Target Take Profit', minval=0)/100
target_qty  = input(50, title='% Of Current Holdings to Buy', minval=0)/100 
sma_period  = input(20, title='SMA Period') 

// Get our SMA, this will be used for our first entry 
ma = sma(close,sma_period)

// 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
first_long = crossover(close, ma) and strategy.position_size == 0 and window
if (first_long)
    strategy.entry("Long", strategy.long)

// Average Down!
if (pnl <= target_perc)
    qty = floor(strategy.position_size * target_qty)
    strategy.entry("Long", strategy.long, qty=qty)

// Take Profit!
strategy.exit("Take Profit", "Long", limit=take_profit_level)

// Plotting
plot(ma, color=blue, linewidth=2, title='SMA')
plot(strategy.position_avg_price, style=linebr, color=red, title='Average Price')

Thêm nữa