বাইবিট ইএমএ আরএসআই ট্রেন্ড-ফলোিং এবং মোমেন্টাম কৌশল হ'ল একটি পরিমাণগত ট্রেডিং কৌশল যা এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) এবং আপেক্ষিক শক্তি সূচক (আরএসআই) একত্রিত করে। কৌশলটি বাজারের প্রবণতা নির্ধারণের জন্য বিভিন্ন সময়ের সাথে দুটি ইএমএ এবং প্রবণতার বৈধতা নিশ্চিত করার জন্য আরএসআই সূচক ব্যবহার করে। যখন দ্রুত ইএমএ ধীর ইএমএর উপরে অতিক্রম করে এবং আরএসআই একটি নির্দিষ্ট নিম্ন প্রান্তিকের নীচে থাকে, তখন কৌশলটি একটি দীর্ঘ সংকেত উত্পন্ন করে। বিপরীতভাবে, যখন দ্রুত ইএমএ ধীর ইএমএর নীচে অতিক্রম করে এবং আরএসআই একটি নির্দিষ্ট উপরের প্রান্তিকের উপরে থাকে, তখন কৌশলটি একটি সংক্ষিপ্ত সংকেত উত্পন্ন করে। কৌশলটিতে বাইবিট অ্যাকাউন্টের স্তরের উপর ভিত্তি করে বিভিন্ন কমিশন শতাংশ এবং কার্যকরভাবে ঝুঁকি পরিচালনা করার জন্য অন্তর্নির্মিত মুনাফা এবং স্টপ লস ফাংশনগুলি অন্তর্ভুক্ত রয়েছে।
বাইবিট ইএমএ আরএসআই ট্রেন্ড-ফলোিং এবং মম্পটাম স্ট্র্যাটেজি একটি পরিমাণগত ট্রেডিং কৌশল যা ট্রেন্ড-ফলোিং এবং মম্পটাম সূচকগুলিকে একত্রিত করে। ইএমএ এবং আরএসআই একসাথে ব্যবহার করে এটি কার্যকরভাবে বাজারের প্রবণতা ক্যাপচার করতে পারে। কৌশলটিতে অন্তর্নির্মিত লাভ এবং স্টপ লস ফাংশন অন্তর্ভুক্ত রয়েছে এবং বাইবিট অ্যাকাউন্টের স্তরের উপর ভিত্তি করে কমিশন শতাংশ সেট করে, কার্যকরভাবে ঝুঁকি পরিচালনা করে এবং বিভিন্ন ব্যবহারকারীর ট্রেডিং অবস্থার সাথে খাপ খাইয়ে নেয়। তবে, পরামিতি অপ্টিমাইজেশন, অন্যান্য প্রযুক্তিগত সূচক প্রবর্তন এবং লাভ এবং স্টপ লস সেটিংস অপ্টিমাইজ করার মতো কৌশলটিতে এখনও অপ্টিমাইজেশনের জায়গা রয়েছে। ক্রমাগত অপ্টিমাইজেশন এবং উন্নতির সাথে কৌশলটি প্রকৃত ট্রেডিংয়ে আরও ভাল ফলাফল অর্জন করবে বলে আশা করা হচ্ছে।
/*backtest start: 2024-03-21 00:00:00 end: 2024-03-28 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @BryanAaron //@version=5 strategy("Bybit EMA RSI Strategy", overlay=true) // Input parameters fastLength = input(90, title="Fast EMA Length") slowLength = input(300, title="Slow EMA Length") rsiLength = input(5, title="RSI Length") rsiUpperThreshold = input(85, title="RSI Upper Threshold") rsiLowerThreshold = input(45, title="RSI Lower Threshold") takeProfitPerc = input(5, title="Take Profit %") stopLossPerc = input(3, title="Stop Loss %") bybitAccountLevel = input.string("VIP 0", title="Bybit Account Level", options=["VIP 0", "VIP 1", "VIP 2", "VIP 3", "VIP 4"]) // Calculate moving averages fastMA = ta.ema(close, fastLength) slowMA = ta.ema(close, slowLength) // Calculate RSI rsi = ta.rsi(close, rsiLength) // Trading conditions longCondition = (fastMA > slowMA) and (rsi < rsiLowerThreshold) shortCondition = (fastMA < slowMA) and (rsi > rsiUpperThreshold) // Set commission based on Bybit account level commissionPerc = switch bybitAccountLevel "VIP 0" => 0.075 "VIP 1" => 0.065 "VIP 2" => 0.055 "VIP 3" => 0.045 "VIP 4" => 0.035 => 0.075 // Calculate entry prices with commission var float longEntryPrice = na var float shortEntryPrice = na longEntryPriceWithCommission = close * (1 + commissionPerc / 100) shortEntryPriceWithCommission = close * (1 - commissionPerc / 100) // Calculate take profit and stop loss prices takeProfitPrice(entryPrice) => entryPrice * (1 + takeProfitPerc / 100) stopLossPrice(entryPrice) => entryPrice * (1 - stopLossPerc / 100) // Plot entry prices plotchar(longCondition, title="Long Entry Price", char="LE", location=location.belowbar, color=color.green) plotchar(shortCondition, title="Short Entry Price", char="SE", location=location.abovebar, color=color.red) // Draw position on the chart longColor = color.green shortColor = color.red profitColor = color.new(color.green, 80) lossColor = color.new(color.red, 80) plotshape(longCondition and strategy.position_size > 0, title="Long Position", text="Long", location=location.belowbar, style=shape.labelup, size=size.small, color=longColor, textcolor=color.white) plotshape(shortCondition and strategy.position_size < 0, title="Short Position", text="Short", location=location.abovebar, style=shape.labeldown, size=size.small, color=shortColor, textcolor=color.white) if (strategy.position_size > 0) line.new(bar_index, longEntryPrice, bar_index + 1, longEntryPrice, color=longColor, width=2) longProfitLine = line.new(bar_index, takeProfitPrice(longEntryPrice), bar_index + 1, takeProfitPrice(longEntryPrice), color=profitColor, width=1) longLossLine = line.new(bar_index, stopLossPrice(longEntryPrice), bar_index + 1, stopLossPrice(longEntryPrice), color=lossColor, width=1) else if (strategy.position_size < 0) line.new(bar_index, shortEntryPrice, bar_index + 1, shortEntryPrice, color=shortColor, width=2) shortProfitLine = line.new(bar_index, stopLossPrice(shortEntryPrice), bar_index + 1, stopLossPrice(shortEntryPrice), color=profitColor, width=1) shortLossLine = line.new(bar_index, takeProfitPrice(shortEntryPrice), bar_index + 1, takeProfitPrice(shortEntryPrice), color=lossColor, width=1) // Entry if (longCondition) strategy.entry("Long", strategy.long) longEntryPrice := longEntryPriceWithCommission else if (shortCondition) strategy.entry("Short", strategy.short) shortEntryPrice := shortEntryPriceWithCommission