এই কৌশলটি উচ্চ-সম্ভাব্যতার ট্রেডিং সুযোগগুলি ক্যাপচার করার জন্য ইএমএ, এমএসিডি, ভিডাব্লুএপি এবং আরএসআইয়ের মতো একাধিক সূচককে একত্রিত করে। এটি প্রবণতার দিক নির্ধারণের জন্য ইএমএ, গতির জন্য এমএসিডি, ভলিউমের জন্য ভিডাব্লুএপি এবং ওভারকোপড এবং ওভারসোল্ড শর্তগুলির জন্য আরএসআই ব্যবহার করে। কৌশলটি মুনাফা সুরক্ষার জন্য একটি ট্রেলিং স্টপ লস ব্যবহার করে এই সূচকগুলির সংমিশ্রণের ভিত্তিতে কিনুন এবং বিক্রয় সংকেত উত্পন্ন করে।
এই কৌশলটি বাজারের পরিস্থিতি মূল্যায়ন করতে এবং লাভের সুরক্ষার জন্য ট্রেইলিং স্টপ লস ব্যবহার করার সময় ট্রেডিং সিগন্যাল তৈরি করার জন্য একাধিক সূচককে একত্রিত করে। কৌশল পরামিতিগুলি ব্যবহারকারীর পছন্দ অনুসারে সামঞ্জস্য করা যেতে পারে, কৌশলটির নমনীয়তা বাড়িয়ে তোলে। তবে কৌশলটি অস্থির বাজারে দুর্বল পারফর্ম করতে পারে এবং প্রবণতা বিপরীতের সময় বৃহত্তর ড্রডাউনগুলির মুখোমুখি হতে পারে, তাই এটি বিভিন্ন বাজার এবং যন্ত্রের জন্য অনুকূলিতকরণ এবং উন্নত করা দরকার। ভবিষ্যতের অপ্টিমাইজেশানগুলি কৌশলটির স্থায়িত্ব এবং লাভজনকতা উন্নত করতে আরও ফিল্টারিং শর্ত, গতিশীল স্টপ লস পদ্ধতি, পরামিতি অপ্টিমাইজেশন এবং অবস্থান আকার যোগ করার বিষয়টি বিবেচনা করতে পারে।
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Intraday Strategy", overlay=true) // Input parameters emaLength = input.int(50, title="EMA Length") macdShort = input.int(12, title="MACD Short Period") macdLong = input.int(26, title="MACD Long Period") macdSignal = input.int(9, title="MACD Signal Period") rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(70, title="RSI Overbought Level") rsiOversold = input.int(30, title="RSI Oversold Level") risk = input.float(1, title="Risk Percentage", minval=0.1, step=0.1) trailOffset = input.float(0.5, title="Trailing Stop Offset", minval=0.1, step=0.1) // Calculating indicators ema = ta.ema(close, emaLength) [macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal) rsi = ta.rsi(close, rsiLength) vwap = ta.vwap(close) // Entry conditions longCondition = ta.crossover(macdLine, signalLine) and close > ema and rsi < rsiOverbought and close > vwap shortCondition = ta.crossunder(macdLine, signalLine) and close < ema and rsi > rsiOversold and close < vwap // Exit conditions longExitCondition = ta.crossunder(macdLine, signalLine) or close < ema shortExitCondition = ta.crossover(macdLine, signalLine) or close > ema // Position sizing based on risk percentage capital = strategy.equity positionSize = (capital * (risk / 100)) / close // Executing trades if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (shortCondition) strategy.entry("Short", strategy.short, qty=1) if (longExitCondition) strategy.close("Long") if (shortExitCondition) strategy.close("Short") // Trailing stop loss if (strategy.position_size > 0) strategy.exit("Trailing Stop Long", from_entry="Long", trail_price=close, trail_offset=trailOffset) if (strategy.position_size < 0) strategy.exit("Trailing Stop Short", from_entry="Short", trail_price=close, trail_offset=trailOffset) // Plotting indicators plot(ema, title="EMA", color=color.blue) hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) plot(rsi, title="RSI", color=color.purple) plot(vwap, title="VWAP", color=color.orange)