এই নিবন্ধটি মূলত একটি ট্রেডিং কৌশল বর্ণনা করে যা আপেক্ষিক শক্তি সূচক (আরএসআই) এবং ফিবোনাচি পুনরুদ্ধারের স্তরগুলিকে একত্রিত করে। কৌশলটি প্রথমে একটি নির্দিষ্ট সময়ের মধ্যে ঐতিহাসিক মূল্য গতিশীলতার উপর ভিত্তি করে মূল ফিবোনাচি পুনরুদ্ধারের স্তরগুলি গণনা করে এবং তারপরে ট্রেডিং সংকেত তৈরি করতে বাজারটি পুনরুদ্ধারের স্তরের কাছাকাছি অতিরিক্ত ক্রয় বা oversold কিনা তা বিচার করতে আরএসআই সূচক ব্যবহার করে।
এই কৌশলটির মূল নীতিগুলি হলঃ
একটি নির্দিষ্ট সময়ের (যেমন 200 বার) দামের তথ্য ব্যবহার করে সেই সময়ের জন্য মধ্যম মূল্য, স্ট্যান্ডার্ড ডিভিয়েশন এবং মূল ফিবোনাচি রিট্র্যাকশন স্তর (যেমন 0.764) গণনা করা হয়;
যখন মূল্য উপরের বা নীচের পুনরুদ্ধারের স্তরের কাছাকাছি আসে, তখন RSI সূচকটি ব্যবহার করে নির্ধারণ করা হয় যে এই স্তরের আশেপাশে অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয় অবস্থা আছে কিনা;
যদি RSI সূচকটি অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয়ের সংকেত দেখায়, তবে পুনর্নির্মাণের স্তরের আশেপাশে দীর্ঘ বা সংক্ষিপ্ত সংকেত তৈরি হবে;
স্টপ লস সেট করুন এবং যখন মূল্য পূর্বনির্ধারিত স্তর অতিক্রম করে বা স্টপ লস ট্রিগার হয় তখন অবস্থান বন্ধ করতে মুনাফা নিন।
এই কৌশল অনুসারে ট্রেডিংয়ের সুযোগগুলি চিহ্নিত করার জন্য উপরেরটি হল প্রাথমিক কর্মপ্রবাহ।
RSI বা ফিবোনাচি এককভাবে ব্যবহার করার তুলনায়, এই সমন্বিত কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ
ডাবল ইন্ডিকেটর ফিল্টারিং মিথ্যা সংকেত হ্রাস করতে পারে এবং সংকেতের গুণমান উন্নত করতে পারে;
ফিবোনাচি রিট্র্যাকশন স্তরে ট্রেডিং একটি ক্লাসিক্যাল টেকনিক্যাল অ্যানালিসিস কৌশল।
স্টপ লস এবং লভ্যাংশ গ্রহণের গতিতে, ট্রেড প্রতি সর্বোচ্চ ক্ষতি কার্যকরভাবে নিয়ন্ত্রণ করা যেতে পারে;
প্যারামিটারগুলি বিভিন্ন সময়কাল এবং পণ্যগুলির জন্য অনুকূলিত করা যেতে পারে।
এই কৌশলটির জন্য কিছু ঝুঁকিও রয়েছেঃ
মূল স্তরে বিপরীতমুখী হওয়ার সম্ভাবনা ১০০% নয়, এটিকে মূল্যের ক্রিয়াকলাপের সাথে একত্রিত করতে হবে;
এককালীন আরএসআই মৃত বিড়ালের বাউন্স থেকে মিথ্যা সংকেত তৈরি করতে পারে, একাধিক সময়সীমার বৈধতা বিবেচনা করুন;
স্টপ লস সেটিং হ্রাস বাড়িয়ে তুলতে পারে;
দামের অস্থিরতা চলাকালীন স্টপগুলি চালানো যেতে পারে। বৃহত্তর স্টপগুলি বিবেচনা করা উচিত।
এই ঝুঁকিগুলি প্যারামিটার টিউনিং, সূচক সংমিশ্রণের অপ্টিমাইজেশান ইত্যাদির মাধ্যমে পরিচালিত হতে পারে।
আরও অপ্টিমাইজেশনের ক্ষেত্রগুলির মধ্যে রয়েছেঃ
কম ভলিউমের সাথে মিথ্যা ব্রেকআউট এড়াতে ভলিউম সূচক যুক্ত করুন;
ব্যান্ড ব্রেকআউটের সংকেতগুলির জন্য বোলিংজার ব্যান্ড বিবেচনা করুন;
স্বয়ংক্রিয়ভাবে উচ্চ মানের ট্রেডিং সুযোগ সনাক্ত করতে মেশিন লার্নিং মডেল তৈরি করা;
অটো প্যারামিটার টিউনিং এবং স্টপ লস/লাভের মাত্রা সামঞ্জস্য করার জন্য জেনেটিক অ্যালগরিদম ব্যবহার করুন।
এই নিবন্ধটি একটি পরিমাণগত ট্রেডিং কৌশল বিশদভাবে বর্ণনা করে যা আরএসআই এবং ফিবোনাচি পুনরুদ্ধার বিশ্লেষণকে একত্রিত করে। দ্বৈত সূচক বিশ্লেষণ এবং ক্লাসিকাল প্রযুক্তিগত কৌশলগুলি মিশ্রিত করে, কৌশলটি পরিচালিত ঝুঁকিগুলির অধীনে সংকেতের গুণমান উন্নত করে। চলমান পরামিতি টিউনিং এবং মডেল অপ্টিমাইজেশনের মাধ্যমে আরও পারফরম্যান্স লাভ অর্জন করা যেতে পারে।
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Gab Fib + RSI", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=1000, currency=currency.USD, commission_type=strategy.commission.cash_per_order, commission_value=4) // Inputs timeFilter = year >= 2000 // Stop Loss stop_loss = input(title="SL in % of Instrum. i.e 1.5%=150pips", minval=0, step=0.1, defval=1.5) /100 // RSI Inputs len = input(title="[RSI] Length", minval=0, step=1, defval=14) overSold = input(title="[RSI] Over Sold %", defval=30) overBought = input(title="[RSI] Over Bought %", defval=70) // Fibonacci Levels length = input(title="[Fibonacci] Length", defval=200, minval=1) src = input(hlc3, title="[Fibonacci] Source") mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50) level = input(title="[Fibonacci] Level", defval=764) // Calculate Fibonacci basis = vwma(src, length) dev = mult * stdev(src, length) fu764= basis + (0.001*level*dev) fu1= basis + (1*dev) fd764= basis - (0.001*level*dev) fd1= basis - (1*dev) // Calculate RSI vrsi = rsi(close, len) // Calculate the Targets targetUp = fd764 targetDown = fu764 // Actual Targets bought = strategy.position_size[0] > strategy.position_size[1] exit_long = valuewhen(bought, targetUp, 0) sold = strategy.position_size[0] < strategy.position_size[1] exit_short = valuewhen(sold, targetDown, 0) // Calculate Stop Losses sl_long = close * (1-stop_loss) sl_short = close * (1+stop_loss) // Conditions to Open Trades openLong = low < fd1 and crossover(vrsi[1], overSold) openShort = high > fu1 and crossunder(vrsi[1], overBought) // Conditions to Close Trades closeLong = high > exit_long or sl_long closeShort = low < exit_short or sl_short //Rounding to MinTick value roundtargetUp = round_to_mintick(targetUp) roundtargetDown = round_to_mintick(targetDown) roundsllong = round_to_mintick(sl_long) roundslshort = round_to_mintick(sl_short) // Plots plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis") plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target") plot(fu1, color=color.red, linewidth=2, title="[Fibonacci Level] Top") plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target") plot(fd1, color=color.green, linewidth=2, title="[Fibonacci Level] Bottom") // Strategy Orders if timeFilter // Entry Orders strategy.entry(id="buy", long=true, when=openLong and high < targetUp, limit=close, alert_message="buy,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetUp)+",sl="+tostring(roundsllong)) strategy.entry(id="sell", long=false, when=openShort and low > targetDown, limit=close, alert_message="sell,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetDown)+",sl="+tostring(roundslshort)) // Exit Orders strategy.exit(id="closelong", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=sl_long, alert_message="closelong,"+tostring(syminfo.ticker)) strategy.exit(id="closeshort", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=sl_short, alert_message="closeshort,"+tostring(syminfo.ticker))