এই কৌশলটি একাধিক প্রযুক্তিগত সূচকগুলির উপর ভিত্তি করে একটি বাজার খোলার ট্রেডিং সিস্টেম, প্রাথমিকভাবে জার্মান এবং মার্কিন বাজারের খোলার সেশনগুলিকে লক্ষ্য করে। এটি বোলিংজার ব্যান্ডগুলি ব্যবহার করে একীকরণের পর্যায়ে সনাক্ত করে, স্বল্প ও দীর্ঘমেয়াদী এক্সপোনেন্সিয়াল চলমান গড়ের সাথে প্রবণতার দিকটি নিশ্চিত করে, আরএসআই এবং এডিএক্স ব্যবহার করে ট্রেডিং সংকেতগুলি ফিল্টার করে এবং এটিআর ব্যবহার করে গতিশীলভাবে অবস্থানগুলি পরিচালনা করে।
এই কৌশলটি নিম্ন অস্থিরতা পর্যায়ে সনাক্ত করতে 14 পিরিয়ডের বোলিংজার ব্যান্ড (1.5 স্ট্যান্ডার্ড ডিভিয়েশন) ব্যবহার করে, যখন দাম মধ্যবর্তী ব্যান্ডের কাছাকাছি থাকে তখন একীকরণ বিবেচনা করে। এটি 10 এবং 200 পিরিয়ডের ইএমএ ব্যবহার করে বুলিশ প্রবণতা নিশ্চিত করতে, উভয় গড়ের উপরে দামের প্রয়োজন হয়। 7 পিরিয়ডের আরএসআই ওভারসোল্ড শর্তগুলি (> 30) নিশ্চিত করে, যখন 7 পিরিয়ডের এডিএক্স প্রবণতার শক্তি (> 10) নিশ্চিত করে। কৌশলটি প্রতিরোধের স্তরের জন্য সর্বশেষ 20 মোমবাতিগুলির সর্বোচ্চ বিশ্লেষণ করে, কমপক্ষে দুটি স্পর্শের প্রয়োজন হয়। স্টপ-লস এবং 4x এটিআর গ্রহণের জন্য 2x এটিআর ব্যবহার করে অন্যান্য শর্ত পূরণ হলে প্রতিরোধের ব্রেকআউট ঘটে।
এই কৌশলটি বহু-মাত্রিক প্রযুক্তিগত বিশ্লেষণের মাধ্যমে বাজার খোলার সেশনের সময় ট্রেডিংয়ের সুযোগগুলি ক্যাপচার করে, ঝুঁকি পরিচালনার জন্য গতিশীল স্টপ-লস এবং লাভ গ্রহণ ব্যবহার করে। পরিষ্কার যুক্তি এবং শক্তিশালী ঝুঁকি নিয়ন্ত্রণের সাথে এটি ভাল ব্যবহারিকতা প্রদর্শন করে। ক্রমাগত অপ্টিমাইজেশন এবং সমন্বয় কৌশলটির কার্যকারিতা আরও উন্নত করতে পারে।
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Post-Open Long Strategy with ATR-based Stop Loss and Take Profit (Separate Alerts)", overlay=true) // Parametri per Bande di Bollinger ed EMA lengthBB = 14 mult = 1.5 // Bande di Bollinger più strette per timeframe inferiori emaLength = 10 // EMA più breve per una rilevazione di trend più rapida emaLongLength = 200 // EMA a lungo termine per il filtraggio del trend // Parametri per RSI lengthRSI = 7 rsiThreshold = 30 // Parametri per ADX adxLength = 7 adxSmoothing = 7 adxThreshold = 10 // Filtro temporale - Solo durante l'apertura dei mercati tedesco e USA daxOpen = (hour >= 8 and hour < 12) usOpen = (hour == 15 and minute >= 30) or (hour >= 16 and hour < 19) // Calcolo delle Bande di Bollinger smaBB = ta.sma(close, lengthBB) basis = smaBB dev = mult * ta.stdev(close, lengthBB) upperBand = basis + dev lowerBand = basis - dev // Calcolo delle EMA (breve e lungo termine) ema = ta.ema(close, emaLength) // EMA più breve emaLong = ta.ema(close, emaLongLength) // EMA a lungo termine per il filtraggio del trend // Calcolo RSI rsi = ta.rsi(close, lengthRSI) // Calcolo ADX [plusDI, minusDI, adx] = ta.dmi(adxLength, adxSmoothing) // Calcolo ATR per Stop Loss e Take Profit dinamici atrLength = 14 atrStopLossMultiplier = 2.0 // Moltiplicatore per Stop Loss atrTakeProfitMultiplier = 4.0 // Moltiplicatore per Take Profit modificato a 4.0 atrValue = ta.atr(atrLength) // Valore ATR calcolato qui // Condizione di lateralizzazione - Prezzo vicino alla SMA delle Bande di Bollinger lateralization = math.abs(close - smaBB) < (0.01 * close) and (daxOpen or usOpen) // Identificazione della resistenza e del breakout var float resistanceLevel = na resistanceTouches = 0 for i = 1 to 20 if high[i] > high[i+1] and high[i] > high[i-1] resistanceLevel := high[i] resistanceTouches := resistanceTouches + 1 // Condizione di Breakout: Il prezzo attuale supera la resistenza identificata breakoutCondition = close > resistanceLevel and resistanceTouches >= 2 // Filtro di mercato rialzista a lungo termine - Entrare solo se il prezzo è sopra la EMA a 200 periodi bullMarket = close > emaLong // Filtro di trend a breve termine trendFilter = ta.ema(close, emaLength) // Filtro di trend a breve termine trendDown = close < trendFilter // Condizione di downtrend basata sul trend a breve termine // Evitare l'entrata durante un pullback - Verifica se le due candele precedenti sono rosse firstRedCandle = close[1] < open[1] // La prima candela precedente è rossa secondRedCandle = close[2] < open[2] // La seconda candela precedente è rossa avoidPullbackCondition = not (firstRedCandle and secondRedCandle) // Entrare solo se non entrambe sono rosse // Condizione Panic Candle - La candela deve chiudere negativa panicCandle = close < open and (daxOpen or usOpen) // Condizione di Entrata Long longCondition = breakoutCondition and lateralization and close > ema and rsi > rsiThreshold and adx > adxThreshold and not trendDown and avoidPullbackCondition and bullMarket and panicCandle // Stop Loss e Take Profit dinamici basati su ATR atrStopLoss = close - (atrValue * atrStopLossMultiplier) // Stop Loss dinamico usando ATR con moltiplicatore 2.0 atrTakeProfit = close + (atrValue * atrTakeProfitMultiplier) // Take Profit dinamico usando ATR con moltiplicatore 4.0 // Entrata Long: Ordine eseguito alla chiusura della candela if (longCondition and strategy.opentrades == 0 and barstate.isconfirmed) strategy.entry("Long", strategy.long) // Disegna linee per Stop Loss e Take Profit // line.new(x1=bar_index, y1=atrStopLoss, x2=bar_index + 1, y2=atrStopLoss, color=color.red, width=2, style=line.style_solid) // Linea di Stop Loss (rossa) // line.new(x1=bar_index, y1=atrTakeProfit, x2=bar_index + 1, y2=atrTakeProfit, color=color.green, width=2, style=line.style_solid) // Linea di Take Profit (verde) // Uscita: Stop Loss o Take Profit raggiunti if (strategy.opentrades > 0) strategy.exit("Exit Long", "Long", stop=atrStopLoss, limit=atrTakeProfit) // Alert: Differenziati per Entrata e Uscita utilizzando strategy.order.action alert_message = "Azione: {{strategy.order.action}}, Prezzo: {{close}}, Dimensione Posizione: {{strategy.position_size}}"