এই কৌশলটি বাজারের প্রবণতা এবং সম্ভাব্য ট্রেডিং সুযোগগুলি সনাক্ত করতে অ্যারন সূচক এবং পরম শক্তি হিস্টোগ্রাম (এএসএইচ) একত্রিত করে। অ্যারন প্রবণতা এবং দিক নির্ধারণে সহায়তা করে, যখন এএসএইচ গতির শক্তি সম্পর্কে অন্তর্দৃষ্টি সরবরাহ করে। এই সূচকগুলি একত্রিত করে, কৌশলটি ইথেরিয়াম বাজারে লাভজনক বাণিজ্য ক্যাপচার করার লক্ষ্য রাখে।
কৌশলটি অ্যারুন সূচকের জন্য দুটি প্যারামিটার ব্যবহার করেঃ
ASH 9 বার দৈর্ঘ্যের সাথে গণনা করা হয়, যা তথ্য উৎস হিসাবে বন্ধের মূল্য ব্যবহার করে।
এই কৌশলটিতে নির্দিষ্ট প্রবেশ ও প্রস্থানের নিয়ম অন্তর্ভুক্ত রয়েছেঃ
এই কৌশলটির প্রধান সুবিধা হল দুটি সূচককে একত্রিত করে সিনার্জি। অ্যারন কার্যকরভাবে প্রবণতা দিক এবং শক্তি পরিমাপ করে। এএসএইচ টাইমিং এন্ট্রি এবং প্রস্থান সংকেতগুলির সাথে সহায়তা করার জন্য অতিরিক্ত গতির অন্তর্দৃষ্টি সরবরাহ করে।
দুইটি অ্যারন পরামিতি ব্যবহার করে বাজারের পরিবর্তিত অবস্থার সাথে মানিয়ে নিতে নমনীয়তা প্রদান করা হয়।
মূল সীমাবদ্ধতাগুলি সূচকগুলির থেকে উদ্ভূত হয়। অ্যারন ব্যাপ্তি-সীমাবদ্ধ বাজারের সময় লড়াই করে এবং মিথ্যা সংকেত তৈরি করতে পারে। এএসএইচ স্বল্পমেয়াদে অতিরিক্ত প্রতিক্রিয়াশীল হওয়ার প্রবণতাও রয়েছে।
অনুপযুক্ত প্যারামিটার সেটিংগুলি কর্মক্ষমতাকেও প্রভাবিত করতে পারে। আদর্শ সমন্বয়গুলি খুঁজে পেতে অ্যারুনের দীর্ঘ / সংক্ষিপ্ত সময়কাল এবং এএসএইচ দৈর্ঘ্যের অপ্টিমাইজেশান প্রয়োজন।
অতিরিক্ত ফিল্টার যুক্ত করা যেতে পারে, যেমন দামের ভাঙ্গন বা ভলিউম বৃদ্ধি, অস্থির অবস্থার সময় মিথ্যা সংকেত এড়াতে।
সর্বোত্তম সেটিংস খুঁজে পেতে বিভিন্ন পরামিতি সংমিশ্রণ এবং ওজন পরীক্ষা করা যেতে পারে। আরএসআই বা কেডি এর মতো অন্যান্য সূচকগুলিও কৌশলটি পরিপূরক করতে পারে।
কৌশলটি কার্যকরভাবে প্রবণতা এবং পালা পয়েন্টগুলির দ্বৈত নিশ্চিতকরণের জন্য অ্যারন এবং এএসএইচ এর শক্তিকে একত্রিত করে। তবে পরামিতি এবং সূচক সীমাবদ্ধতার এখনও পরিমার্জন প্রয়োজন। সৃজনশীল ধারণাটি আরও উন্নতি এবং পরীক্ষার প্রতিশ্রুতি দেয়।
/*backtest start: 2023-03-05 00:00:00 end: 2024-03-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © IkkeOmar //@version=5 strategy("Aroon and ASH strategy - ETHERIUM [IkkeOmar]", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=1, commission_value=0, slippage=2) // AROON SETTINGS ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ // Inputs for longs length_upper_long = input.int(56, minval=15) length_lower_long = input.int(20, minval=5) // Inputs for shorts //Aroon Short Side Inputs length_upper_short = input.int(17, minval=10) length_lower_short = input.int(55) // ABSOLUTE STRENGTH HISTOGRAM SETTINGS ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ length = input(title='Length', defval=9) src = input(title='Source', defval=close) // CALCULATIONS: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ // Aroon upper_long = 100 * (ta.highestbars(high, length_upper_long + 1) + length_upper_long) / length_upper_long lower_long = 100 * (ta.lowestbars(low, length_lower_long + 1) + length_lower_long) / length_lower_long upper_short = 100 * (ta.highestbars(high, length_upper_short + 1) + length_upper_short) / length_upper_short lower_short = 100 * (ta.lowestbars(low, length_lower_short + 1) + length_lower_short) / length_lower_short // Ahrens Moving Average ahma = 0.0 ahma := nz(ahma[1]) + (src - (nz(ahma[1]) + nz(ahma[length])) / 2) / length // CONDITIONS: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ // Options that configure the backtest start date startDate = input(title='Start Date', defval=timestamp('01 Jan 2018 00:00')) // Option to select trade directions tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Long') // Translate input into trading conditions longOK = tradeDirection == 'Long' or tradeDirection == 'Both' shortOK = tradeDirection == 'Short' or tradeDirection == 'Both' // Check if the close time of the current bar falls inside the date range inDateRange = true longCondition = ta.crossover(upper_long, lower_long) and inDateRange and lower_long >= 5 and longOK longCloseCondition = ta.crossunder(upper_long, lower_long) and inDateRange shortCondition = ta.crossunder(upper_short, lower_short) and inDateRange and shortOK shortCloseCondition = ta.crossover(upper_short, lower_short) and inDateRange // Start off with the initial states for the longs and shorts var in_short_trade = false var in_long_trade = false var long_signal = false var short_signal = false if longCondition long_signal := true if longCloseCondition long_signal := false if shortCondition short_signal := true if shortCloseCondition short_signal := false // While no trades active and short condition is met, OPEN short if true and in_short_trade == false and in_long_trade == false and shortCondition strategy.entry("short", strategy.short, when = shortCondition) in_short_trade := true in_long_trade := false // While no trades and long condition is met, OPEN LONG if true and in_short_trade == false and in_long_trade == false and longCondition strategy.entry("long", strategy.long, when = longCondition) in_long_trade := true in_short_trade := false // WHILE short trade and long condition is met, CLOSE SHORT and OPEN LONG if true and in_short_trade == true and in_long_trade == false and longCondition // strategy.close("short", when = longCondition) strategy.entry("long", strategy.long, when = longCondition) in_short_trade := false in_long_trade := true // WHILE long trade and short condition is met, CLOSE LONG and OPEN SHORT if true and in_short_trade == false and in_long_trade == true and shortCondition // strategy.close("long", when = shortCondition) strategy.entry("short", strategy.short, when = shortCondition) in_short_trade := true in_long_trade := false // WHILE long trade and exit long condition is met, CLOSE LONG // if short signal is active, OPEN SHORT if true and in_short_trade == false and in_long_trade == true and longCloseCondition if short_signal strategy.entry("short", strategy.short, when = short_signal) in_long_trade := false in_short_trade := true else strategy.close("long", when = longCloseCondition) in_long_trade := false in_short_trade := false // if in short trade only and exit short condition is met, close the short // if long signal still active, OPEN LONG if true and in_short_trade == true and in_long_trade == false and shortCloseCondition if long_signal strategy.entry("long", strategy.long, when = long_signal) in_short_trade := false in_long_trade := true else strategy.close("short", when = shortCloseCondition) in_short_trade := false in_long_trade := false