এই কৌশলটি একটি মাল্টি-লেভেল গড় বিপরীতমুখী ট্রেডিং সিস্টেম যা আরএসআই সূচক এবং মূল্যের অস্থিরতার উপর ভিত্তি করে। এটি চরম আরএসআই মান এবং অস্বাভাবিকভাবে বড় দামের ওঠানামা প্রবেশের সংকেত হিসাবে ব্যবহার করে, যখন ঝুঁকি পরিচালনা এবং রিটার্নগুলি অনুকূল করার জন্য পিরামিড-শৈলী অবস্থান স্কেলিং এবং গতিশীল লাভের মাত্রা ব্যবহার করে। এই কৌশলটির মূল ধারণাটি চরম অস্থিরতা এবং মুনাফা চলাকালীন বাজারে প্রবেশ করা যখন দামগুলি স্বাভাবিক স্তরে ফিরে আসে।
প্রবেশের শর্ত:
অবস্থান স্কেলিং প্রক্রিয়াঃ
প্রস্থান প্রক্রিয়াঃ
ঝুঁকি নিয়ন্ত্রণঃ
মাল্টি-লেভেল এন্ট্রিঃ একাধিক আরএসআই এবং অস্থিরতার থ্রেশহোল্ডিং সেট করে, কৌশলটি বাজারের বিভিন্ন মাত্রার চরমকে ধরতে পারে, ট্রেডিং সুযোগ বৃদ্ধি করে।
ডায়নামিক টেক-প্রোফিটঃ সমর্থন/প্রতিরোধ স্তরের উপর ভিত্তি করে গণনা করা টেক-প্রোফিট পয়েন্টগুলি বাজারের কাঠামোর সাথে স্বয়ংক্রিয়ভাবে মানিয়ে নিতে পারে, খুব তাড়াতাড়ি বেরিয়ে না গিয়ে মুনাফা রক্ষা করে।
পিরামিড স্টাইলের পজিশন স্কেলিংঃ প্রবণতা অব্যাহত থাকায় পজিশন বৃদ্ধি লাভের সম্ভাবনাকে উল্লেখযোগ্যভাবে বাড়িয়ে তুলতে পারে।
ঝুঁকি ব্যবস্থাপনাঃ নির্দিষ্ট শতাংশ ঝুঁকি এবং সর্বোচ্চ পজিশন সীমা কার্যকরভাবে প্রতিটি বাণিজ্য এবং সামগ্রিকভাবে ঝুঁকি নিয়ন্ত্রণ করে।
নমনীয়তাঃ অনেকগুলি সামঞ্জস্যযোগ্য পরামিতি কৌশলকে বিভিন্ন বাজার পরিবেশ এবং ট্রেডিং সরঞ্জামগুলির সাথে খাপ খাইয়ে নিতে দেয়।
গড় বিপরীতমুখী + প্রবণতা অনুসরণঃ প্রধান প্রবণতা মিস না করে স্বল্পমেয়াদী বিপরীতমুখীগুলি ক্যাপচার করে গড় বিপরীতমুখী এবং প্রবণতা অনুসরণ করার সুবিধাগুলি একত্রিত করে।
ওভারট্রেডিংঃ অত্যন্ত অস্থির বাজারে ঘন ঘন ট্রেডিং সংকেত সক্রিয় করতে পারে, যার ফলে অত্যধিক ফি হতে পারে।
ভুয়া ব্রেকআউটঃ বাজারে খুব অস্থিরতা দেখা দিতে পারে, যার পরে দ্রুত বিপরীতমুখী হয়, যা মিথ্যা সংকেত সৃষ্টি করে।
ধারাবাহিক ক্ষতিঃ একাধিক পজিশনের বৃদ্ধির পর একমুখী বাজার চলার ফলে উল্লেখযোগ্য ক্ষতি হতে পারে।
প্যারামিটার সংবেদনশীলতাঃ কৌশল কর্মক্ষমতা প্যারামিটার সেটিংসে অত্যন্ত সংবেদনশীল হতে পারে, অতিরিক্ত ফিটিংয়ের ঝুঁকি।
স্লিপিং ইফেক্টঃ তীব্র অস্থিরতার সময়কালে গুরুতর স্লিপিংয়ের মুখোমুখি হতে পারে, যা কৌশল কার্যকারিতাকে প্রভাবিত করে।
বাজার পরিবেশের উপর নির্ভরশীলতাঃ কৌশলটি নির্দিষ্ট বাজারের পরিবেশে, যেমন কম অস্থিরতা বা শক্তিশালী প্রবণতা বাজারে দুর্বল হতে পারে।
ডায়নামিক প্যারামিটার সমন্বয়ঃ বাজারের অবস্থার উপর ভিত্তি করে RSI এবং অস্থিরতার প্রান্তিককে গতিশীলভাবে সামঞ্জস্য করার জন্য অভিযোজনশীল প্রক্রিয়া প্রবর্তন করুন।
মাল্টি-টাইমফ্রেম বিশ্লেষণঃ এন্ট্রি মান উন্নত করার জন্য দীর্ঘমেয়াদী বাজার প্রবণতা রায় অন্তর্ভুক্ত করুন।
স্টপ-লস অপ্টিমাইজেশনঃ ঝুঁকি নিয়ন্ত্রণের জন্য ট্রেলিং স্টপ-লস বা এটিআর-ভিত্তিক গতিশীল স্টপ-লস যুক্ত করুন।
মার্কেট স্টেট ফিল্টারিংঃ অনুপযুক্ত মার্কেট পরিবেশে ট্রেডিং এড়ানোর জন্য ট্রেন্ড শক্তি, অস্থিরতা চক্র এবং অন্যান্য ফিল্টারিং শর্ত অন্তর্ভুক্ত করুন।
মূলধন ব্যবস্থাপনা অপ্টিমাইজেশানঃ আরও বিস্তারিত পজিশন ম্যানেজমেন্ট বাস্তবায়ন করুন, যেমন বিভিন্ন সংকেত স্তরের উপর ভিত্তি করে বাণিজ্যের আকার সামঞ্জস্য করা।
মেশিন লার্নিং ইন্টিগ্রেশনঃ প্যারামিটার নির্বাচন এবং সংকেত উত্পাদন প্রক্রিয়া অপ্টিমাইজ করার জন্য মেশিন লার্নিং অ্যালগরিদম ব্যবহার করুন।
সংশ্লিষ্টতা বিশ্লেষণঃ কৌশল স্থিতিশীলতা এবং বৈচিত্র্য উন্নত করার জন্য অন্যান্য সম্পদগুলির সাথে সংশ্লিষ্টতা বিশ্লেষণ অন্তর্ভুক্ত করুন।
এই মাল্টি-লেভেল আরএসআই গড় বিপরীত ট্রেডিং কৌশল একটি সাবধানে পরিকল্পিত পরিমাণগত ট্রেডিং সিস্টেম যা বুদ্ধিমানভাবে প্রযুক্তিগত বিশ্লেষণ, গতিশীল ঝুঁকি ব্যবস্থাপনা, এবং পিরামিড-শৈলী অবস্থান স্কেলিং কৌশল একত্রিত করে। চরম বাজারের অস্থিরতা এবং মুনাফা যখন দাম বিপরীত হয় তখন ক্যাপচার করে, কৌশলটি শক্তিশালী মুনাফা সম্ভাবনা প্রদর্শন করে। তবে এটি ওভারট্রেডিং এবং বাজার পরিবেশের নির্ভরতার মতো চ্যালেঞ্জের মুখোমুখি হয়। ভবিষ্যতের অপ্টিমাইজেশানটি বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নেওয়ার জন্য কৌশলটির অভিযোজনযোগ্যতা এবং ঝুঁকি নিয়ন্ত্রণ ক্ষমতা উন্নত করার দিকে মনোনিবেশ করা উচিত। সামগ্রিকভাবে, এটি একটি শক্ত ভিত্তিযুক্ত কৌশল কাঠামো যা আরও অপ্টিমাইজেশন এবং ব্যাকটেস্টিংয়ের মাধ্যমে একটি শক্তিশালী ট্রেডিং সিস্টেমে বিকাশের সম্ভাবনা রয়েছে।
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Retorno_Pivots_5min_Novo_v3.3') // Input variables bars_left1 = input(1, title = "Entry - Pivot Left Bars") bars_right1 = input(1, title = "Entry - Pivot Right Bars") rsi20_longentry0 = input(35, title = "Entry 1 - RSI20 Long") rsi20_shortentry0 = input(65, title = "Entry 1 - RSI20 Short") bar_size_entry0 = input.float(1, title="Entry 1 - Bar Size") rsi20_longentry1 = input(30, title = "Entry 2 - RSI20 Long") rsi20_shortentry1 = input(70, title = "Entry 2 - RSI20 Short") bar_size_entry1 = input.float(0.8, title="Entry 2 - Bar Size") rsi20_longentry2 = input(25, title = "Entry 3 - RSI20 Long") rsi20_shortentry2 = input(75, title = "Entry 3 - RSI20 Short") bar_size_entry2 = input.float(0.7, title="Entry 3 - Bar Size") rsi20_longentry3 = input(20, title = "Entry 4 - RSI20 Long") rsi20_shortentry3 = input(80, title = "Entry 4 - RSI20 Short") bar_size_entry3 = input.float(0.5, title="Entry 4 - Bar Size") limit_perc1 = input.float(0.60, title="Profit Range 1") limit_perc2 = input.float(0.40, title="Profit Range 2") limit_perc3 = input.float(0.20, title="Profit Range 3") limit_perc4 = input.float(0.00, title="Profit Range 4") limit_perc5 = input.float(0.00, title="Profit Range 5") minimum_pivot_distance = input.float(0, title="Minimum Pivot Distance %") barsize_1h_input = input(288, title="Highest Bar Lookback") rsi20 = ta.rsi(close, 20) rsi200 = ta.rsi(close, 200) Pivot_High_Last1 = ta.valuewhen(ta.pivothigh(high, bars_left1, bars_right1), ta.pivothigh(high, bars_left1, bars_right1), 0) Pivot_Low_Last1 = ta.valuewhen(ta.pivotlow(low, bars_left1, bars_right1), ta.pivotlow(low, bars_left1, bars_right1), 0) barsize = math.abs(close - open) barsize_1h = ta.highest(barsize, barsize_1h_input) Bar0Long = rsi20 < rsi20_longentry0 and barsize >= (barsize_1h * bar_size_entry0) Bar1Long = rsi20 < rsi20_longentry1 and barsize >= (barsize_1h * bar_size_entry1) Bar2Long = rsi20 < rsi20_longentry2 and barsize >= (barsize_1h * bar_size_entry2) Bar3Long = rsi20 < rsi20_longentry3 and barsize >= (barsize_1h * bar_size_entry3) // Long Entries Long_Entry1 = strategy.opentrades == 0 and rsi20 < rsi20[1] and ((rsi20 < rsi20_longentry0 and barsize >= (barsize_1h * bar_size_entry0)) or (rsi20 < rsi20_longentry1 and barsize >= (barsize_1h * bar_size_entry1)) or (rsi20 < rsi20_longentry2 and barsize >= (barsize_1h * bar_size_entry2)) or (rsi20 < rsi20_longentry3 and barsize >= (barsize_1h * bar_size_entry3))) and close < (Pivot_Low_Last1 * (1 - (minimum_pivot_distance / 100))) Long_Entry2 = strategy.opentrades == 1 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long) Long_Entry3 = strategy.opentrades == 2 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long) Long_Entry4 = strategy.opentrades == 3 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long) Long_Entry5 = strategy.opentrades == 4 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long) if Long_Entry1 or Long_Entry2 or Long_Entry3 or Long_Entry4 or Long_Entry5 strategy.entry("Long", strategy.long, comment = "ENTER-LONG_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27") // Longs Exits Long_Exit1 = strategy.opentrades == 1 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc1)) Long_Exit2 = strategy.opentrades == 2 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc2)) Long_Exit3 = strategy.opentrades == 3 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc3)) Long_Exit4 = strategy.opentrades == 4 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc4)) Long_Exit5 = strategy.opentrades == 5 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc5)) if Long_Exit1 or Long_Exit2 or Long_Exit3 or Long_Exit4 or Long_Exit5 strategy.close("Long", comment = "EXIT-LONG_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27") Bar0Short = rsi20 > rsi20_shortentry0 and barsize >= (barsize_1h * bar_size_entry0) Bar1Short = rsi20 > rsi20_shortentry1 and barsize >= (barsize_1h * bar_size_entry1) Bar2Short = rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2) Bar3Short = rsi20 > rsi20_shortentry3 and barsize >= (barsize_1h * bar_size_entry3) // Short Entries Short_Entry1 = strategy.opentrades == 0 and rsi20 > rsi20[1] and ((rsi20 > rsi20_shortentry0 and barsize >= (barsize_1h * bar_size_entry0)) or (rsi20 > rsi20_shortentry1 and barsize >= (barsize_1h * bar_size_entry1)) or (rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2)) or (rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2))) and close > (Pivot_High_Last1 * (1 + (minimum_pivot_distance / 100))) Short_Entry2 = strategy.opentrades == 1 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short) Short_Entry3 = strategy.opentrades == 2 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short) Short_Entry4 = strategy.opentrades == 3 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short) Short_Entry5 = strategy.opentrades == 4 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short) if Short_Entry1 or Short_Entry2 or Short_Entry3 or Short_Entry4 or Short_Entry5 strategy.entry("Short", strategy.short, comment = "ENTER-SHORT_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27") // Short Exits Short_Exit1 = strategy.opentrades == 1 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc1)) Short_Exit2 = strategy.opentrades == 2 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc2)) Short_Exit3 = strategy.opentrades == 3 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc3)) Short_Exit4 = strategy.opentrades == 4 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc4)) Short_Exit5 = strategy.opentrades == 5 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc5)) if Short_Exit1 or Short_Exit2 or Short_Exit3 or Short_Exit4 or Short_Exit5 strategy.close("Short", comment = "EXIT-SHORT_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27") // Plots plot(rsi20, color=color.new(#fbff00, 0), linewidth=2) plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc1))), color=color.new(#00ff2a, 0), linewidth=2) plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc2))), color=color.new(#00ff2a, 50), linewidth=2) plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc3))), color=color.new(#00ff2a, 80), linewidth=2) plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc4))), color=color.new(#00ff2a, 100), linewidth=2) plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc1)), color=color.new(#ff0000, 0), linewidth=2) plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc2)), color=color.new(#ff0000, 50), linewidth=2) plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc3)), color=color.new(#ff0000, 80), linewidth=2) plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc4)), color=color.new(#ff0000, 100), linewidth=2) plot(strategy.position_avg_price, color=color.new(#ffc400, 0), linewidth=2) plot(strategy.opentrades * (strategy.position_size / math.abs(strategy.position_size)), color=color.new(#ff00bb, 0), linewidth=2) plot(((barsize / barsize_1h) * 100), color=color.new(#0000ff, 0), linewidth=2)