এই কৌশলটি একটি পরিমাণগত ট্রেডিং সিস্টেম যা বাজারের প্রবণতা এবং ট্রেডিং সুযোগগুলি সনাক্ত করতে আপেক্ষিক শক্তি সূচক (আরএসআই) এবং চলমান গড় (এমএ) একত্রিত করে। ব্যবসায়ের সংকেতগুলির নির্ভরযোগ্যতা বাড়ানোর জন্য সিস্টেমটিতে ভলিউম এবং অস্থিরতা ফিল্টারগুলিও অন্তর্ভুক্ত রয়েছে। মূল ধারণাটি হ'ল গতি নিশ্চিত করার জন্য আরএসআই ব্যবহার করার সময় দ্রুত এবং ধীর চলমান গড়ের ক্রসওভারের মাধ্যমে প্রবণতার দিক নির্ধারণ করা, শেষ পর্যন্ত একটি সম্পূর্ণ ট্রেডিং সিদ্ধান্তের কাঠামো গঠন করা।
কৌশলটি একটি দ্বৈত সংকেত নিশ্চিতকরণ প্রক্রিয়া ব্যবহার করেঃ ১. ট্রেন্ড কনফার্মেশন লেয়ারঃ বাজারের প্রবণতা নির্ধারণের জন্য ফাস্ট মুভিং এভারেজ (ফাস্টএমএ) এবং স্লো মুভিং এভারেজ (স্লোএমএ) এর ক্রসওভার ব্যবহার করে। যখন দ্রুত লাইনটি ধীর লাইনের উপরে অতিক্রম করে, তখন একটি আপট্রেন্ড প্রতিষ্ঠিত হয়; যখন দ্রুত লাইনটি ধীর লাইনের নীচে অতিক্রম করে, তখন একটি ডাউনট্রেন্ড প্রতিষ্ঠিত হয়। 2. গতি নিশ্চিতকরণ স্তরঃ গতি নিশ্চিতকরণ সরঞ্জাম হিসাবে আরএসআই ব্যবহার করে। আপট্রেন্ডে, আরএসআই 50 এর নীচে হওয়া উচিত, যা আপট্রেন্ডের সম্ভাবনাকে নির্দেশ করে; ডাউনট্রেন্ডে, আরএসআই 50 এর উপরে হওয়া উচিত, যা ডাউনট্রেন্ডের সম্ভাবনাকে নির্দেশ করে। ৩. ট্রেডিং ফিল্টারঃ অপর্যাপ্ত তরলতা বা অস্থিরতা সহ সংকেতগুলি ফিল্টার করার জন্য ভলিউম এবং এটিআর অস্থিরতার জন্য সর্বনিম্ন থ্রেশহোল্ড সেট করে।
এই কৌশলটি প্রবণতা এবং গতির সূচকগুলির সমন্বিত ব্যবহারের মাধ্যমে একটি বিস্তৃত ট্রেডিং সিস্টেম স্থাপন করে। সিস্টেমের শক্তিগুলি এর বহু-স্তরীয় সংকেত নিশ্চিতকরণ প্রক্রিয়া এবং বিস্তৃত ঝুঁকি ব্যবস্থাপনা কাঠামোর মধ্যে রয়েছে। তবে, বাস্তব প্রয়োগের জন্য বাস্তব পরিস্থিতির উপর ভিত্তি করে কৌশল কর্মক্ষমতা এবং পরামিতি অপ্টিমাইজেশনের উপর বাজারের অবস্থার প্রভাবের প্রতি মনোযোগ প্রয়োজন। ক্রমাগত উন্নতি এবং অপ্টিমাইজেশনের মাধ্যমে, এই কৌশলটির বিভিন্ন বাজারের পরিবেশে স্থিতিশীল কর্মক্ষমতা বজায় রাখার সম্ভাবনা রয়েছে।
/*backtest start: 2024-01-17 00:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ // © Boba2601 //@version=5 strategy("RSI-MA Synergy", overlay=true, margin_long=100, margin_short=100) // === Налаштування індикаторів === length_rsi = input.int(14, title="RSI Period", group="Індикатори") fastMALength = input.int(9, title="Fast MA Length", group="Індикатори") slowMALength = input.int(21, title="Slow MA Length", group="Індикатори") // === Налаштування стоп-лосу і тейк-профіту === useStopLossTakeProfit = input.bool(true, title="Використовувати стоп-лос і тейк-профіт", group="Стоп-лос і Тейк-профіт") stopLossPercent = input.float(2.0, title="Стоп-лос (%)", minval=0.1, step=0.1, group="Стоп-лос і Тейк-профіт") takeProfitPercent = input.float(4.0, title="Тейк-профіт (%)", minval=0.1, step=0.1, group="Стоп-лос і Тейк-профіт") // === Налаштування об'єму та волатильності === useVolumeFilter = input.bool(false, title="Використовувати фільтр об'єму", group="Об'єм та Волатильність") volumeThreshold = input.int(50000, title="Мінімальний об'єм", group="Об'єм та Волатильність") useVolatilityFilter = input.bool(false, title="Використовувати фільтр волатильності", group="Об'єм та Волатильність") atrLength = input.int(14, title="Період ATR для волатильності", group="Об'єм та Волатильність") volatilityThreshold = input.float(1.5, title="Мінімальна волатильність (ATR)", step=0.1, group="Об'єм та Волатильність") // === Розрахунок індикаторів === rsiValue = ta.rsi(close, length_rsi) fastMA = ta.sma(close, fastMALength) slowMA = ta.sma(close, slowMALength) // === Розрахунок об'єму та волатильності === averageVolume = ta.sma(volume, 20) atrValue = ta.atr(atrLength) // === Умови входу в позицію === longCondition = ta.crossover(fastMA, slowMA) and rsiValue < 50 if useVolumeFilter longCondition := longCondition and volume > volumeThreshold if useVolatilityFilter longCondition := longCondition and atrValue > volatilityThreshold shortCondition = ta.crossunder(fastMA, slowMA) and rsiValue > 50 if useVolumeFilter shortCondition := shortCondition and volume > volumeThreshold if useVolatilityFilter shortCondition := shortCondition and atrValue > volatilityThreshold // === Логіка входу та виходу з позиції === if (longCondition) strategy.entry("Long", strategy.long) if (useStopLossTakeProfit) stopLossPrice = close * (1 - stopLossPercent / 100) takeProfitPrice = close * (1 + takeProfitPercent / 100) strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice) if (shortCondition) strategy.entry("Short", strategy.short) if (useStopLossTakeProfit) stopLossPrice = close * (1 + stopLossPercent / 100) takeProfitPrice = close * (1 - takeProfitPercent / 100) strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice) // === Закриття позицій за зворотнім сигналом === if (strategy.position_size > 0 and (ta.crossunder(fastMA, slowMA) or rsiValue > 50)) strategy.close("Long", comment="Закрито по сигналу") if (strategy.position_size < 0 and (ta.crossover(fastMA, slowMA) or rsiValue < 50)) strategy.close("Short", comment="Закрито по сигналу")