
Chiến lược này là một hệ thống giao dịch định lượng được thiết kế đặc biệt để nắm bắt thời gian biến động cực độ của thị trường. Nó giám sát mức độ lệch giữa giá và đường trung bình, xác định tình trạng suy giảm thanh khoản có thể xảy ra trong thị trường, để nắm bắt cơ hội đảo ngược thị trường. Chiến lược sử dụng kết hợp đường trung bình, theo dõi biến động và cơ chế dừng động để xây dựng một hệ thống giao dịch hoàn chỉnh.
Cốt lõi của chiến lược là xác định sự bất thường của thị trường bằng cách tính toán giá và độ lệch trung bình. Các thực hiện cụ thể bao gồm:
Chiến lược thu giữ dòng chảy động là một hệ thống giao dịch định lượng chuyên về việc thu giữ các tình huống cực đoan của thị trường. Thông qua sự kết hợp các chỉ số khoa học và kiểm soát rủi ro nghiêm ngặt, chiến lược có thể nắm bắt cơ hội giao dịch khi thị trường biến động mạnh. Mặc dù có một số rủi ro, nhưng thông qua việc tối ưu hóa và hoàn thiện liên tục, chiến lược có thể duy trì hiệu suất ổn định trong nhiều môi trường thị trường.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Liquidation Cascade Strategy", overlay=true)
// Paramètres de l'indicateur de liquidation
var float lastHigh = na
var float lastLow = na
var float lastPriceLow = na
var float lastPriceHigh = na
var bool shortLiq = na
var bool longLiq = na
src = close
maLength1 = 15
maLength2 = 30
ma1 = ta.sma(src, maLength1)
ma2 = ta.ema(src, maLength2)
avgLine = (ma1 + ma2) / 2
distVal = ((src - avgLine) / avgLine) * 100
ph = ta.highest(distVal, 89)
pl = ta.lowest(distVal, 89)
if ph == distVal and ph > 0
lastHigh := distVal
lastPriceHigh := high
if pl == distVal and pl < 0
lastLow := distVal
lastPriceLow := low
shortLiq := not na(lastHigh) and lastHigh == distVal and distVal > 0
longLiq := not na(lastLow) and lastLow == distVal and distVal < 0
// Condition d'achat : 3 liquidations longues consécutives
buyCondition = ta.valuewhen(longLiq, longLiq, 0) and ta.valuewhen(longLiq, longLiq, 1) and ta.valuewhen(longLiq, longLiq, 2)
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Conditions de vente
var float entryPrice = na
var bool positionOpen = false
// Mise à jour du prix d'entrée
if (buyCondition)
entryPrice := close
positionOpen := true
// 1. Vente sur rebond technique (distVal > -1%)
sellCondition1 = distVal > -1 and positionOpen
// 2. Vente sur liquidation courte
sellCondition2 = shortLiq and positionOpen
// 3. Trailing Stop (2x ATR)
atr = ta.atr(14)
trailingStop = close - 2 * atr
sellCondition3 = close < trailingStop and positionOpen
// Exécution des ventes
if (sellCondition1 or sellCondition2 or sellCondition3)
strategy.close("Buy")
positionOpen := false
// Visualisation
plot(avgLine, color=color.blue, title="Avg Line")
plot(distVal, color=distVal > 0 ? color.red : color.green, style=plot.style_columns)