Chiến lược này kết hợp ba chỉ số kỹ thuật: Mức trung bình di chuyển đơn giản (SMA), mức hỗ trợ và kháng cự và tăng khối lượng giao dịch để xây dựng một chiến lược giao dịch toàn diện. Ý tưởng chính của chiến lược là tham gia giao dịch khi giá vượt qua mức SMA, mức hỗ trợ / kháng cự và đi kèm với sự gia tăng khối lượng giao dịch, trong khi thiết lập các điều kiện dừng lỗ để kiểm soát rủi ro.
Chiến lược này kết hợp các chỉ số SMA, mức hỗ trợ và kháng cự, và chỉ số khối lượng giao dịch để xây dựng một chiến lược giao dịch toàn diện. Ưu điểm của chiến lược nằm trong khả năng nắm bắt các cơ hội xu hướng trong khi kiểm soát rủi ro giao dịch. Tuy nhiên, chiến lược cũng có một số hạn chế nhất định, chẳng hạn như khả năng thích nghi với các tình huống thị trường cực kỳ cần cải thiện. Trong tương lai, chiến lược có thể được cải thiện bằng cách giới thiệu các chỉ số kỹ thuật khác, tối ưu hóa phương pháp tính toán cho các mức hỗ trợ và kháng cự, làm mịn các chỉ số khối lượng giao dịch và tối ưu hóa các điều kiện dừng lỗ để tăng sự ổn định và lợi nhuận của nó.
/*backtest start: 2023-06-08 00:00:00 end: 2024-06-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Advanced Entry Conditions with Support/Resistance, SMA, and Volume", overlay=true) // Inputs length = input(20, title="SMA Length") stopLossPerc = input(1, title="Stop Loss Percentage", type=input.float) / 100 leftBars = input(15, title="Left Bars") rightBars = input(15, title="Right Bars") distanceThresh = input(1, title="Distance Threshold from Support/Resistance", type=input.float) / 100 // Calculations smaValue = sma(close, length) highUsePivot = fixnan(pivothigh(leftBars, rightBars)[1]) lowUsePivot = fixnan(pivotlow(leftBars, rightBars)[1]) // Volume Calculation volumeIncrease = volume > volume[1] // Entry Conditions longEntryCondition = close[0] > close[1] and close[1] > smaValue and close[0] > smaValue and close[0] > lowUsePivot and close[1] > lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease shortEntryCondition = close[0] < close[1] and close[1] < smaValue and close[0] < smaValue and close[0] < lowUsePivot and close[1] < lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease // Calculate stop loss levels longStopLoss = close * (1 - stopLossPerc) shortStopLoss = close * (1 + stopLossPerc) // Strategy Logic strategy.entry("Long", strategy.long, when=longEntryCondition) strategy.exit("Exit Long", "Long", stop=longStopLoss) strategy.entry("Short", strategy.short, when=shortEntryCondition) strategy.exit("Exit Short", "Short", stop=shortStopLoss) // Plotting plot(smaValue, color=color.blue, title="SMA") plot(highUsePivot, color=color.red, linewidth=2, title="Resistance") plot(lowUsePivot, color=color.green, linewidth=2, title="Support") plotshape(series=longEntryCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Entry") plotshape(series=shortEntryCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Entry") // Background Color bgcolor(longEntryCondition ? color.new(color.green, 90) : shortEntryCondition ? color.new(color.red, 90) : na)