
Chiến lược mua phá giá là một chiến lược giao dịch được thiết kế để xác định cơ hội mua bằng cách phát hiện giá và khối lượng giao dịch phá vỡ cùng một lúc trong phạm vi biểu đồ được chỉ định. Chiến lược này trước tiên sử dụng một số lượng cụ thể của các đường dây làm cửa sổ kiểm tra giá và khối lượng giao dịch. Những giá trị này được sử dụng làm chuẩn mực để xác định các điều kiện phá vỡ.
Chiến lược mua phá giá là một chiến lược theo dõi xu hướng phù hợp cho thị trường có tính biến động cao. Chiến lược này có thể nắm bắt tốt hơn các cơ hội giao dịch trong tình huống có xu hướng bằng cách xem xét cả giá cả và khối lượng giao dịch và kết hợp với SMA dài hạn như bộ lọc xu hướng. Tuy nhiên, chiến lược này có thể không hoạt động tốt trong thị trường không có xu hướng rõ ràng hoặc ít biến động hơn và có thể có nguy cơ giao dịch thường xuyên. Do đó, trong ứng dụng thực tế, chiến lược cần được tối ưu hóa và điều chỉnh thích hợp để tăng tính ổn định và khả năng sinh lợi của nó, tùy thuộc vào các đặc điểm thị trường khác nhau và phong cách giao dịch cá nhân.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots
//@version=5
strategy("Price and Volume Breakout Buy Strategy [TradeDots]", overlay=true, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 70, commission_type = strategy.commission.percent, commission_value = 0.01)
input_price_breakout_period = input.int(60, "Price Breakout Period")
input_volume_breakout_period = input.int(60, "Volume Breakout Period")
input_trendline_legnth = input.int(200, "Trendline Length")
input_order_direction = input.string("Long", options = ["Long", "Short", "Long and Short"], title = "Order Direction")
price_highest = ta.highest(input_price_breakout_period)
price_lowest = ta.lowest(input_price_breakout_period)
volume_highest = ta.highest(volume, input_volume_breakout_period)
// Long Orders
if close > price_highest[1] and volume > volume_highest[1] and close > ta.sma(close, input_trendline_legnth) and strategy.opentrades == 0 and input_order_direction != "Short"
strategy.entry("Long", strategy.long)
// line.new(bar_index[input_price_breakout_period], price_highest[1], bar_index, price_highest[1], color = #9cff87, width = 2)
// label.new(bar_index,low, "🟢 Breakout Buy", style = label.style_label_up, color = #9cff87)
// Close when price is below moving average for 5 consecutive days
if close < ta.sma(close, input_trendline_legnth) and close[1] < ta.sma(close, input_trendline_legnth) and close[2] < ta.sma(close, input_trendline_legnth) and close[3] < ta.sma(close, input_trendline_legnth) and close[4] < ta.sma(close, input_trendline_legnth) and strategy.opentrades.size(strategy.opentrades - 1) > 0
strategy.close("Long")
// label.new(bar_index, high, "🔴 Close Position", style = label.style_label_down, color = #f9396a, textcolor = color.white)
// Short Orders
if close < price_lowest[1] and volume > volume_highest[1] and close < ta.sma(close, input_trendline_legnth) and strategy.opentrades == 0 and input_order_direction != "Long"
strategy.entry("Short", strategy.short)
// line.new(bar_index[input_price_breakout_period], price_lowest[1], bar_index, price_lowest[1], color = #f9396a, width = 2)
// label.new(bar_index,high , "🔴 Breakout Sell", style = label.style_label_down, color = #f9396a, textcolor = color.white)
// Close when price is above moving average for 5 consecutive days
if close > ta.sma(close, input_trendline_legnth) and close[1] > ta.sma(close, input_trendline_legnth) and close[2] > ta.sma(close, input_trendline_legnth) and close[3] > ta.sma(close, input_trendline_legnth) and close[4] > ta.sma(close, input_trendline_legnth) and strategy.opentrades.size(strategy.opentrades - 1) < 0
strategy.close("Short")
// label.new(bar_index, low, "🟢 Close Position", style = label.style_label_up, color = #9cff87)
plot(ta.sma(close, input_trendline_legnth), color = color.white, linewidth = 2)
plotcandle(open, high, low, close, title='Candles', color = (close > ta.sma(close, input_trendline_legnth) ? #9cff87 : #f9396a), wickcolor=(close > ta.sma(close, input_trendline_legnth) ? #9cff87 : #f9396a), force_overlay = true)