
Chiến lược này tính toán các trung bình di chuyển và tỷ lệ biến đổi giá, kết hợp với đường K trong một khoảng thời gian nhất định, để xác định hiện tại có xu hướng tăng hay giảm, và tương ứng làm nhiều hoặc thiếu.
Chiến lược này đầu tiên tính toán đường trung bình di chuyển đơn giản a với độ dài l và tỷ lệ biến đổi giá r với độ dài l. Sau đó tính toán chênh lệch giá K-line hiện tại với đường trung bình di chuyển k. Cuối cùng, tính toán tổng số k của đường K-line gốc s trong quá khứ.
Khi sum>0 là hiện đang trong xu hướng tăng, chiến lược sẽ làm nhiều hơn. Khi sum là hiện đang trong xu hướng giảm, chiến lược sẽ làm trống.
Sau khi giảm giá nhiều hơn, bạn sẽ giữ vị trí cho đến khi xu hướng đảo ngược (sum từ tích cực sang âm hoặc từ âm sang tích cực), khi đó bạn sẽ thanh toán.
Lợi thế lớn nhất của chiến lược này là có thể nắm bắt được xu hướng và phù hợp với giao dịch xu hướng.
Sử dụng trung bình di chuyển để đánh giá hướng xu hướng tổng thể, bạn có thể lọc hiệu quả tiếng ồn thị trường và khóa xu hướng chính.
Sử dụng chỉ số tỷ lệ thay đổi giá để đo cường độ động lực, tránh bỏ lỡ các trường hợp mạnh mẽ.
Xem xét nhiều đường K trong một chu kỳ nhất định, bạn có thể đánh giá xu hướng chính xác hơn, tránh bị einzelne Ausreißer in die Irre führen.
Chỉ cần không thay đổi xu hướng, bạn có thể tiếp tục giữ vị thế và tận hưởng tối đa lợi nhuận từ xu hướng.
Chiến lược này có những rủi ro:
Không thể xác định chính xác thời gian kết thúc xu hướng, có thể dừng lỗ sớm hoặc bỏ lỡ một phần lợi nhuận.
Không có khả năng kiểm soát hiệu quả kích thước tổn thất đơn lẻ, trong trường hợp cực đoan, tổn thất có thể lớn hơn.
Các tham số chiến lược không phù hợp có thể dẫn đến giao dịch quá thường xuyên hoặc bỏ lỡ một số cơ hội giao dịch.
Các nhà đầu tư có thể phải đối mặt với rủi ro lãi suất và bảo lãnh qua đêm.
Để kiểm soát rủi ro, bạn có thể thiết lập điểm dừng lỗ, chỉ giao dịch các mặt hàng có tính thanh khoản cao, tham số tối ưu hóa và sử dụng đòn bẩy hợp lý.
Chiến lược này có thể được tối ưu hóa từ các khía cạnh sau:
Kiểm tra các đường trung bình di chuyển và tỷ lệ biến đổi giá với các độ dài khác nhau để tìm ra sự kết hợp tham số tốt nhất.
Thử các chỉ số khác như MACD để đánh giá xu hướng và cải thiện độ chính xác hơn nữa.
Tăng cơ chế quản lý vị trí, chẳng hạn như dừng một phần sau khi kiếm được lợi nhuận, kiểm soát tổn thất đơn lẻ
Kết hợp với chỉ số biến động, thiết lập dừng động để giảm nguy cơ biến động cực đoan.
Tối ưu hóa logic mở kho và kho, lọc phá vỡ giả để tăng hiệu quả giao dịch.
Chiến lược này có ý tưởng tổng thể rõ ràng, dễ thực hiện, giao dịch giữ vị trí dài hạn bằng cách theo dõi xu hướng, kiểm soát rút lui tương đối hợp lý, phù hợp với các nhà đầu tư tìm kiếm thu nhập ổn định. Nếu có thể tối ưu hóa hơn nữa các cơ chế như dừng lỗ và quản lý vị trí, có thể đạt được lợi nhuận ổn định lâu dài tốt hơn.
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)
l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc = iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE")
else
strategy.cancel(id="BBandLE")
if sum<0
strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands", comment="BBandSE")
else
strategy.cancel(id="BBandSE")
strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0
//shortCondition = sum<0
//exitshort = sum>0
//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)