কৌশলটি বিভিন্ন বাজারের অবস্থা সনাক্ত করতে রৈখিক রিগ্রেশন এবং অস্থিরতা সূচক ব্যবহার করে। যখন কেনা বা বিক্রয়ের শর্ত পূরণ হয়, তখন কৌশলটি সংশ্লিষ্ট দীর্ঘ বা সংক্ষিপ্ত অবস্থান স্থাপন করে। উপরন্তু, কৌশলটি বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নেওয়ার জন্য বাজারের অবস্থার উপর ভিত্তি করে প্যারামিটার অপ্টিমাইজেশন এবং সমন্বয় করার অনুমতি দেয়। কৌশলটি ট্রেডিং সংকেতগুলি নিশ্চিত করার জন্য অতিরিক্ত সূচক হিসাবে এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) ব্যবহার করে।
কৌশলটি লিনিয়ার রিগ্রেশন এবং অস্থিরতা সূচক ব্যবহার করে বাজার অবস্থা চিহ্নিত করে, EMAs নিশ্চিতকরণ সূচক হিসাবে, একটি অভিযোজনশীল এবং যৌক্তিকভাবে পরিষ্কার ট্রেডিং কৌশল নির্মাণ করে। কৌশলটির সুবিধাগুলি প্রবণতা এবং অস্থিরতা একত্রিত করে প্যারামিটার অপ্টিমাইজেশনের অনুমতি দেয়, এটি বিভিন্ন বাজারের পরিবেশের জন্য উপযুক্ত করে তোলে। তবে, কৌশলটি প্যারামিটার নির্বাচন, অস্থির বাজার এবং কালো সোয়ান ইভেন্টগুলির মতো ঝুঁকিগুলির মুখোমুখি হয়, যা ব্যবহারিক অ্যাপ্লিকেশনগুলিতে ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির প্রয়োজন। ভবিষ্যতের উন্নতিগুলি সংকেত উত্স সমৃদ্ধকরণ, প্যারামিটার নির্বাচন অনুকূলীকরণ এবং কৌশলটির স্থায়িত্ব এবং লাভজনকতা বাড়ানোর জন্য ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাগুলি পরিমার্জন করতে মনোনিবেশ করতে পারে।
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 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/ // © tmalvao //@version=5 strategy("Regime de Mercado com Regressão e Volatilidade Otimizado", overlay=true) // Parâmetros para otimização upperThreshold = input.float(1.0, title="Upper Threshold") lowerThreshold = input.float(-1.0, title="Lower Threshold") length = input.int(50, title="Length", minval=1) // Indicadores de volatilidade atrLength = input.int(14, title="ATR Length") atrMult = input.float(2.0, title="ATR Multiplier") atr = ta.atr(atrLength) volatility = atr * atrMult // Calculando a regressão linear usando função incorporada intercept = ta.linreg(close, length, 0) slope = ta.linreg(close, length, 1) - ta.linreg(close, length, 0) // Sinal de compra e venda buySignal = slope > upperThreshold and close > intercept + volatility sellSignal = slope < lowerThreshold and close < intercept - volatility // Entrando e saindo das posições if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) // Indicadores adicionais para confirmação emaFastLength = input.int(10, title="EMA Fast Length") emaSlowLength = input.int(50, title="EMA Slow Length") emaFast = ta.ema(close, emaFastLength) emaSlow = ta.ema(close, emaSlowLength) // Confirmando sinais com EMAs if (buySignal and emaFast > emaSlow) strategy.entry("Buy Confirmed", strategy.long) if (sellSignal and emaFast < emaSlow) strategy.entry("Sell Confirmed", strategy.short) // Exibindo informações no gráfico plot(slope, title="Slope", color=color.blue) plot(intercept, title="Intercept", color=color.red) plot(volatility, title="Volatility", color=color.green) hline(upperThreshold, "Upper Threshold", color=color.green, linestyle=hline.style_dotted) hline(lowerThreshold, "Lower Threshold", color=color.red, linestyle=hline.style_dotted)