আরএসআই মুভিং এভারেজ ক্রসওভার কৌশল একটি কৌশল যা মূলত ক্রিপ্টোকারেন্সি ট্রেডিংয়ের জন্য ব্যবহৃত হয়। এটি আরএসআই সূচক এবং এর চলমান গড়ের মধ্যে ক্রসওভারের উপর ভিত্তি করে একটি চলমান গড় প্রয়োগ করে। এটিতে সূচকটিও অন্তর্ভুক্ত রয়েছে যা এটি তৈরি করা হয়েছে।
কৌশলটি প্রথমে আরএসআই সূচক গণনা করে। আরএসআই সূচক একটি নির্দিষ্ট সময়ের মধ্যে উপরের এবং নীচের গতির উপর ভিত্তি করে দামের শক্তি প্রতিফলিত করে। 70 এর উপরে আরএসআইকে অতিরিক্ত ক্রয় বলে মনে করা হয় এবং 30 এর নীচে অতিরিক্ত বিক্রি হয়।
তারপর, কৌশলটি আরএসআই সূচকটিতে একটি চলমান গড় প্রয়োগ করে। চলমান গড়টি এলোমেলো ওঠানামা ফিল্টার করতে পারে এবং প্রবণতার দিক নির্ধারণ করতে পারে। এখানে একটি 10-অবধি আরএসআই চলমান গড় সেট করা হয়।
যখন আরএসআই তার চলমান গড়ের উপরে অতিক্রম করে, এটি একটি ক্রয় সংকেত হিসাবে বিবেচিত হয়। যখন আরএসআই তার চলমান গড়ের নীচে অতিক্রম করে, এটি একটি বিক্রয় সংকেত হিসাবে বিবেচিত হয়। এই দুটি সংকেত অনুযায়ী ট্রেডিং পরিচালিত হয়।
কোডটিতে, দৈর্ঘ্য সময়ের সাথে RSI সূচকটি প্রথমে গণনা করা হয়। তারপরে RSI এর 10-অবধি চলমান গড় ma গণনা করা হয়। যখন ma rsi এর উপরে অতিক্রম করে, এটি কিনবে। যখন ma rsi এর নীচে অতিক্রম করে, এটি বিক্রি করবে।
এছাড়াও, কোডটি rsi এবং ma এর জন্য লাইন চার্ট, পাশাপাশি rsi-ma এর জন্য কলাম চার্ট প্লট করে। rsi = 70 এবং rsi = 30 এর জন্য বিভাজক লাইনগুলিও প্লট করা হয়। ক্রয় বা বিক্রয় করার সময় সংশ্লিষ্ট সংকেত তীরগুলি চার্টে চিহ্নিত করা হয়।
আরএসআই ওভারকুপেড এবং ওভারসোল্ড শর্তগুলি বিচার করতে পারে। চলমান গড়গুলি এলোমেলো ওঠানামা ফিল্টার করতে পারে। উভয়ের সমন্বয় প্রবণতা বিপরীত পয়েন্টগুলি সনাক্ত করতে পারে।
আরএসআই মুভিং এভারেজ ক্রসওভার একটি তুলনামূলকভাবে পরিপক্ক ট্রেডিং কৌশল ধারণা যা কিছু মিথ্যা সংকেত ফিল্টার করতে পারে।
কৌশল কোডটি সহজ এবং পরিষ্কার, সহজেই বোঝা যায়। ট্রেডিং সংকেতগুলি স্পষ্টভাবে পর্যবেক্ষণ করার জন্য প্লটিং ফাংশনটি সম্পূর্ণ।
এই কৌশলটি তুলনামূলকভাবে সুস্পষ্ট প্রবণতার সাথে ক্রিপ্টোকারেন্সিগুলির জন্য ভাল কাজ করে।
ভুল RSI এবং চলমান গড় সময়ের পরামিতিগুলি খুব বেশি ভুল সংকেত তৈরি করতে পারে।
কেবলমাত্র সূচক ক্রসওভারের উপর নির্ভর করে পুরোপুরি ফাঁদে পড়া এড়ানো সম্ভব নয়। প্রবণতা বিশ্লেষণ একত্রিত করা প্রয়োজন।
ট্রেডিং খরচ লাভের উপর কিছু প্রভাব ফেলতে পারে। অবস্থান আকার অপ্টিমাইজ করা প্রয়োজন।
ক্রিপ্টো মার্কেটের উচ্চ অস্থিরতা।
ঝুঁকি মোকাবেলা করার জন্য, সূচকগুলি অনুকূল করার জন্য পরামিতিগুলি সামঞ্জস্য করা যেতে পারে, অবস্থানের আকার হ্রাস করা যেতে পারে, স্টপ লস সেট করা যেতে পারে এবং প্রবণতা বিশ্লেষণ সংকেত ফিল্টার করতে ব্যবহার করা যেতে পারে।
বিভিন্ন সময়ের পরামিতিগুলির অধীনে আরএসআই এবং চলমান গড়ের সর্বোত্তম সমন্বয় গবেষণা করুন।
ট্রেন্ড শক্তিশালী হলে পজিশনের আকার বাড়ান এবং ট্রেন্ড অস্পষ্ট হলে হ্রাস করুন।
প্রবণতা অনুসরণ করতে গতিশীল স্টপ লস সেট করুন।
নতুন ট্রেডিং সিগন্যাল গঠনের জন্য অন্যান্য সূচকগুলির সাথে আরএসআই একত্রিত করার বিষয়ে গবেষণা করুন।
এই কৌশল ভিত্তিক মেশিন লার্নিং মডেলগুলি আবিষ্কার করুন জয় হার উন্নত করতে।
আরএসআই চলমান গড় ক্রসওভার কৌশলটি প্রবণতা এবং ফিল্টারিং সূচকগুলির সুবিধাগুলি একত্রিত করে, তুলনামূলকভাবে পরিপক্ক এবং নির্ভরযোগ্য। কৌশল যৌক্তিকতা সহজ এবং পরিষ্কার, এবং কোড বাস্তবায়নও বেশ সম্পূর্ণ। সামগ্রিকভাবে এটি একটি মোটামুটি ভাল ক্রিপ্টোকারেন্সি ট্রেডিং কৌশল। তবে প্রতিটি কৌশল অপ্টিমাইজেশনের প্রয়োজন। এটির জন্য ধ্রুবক পরীক্ষা এবং সমন্বয় প্রয়োজন, প্রবণতা বিশ্লেষণের সাথে মিলিয়ে, আরও ভাল কৌশল কর্মক্ষমতা অর্জনের জন্য।
/*backtest start: 2022-10-31 00:00:00 end: 2023-11-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("RSI w MA Strategy", shorttitle="RSI w MA Strategy", overlay=false, initial_capital=10000, currency='USD',process_orders_on_close=true) //TIME FRAME AND BACKGROUND CONTROL///////////////////////////////////////////// testStartYear = input(2019, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(01, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) testStopYear = input(2022, "Backtest Stop Year") testStopMonth = input(1, "Backtest Stop Month") testStopDay = input(1, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? color.teal : na //bgcolor(testPeriodBackgroundColor, transp=50) testPeriod() => true //////////////////////////////////////////////////////////////////////////////// src = close, len = input(27, minval=1, title="Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) window = input(10, "RSI MA Window") ma = sma(rsi,window) plot(rsi, color=color.orange) colorr= ma > rsi ? color.red : color.green plot(ma,color=colorr) band1 = hline(70) band0 = hline(30) fill(band1, band0, color=color.purple, transp=90) diff = rsi - ma plot(diff,style= plot.style_columns,transp=50,color = colorr) plotshape(crossunder(rsi,ma)?rsi:na,title="top",style=shape.triangledown,location=location.absolute,size=size.tiny,color=color.red,transp=0) plotshape(crossover(rsi,ma)?rsi:na,title="bottom",style=shape.triangleup,location=location.absolute,size=size.tiny,color=color.lime,transp=0) buySignal = crossover(rsi,ma) sellSignal = crossunder(rsi,ma) //TRADE CONTROL///////////////////////////////////////////////////////////////// if testPeriod() if buySignal strategy.close("Short", qty_percent = 100, comment = "Close Short") strategy.entry("Long", strategy.long, qty=.1) if sellSignal strategy.close("Long", qty_percent = 100, comment = "Close Long") strategy.entry("Short", strategy.short, qty=.1) ////////////////////////////////////////////////////////////////////////////////