এই কৌশলটি একটি প্রবণতা অনুসরণকারী সিস্টেম যা QQE (দ্রুত শান্ত এক্সপোজার) সূচক উপর ভিত্তি করে, গতিশীল ঝুঁকি ব্যবস্থাপনা প্রক্রিয়াগুলির সাথে মিলিত। কৌশলটির মূলটি QQE দ্রুত এবং ধীর রেখাগুলির ক্রসওভারের মাধ্যমে বাজারের প্রবণতা ক্যাপচার করে, যখন এটিআর (গড় সত্য পরিসীমা) ব্যবহার করে গতিশীলভাবে স্টপ-লস এবং লাভ গ্রহণের স্তরগুলি অনুকূলিত ঝুঁকি-পুরষ্কার কনফিগারেশনের জন্য সামঞ্জস্য করে। কৌশলটিতে অ্যাকাউন্ট ঝুঁকি ব্যবস্থাপনা এবং অবস্থান নিয়ন্ত্রণ বৈশিষ্ট্যগুলিও অন্তর্ভুক্ত রয়েছে যা অ্যাকাউন্টের মূলধনের উপর ভিত্তি করে অবস্থান আকারগুলি স্বয়ংক্রিয়ভাবে সামঞ্জস্য করে।
কৌশলটি তিনটি মূল মডিউল নিয়ে গঠিতঃ সংকেত উত্পাদন, ঝুঁকি ব্যবস্থাপনা এবং অবস্থান নিয়ন্ত্রণ। সংকেত উত্পাদন মডিউলটি QQE সূচকের উপর ভিত্তি করে, আরএসআই এর এক্সপোনেন্সিয়াল চলমান গড় (ইএমএ) এর মাধ্যমে দ্রুত লাইন (QQEF) গণনা করে এবং ধীর লাইন (QQES) গণনা করতে ATRRSI সংযুক্ত করে। QQEF QQES এর উপরে অতিক্রম করার সময় দীর্ঘ সংকেত উত্পাদিত হয় এবং এটি নীচে অতিক্রম করার সময় সংক্ষিপ্ত সংকেত উত্পাদিত হয়। ঝুঁকি ব্যবস্থাপনা মডিউলটি লাভের সুরক্ষার জন্য ট্রেলিং স্টপগুলি প্রয়োগ করে গতিশীলভাবে স্টপ-লস এবং টেন-লাভের মাত্রা গণনা করতে ATR ব্যবহার করে। অবস্থান নিয়ন্ত্রণ মডিউলটি পূর্বনির্ধারিত ঝুঁকি শতাংশ এবং বর্তমান অ্যাকাউন্ট ইক্যুইটি ভিত্তিতে অবস্থান আকার গণনা করে।
এই কৌশলটি কিউকিউই সূচককে একটি সম্পূর্ণ ট্রেডিং সিস্টেমে রূপান্তরিত করে, প্রবণতা অনুসরণ এবং ঝুঁকি পরিচালনার একটি জৈবিক সমন্বয় অর্জন করে। কৌশল নকশা যুক্তিসঙ্গত, শক্তিশালী ব্যবহারিকতা এবং স্কেলযোগ্যতার সাথে। সঠিক পরামিতি অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের মাধ্যমে, এই কৌশলটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীল কর্মক্ষমতা বজায় রাখতে পারে। ব্যবসায়ীদের লাইভ ট্রেডিংয়ের আগে পুঙ্খানুপুঙ্খ ব্যাকটেস্টিং এবং পরামিতি অপ্টিমাইজেশন পরিচালনা করার পরামর্শ দেওয়া হয়।
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © seckinduran //@version=5 strategy("QQE Strategy with Risk Management", overlay=true) // Girdi Parametreleri src = input(close, title="Source") length = input.int(14, title="RSI Length", minval=1) SSF = input.int(5, title="SF RSI Smoothing Factor", minval=1) riskPercentage = input.float(1.0, title="Risk Percentage per Trade", minval=0.1, maxval=10.0) // Trailing Stop ve Stop Loss Parametreleri stopLossMultiplier = input.float(title="Stop Loss Katsayısı", defval=1.5) takeProfitMultiplier = input.float(title="Take Profit Katsayısı", defval=3) trailStopMultiplier = input.float(title="Trailing Stop Katsayısı", defval=1.5) // QQE Hesaplamaları RSII = ta.ema(ta.rsi(src, length), SSF) TR = math.abs(RSII - RSII[1]) wwalpha = 1 / length WWMA = ta.ema(TR, length) ATRRSI = ta.ema(WWMA, length) QQEF = ta.ema(ta.rsi(src, length), SSF) QUP = QQEF + ATRRSI * 4.236 QDN = QQEF - ATRRSI * 4.236 QQES = 0.0 QQES := QUP < nz(QQES[1]) ? QUP : QQEF > nz(QQES[1]) and QQEF[1] < nz(QQES[1]) ? QDN : QDN > nz(QQES[1]) ? QDN : QQEF < nz(QQES[1]) and QQEF[1] > nz(QQES[1]) ? QUP : nz(QQES[1]) // Çizgileri Görselleştirme plot(QQEF, "FAST", color=color.maroon, linewidth=2) plot(QQES, "SLOW", color=color.blue, linewidth=1) // Alım ve Satım Koşulları longCondition = ta.crossover(QQEF, QQES) // Hızlı çizgi yavaş çizgiyi yukarı keserse shortCondition = ta.crossunder(QQEF, QQES) // Hızlı çizgi yavaş çizgiyi aşağı keserse // ATR Hesaplaması atrValue = ta.atr(14) // ATR hesaplaması burada // Pozisyon Büyüklüğü Hesaplama tradeSize = strategy.equity / close riskSize = (strategy.equity * riskPercentage / 100) / close leverageSize = math.max(1, riskSize) // Negatif değerleri engellemek için doğrulama // Pozisyon Açma if (longCondition) strategy.entry("Buy", strategy.long, qty=leverageSize, stop=close - (atrValue * stopLossMultiplier), limit=close + (atrValue * takeProfitMultiplier), comment="Long Entry") if (shortCondition) strategy.entry("Sell", strategy.short, qty=leverageSize, stop=close + (atrValue * stopLossMultiplier), limit=close - (atrValue * takeProfitMultiplier), comment="Short Entry") // Çıkış Koşulları: Trailing Stop if (strategy.position_size > 0) strategy.exit("Trail Exit Long", from_entry="Buy", trail_price=close - atrValue * trailStopMultiplier, trail_offset=atrValue * stopLossMultiplier, limit=close + atrValue * takeProfitMultiplier) if (strategy.position_size < 0) strategy.exit("Trail Exit Short", from_entry="Sell", trail_price=close + atrValue * trailStopMultiplier, trail_offset=atrValue * stopLossMultiplier, limit=close - atrValue * takeProfitMultiplier) // Pozisyon Kapatma Koşulları if (ta.crossunder(close, QQES)) strategy.close("Buy") // Long pozisyonu kapat if (ta.crossover(close, QQEF)) strategy.close("Sell") // Short pozisyonu kapat // Ekstra Görselleştirme (Trend Renkleri) longFillColor = QQEF > QQES ? color.new(color.green, 80) : na shortFillColor = QQEF < QQES ? color.new(color.red, 80) : na fill(plot1=plot(QQEF, display=display.none), plot2=plot(QQES, display=display.none), color=longFillColor, title="Uptrend Fill") fill(plot1=plot(QQEF, display=display.none), plot2=plot(QQES, display=display.none), color=shortFillColor, title="Downtrend Fill")