হোল্ড গ্রাইল কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১২-০১ ১৫ঃ২৭ঃ৩৯
ট্যাগঃ

img

হোল্ড গ্রাইল কৌশল

হোল্ড গ্রাইল কৌশল হল একটি পরিমাণগত ট্রেডিং কৌশল যা ADX সূচকের সাথে একটি দ্বৈত চলমান গড় সিস্টেমকে একত্রিত করে। এটি প্রবণতার দিকনির্দেশ এবং শক্তি সনাক্ত করতে এবং প্রবণতা বিপরীত সময়ে বাণিজ্য করার লক্ষ্যে।

কৌশল নীতি

এই কৌশলটি প্রবেশের সুযোগগুলি চিহ্নিত করতে ২০ দিনের এক্সপোনেন্সিয়াল মুভিং এভারেজ (ইএমএ) এবং এডিএক্স সূচক উভয়ই ব্যবহার করে। বিশেষত, এটি নিম্নলিখিত দুটি ক্ষেত্রে ট্রেডিং সংকেত জারি করবেঃ

  1. যখন ADX মান 30 এর নিচে থাকে (এটি একটি দুর্বল প্রবণতা নির্দেশ করে) এবং দাম 20 দিনের EMA এর নিচে থেকে ভেঙে যায়, তখন লম্বা হয়;

  2. যখন ADX মান 30 এর উপরে থাকে (এটি একটি শক্তিশালী প্রবণতা নির্দেশ করে) এবং দাম উপরে থেকে 20 দিনের EMA অতিক্রম করে, শর্ট যান।

এটি দেখা যায় যে এই কৌশলটি প্রবণতার শক্তি এবং দিক নির্ধারণের জন্য এডিএক্সের উপর নির্ভর করে এবং তারপরে বিপরীতমুখী সুযোগগুলি সন্ধান করার জন্য চলমান গড়ের সমর্থন এবং প্রতিরোধের সংমিশ্রণ করে। এটি প্রবণতা অনুসরণ এবং গড় বিপরীতমুখী ধারণাগুলিকে সংহত করে।

সুবিধা বিশ্লেষণ

হোল্ড গ্রাইল কৌশলটির সবচেয়ে বড় সুবিধা হল যে এটি প্রবণতার দিক এবং শক্তি উভয়কেই বিবেচনা করে, যা কার্যকরভাবে মিথ্যা ব্রেকআউট এড়াতে এবং স্টপ লস হওয়ার সম্ভাবনা হ্রাস করতে পারে। বিশেষত, এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছেঃ

  1. একটি দ্বৈত চলমান গড় সিস্টেম ব্যবহার করে প্রবণতা কার্যকরভাবে সনাক্ত করা যায়;
  2. ট্রেন্ডের শক্তি মূল্যায়নের জন্য ADX-এর সাহায্যে অবৈধ ব্রেকআউট এড়ানো যায়;
  3. বিপরীতমুখী এবং প্রবণতা ট্রেডিং ধারণাগুলির সমন্বয় উভয়ই প্রবণতা ক্যাপচার করতে পারে এবং বাঁক পয়েন্টগুলিতে বিপরীতমুখী হতে পারে;
  4. অপারেশন নিয়মগুলি পরিষ্কার এবং সহজ, বাস্তবায়ন করা সহজ।

ঝুঁকি বিশ্লেষণ

হোল্ড গ্রাইল স্ট্র্যাটেজিতে কিছু ঝুঁকিও রয়েছে, প্রধানত নিম্নলিখিত ক্ষেত্রেঃ

  1. ADX একটি সহায়ক বিচার সূচক হিসাবে ভুল সংকেত জারি করবে;
  2. দ্বৈত চলমান গড়ের ক্রসওভারগুলি ছোট র্যালির কারণে ক্ষতি সম্পূর্ণরূপে এড়াতে পারে না;
  3. অনুপযুক্ত প্যারামিটার সেটিং (যেমন ADX লক্ষ্যমাত্রা মান, চলমান গড় সময়কাল, ইত্যাদি) সিগন্যালগুলি খুব ঘন ঘন বা সংরক্ষণশীল হতে পারে।

উপরের ঝুঁকিগুলি হ্রাস করার জন্য, সর্বোত্তম প্রভাব অর্জনের জন্য পরামিতিগুলি সামঞ্জস্য করা যেতে পারে। একক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লসও সেট করা যেতে পারে। তদতিরিক্ত, বিভিন্ন জাত এবং চক্রগুলিতে কৌশলগুলি পরীক্ষা করাও প্রয়োজনীয়।

অপ্টিমাইজেশান নির্দেশাবলী

