- Quảng trường
- Chiến lược dừng lỗ và lấy lợi nhuận động Bollinger Bands
Chiến lược dừng lỗ và lấy lợi nhuận động Bollinger Bands
Tác giả:
ChaoZhang, Ngày: 2024-05-17 15:11:50
Tags:
SMA
Tổng quan
Nguyên tắc chiến lược
- Tính toán các dải Bollinger phía trên, giữa và dưới.
- Tạo tín hiệu mua khi giá vượt dưới dải dưới và tín hiệu bán khi giá vượt trên dải trên.
- Khi mua, đặt mức dừng lỗ ở mức giá thấp nhất trong một khoảng thời gian qua và không đặt mức lấy lợi nhuận.
- Khi bán, đặt mức dừng lỗ ở mức giá cao nhất trong một khoảng thời gian qua và không đặt mức lấy lợi nhuận.
Ưu điểm chiến lược
- Bollinger Bands là một chỉ số kỹ thuật trưởng thành và được sử dụng rộng rãi có thể nắm bắt hiệu quả sự biến động của thị trường.
- Các thiết lập dừng lỗ và lấy lợi nhuận năng động có thể thích nghi với các điều kiện thị trường khác nhau, cải thiện khả năng thích nghi của chiến lược.
- Việc thiết lập mức dừng lỗ có thể kiểm soát rủi ro một cách hiệu quả và ngăn ngừa tổn thất quá mức từ một giao dịch duy nhất.
- Lý thuyết chiến lược là rõ ràng và dễ hiểu và thực hiện.
Rủi ro chiến lược
- Việc thiết lập mức dừng lỗ dựa trên dữ liệu lịch sử và có thể không thích nghi với những thay đổi thị trường trong tương lai.
Hướng dẫn tối ưu hóa chiến lược
- Đưa ra các chỉ số đánh giá xu hướng, chẳng hạn như trung bình động, để giao dịch theo hướng xu hướng và cải thiện khả năng thích nghi xu hướng của chiến lược.
- Thêm các điều kiện lọc bổ sung vào tín hiệu mua và bán, chẳng hạn như khối lượng giao dịch và biến động, để cải thiện độ tin cậy của tín hiệu.
Tóm lại
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands Strategy", overlay=true)
// Bollinger Bands settings
length = 20
src = close
mult = 2.0
// Calculate Bollinger Bands
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plot Bollinger Bands
plot(basis, color=color.blue, title="Middle Band")
plot(upper, color=color.red, title="Upper Band")
plot(lower, color=color.green, title="Lower Band")
// Trade logic
// Buy when the price crosses below the lower Bollinger Band
buySignal = ta.crossover(lower, src)
// Sell when the price crosses above the upper Bollinger Band
sellSignal = ta.crossover(src, upper)
// Define stop loss and take profit levels
var float stopLoss = na
var float takeProfit = na
// Calculate stop loss and take profit levels
if (buySignal)
stopLoss := ta.lowest(low, length)
takeProfit := na
if (sellSignal)
stopLoss := ta.highest(high, length)
takeProfit := na
// Update take profit on new signals
if (buySignal)
takeProfit := na
if (sellSignal)
takeProfit := na
// Execute trades
if (buySignal)
strategy.entry("Buy", strategy.long, stop=stopLoss, limit=takeProfit)
if (sellSignal)
strategy.entry("Sell", strategy.short, stop=stopLoss, limit=takeProfit)
// Plot signals on chart
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", title="Buy Signal")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal")
// Alert conditions
alertcondition(buySignal, title="Buy Alert", message="Buy Signal detected")
alertcondition(sellSignal, title="Sell Alert", message="Sell Signal detected")
Có liên quan
Thêm nữa