হোল্ড গ্রাইল কৌশলটির জন্য এখনও অনেক অপ্টিমাইজেশান দিক রয়েছেঃ

  1. বিভিন্ন ধরণের চলমান গড়, যেমন ওজনযুক্ত চলমান গড় ইত্যাদি ব্যবহার করে দেখুন।
  2. ADX লক্ষ্য মান একটি পরামিতি হিসাবে অপ্টিমাইজ করা যেতে পারে;
  3. বিভিন্ন চক্রের পরামিতি পরীক্ষা করা যেতে পারে, যেমন 10 দিনের, 30 দিনের EMA;
  4. ট্রেডিং সিগন্যাল নিশ্চিত করার জন্য অন্যান্য সহায়ক সূচক যেমন আরএসআই, বোলিংজার ব্যান্ড ইত্যাদি যোগ করা যেতে পারে।

প্যারামিটারগুলি সামঞ্জস্য করা বা নতুন সূচক যুক্ত করা কৌশলটির লাভজনকতা বা জয়ের হার বাড়িয়ে তুলতে পারে। তবে কোনও অপ্টিমাইজেশনের জন্য এর দৃust়তা নিশ্চিত করার জন্য পর্যাপ্ত ব্যাকটেস্টিং প্রয়োজন।

সংক্ষিপ্তসার

সংক্ষেপে, হোল্ড গ্রাইল কৌশলটি ডাবল মুভিং এভারেজ এবং এডিএক্স সূচকের সুবিধাগুলি একত্রিত করে এবং প্রবণতা বিপরীতমুখী ক্যাপচার করার জন্য পরিষ্কার ট্রেডিং নিয়ম ব্যবহার করে। এটি ভাল সম্পাদন করার সম্ভাবনা রয়েছে। তবে, ব্যবসায়ীদের এখনও বিভিন্ন বাজারের পরিবেশে অভিযোজিত হওয়ার জন্য প্যারামিটার সংমিশ্রণ এবং স্টপ লস নিয়মগুলি অনুকূল করতে হবে। তদতিরিক্ত, যতই উন্নত হোক না কেন, স্টপ লস সম্পূর্ণরূপে এড়ানো অসম্ভব, যা প্রতিটি ট্রেডিং কৌশল দ্বারা সম্মুখীন একটি দ্বিধা।


/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("LAT Holy Grail v3", overlay=true)

/////////////TEST TIME ////////////////////////
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(15, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(5, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
//////////////////////////////////////////////////////////////////////

myema= ema(close, 20)
plot(myema, color=green, title="eMA", linewidth=3)



//longCondition = (crossover(close, myema)) //and adx3 < target
//if (longCondition)
    //strategy.entry("My Long Entry Id", strategy.long)

//shortCondition = (crossunder(close, myema)) //and adx3 > target
//if (shortCondition)
    //strategy.entry("My Short Entry Id", strategy.short)
    
    //////////////////////////////////////////////////////////
    ///////////////////////////////////////   DMI  ///////////////////////////////////////////////
len3 = input(14, minval=1, title="DI Length")                           /////////////////////
lensig3 = input(14, title="ADX Smoothing", minval=1, maxval=50)         ////////////////////
up3 = change(high)                                                      ///////////////////
down3 = -change(low)                                                    //////////////////
plusDM3 = na(up3) ? na : (up3 > down3 and up3 > 0 ? up3 : 0)            /////////////////
minusDM3 = na(down3) ? na : (down3 > up3 and down3 > 0 ? down3 : 0)     ////////////////
trur3 = rma(tr, len3)                                                   ///////////////
plus3 = fixnan(100 * rma(plusDM3, len3) / trur3)                        //////////////
minus3 = fixnan(100 * rma(minusDM3, len3) / trur3)                      /////////////
sum3 = plus3 + minus3                                                   ////////////
adx3 = 100 * rma(abs(plus3 - minus3) / (sum3 == 0 ? 1 : sum3), lensig3) ///////////
//plot(plus3, color=green, style=circles, linewidth=2, title="+DI")     //////////
//plot(minus3, color=red, style=circles, linewidth=2, title="-DI")      /////////
plot(adx3, color=aqua, style=line, linewidth=3, title="ADX")            ////////
target = input(30, title=" ADX Target Line")                            ///////
plot(target, color=yellow, title="ADX Target Line")                     //////
/////////////////////////////////////////////////////////////////////////////////////////////////
                                                                                        
plot(hl2)


///////////////////////////////////////////////  eMA SIGNAL LINE   ///////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////// HOLY GRAIL STRATEGY ///////////////////////////////////////////////////////////////////

if (adx3 <= target) and crossover(close, myema)
    strategy.entry("HolyGrail", strategy.long, comment="Long")
 
if (adx3 >= target) and crossunder(close, myema)
    strategy.entry("HolyGrail", strategy.short, comment="Short")
    


আরো