একটি দ্বি-মুখী RSI ব্রেকআউট কৌশল ব্যবহার করা


সৃষ্টির তারিখ: 2023-12-27 14:33:15 অবশেষে সংশোধন করুন: 2023-12-27 14:33:15
অনুলিপি: 0 ক্লিকের সংখ্যা: 974
1
ফোকাস
1623
অনুসারী

একটি দ্বি-মুখী RSI ব্রেকআউট কৌশল ব্যবহার করা

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি মূলত আরএসআই সূচকের উপর নির্ভর করে। আরএসআই সূচকটি একটি নির্দিষ্ট সময়ের মধ্যে বন্ধের দামের পরিবর্তনের উপর ভিত্তি করে গণনা করা হয়, যা শেয়ারের ক্রয়-বিক্রয় শক্তিকে প্রতিফলিত করে। যখন আরএসআইয়ের উপরে সেট করা আপ-থ্রো (ডিফল্ট 75) অতিক্রম করে, তখন শেয়ারটি ওভারবোর অঞ্চলে প্রবেশ করে; যখন আরএসআইয়ের নীচে সেট করা ডাউন-থ্রো (ডিফল্ট 25) অতিক্রম করে, তখন শেয়ারটি ওভারসোল অঞ্চলে প্রবেশ করে।

কৌশলগত বিচারের নিয়মঃ

  1. আরএসআই-এর পতনের সময় শূন্য;
  2. আরএসআই-এর নিচে নেমে গেলে, আরও বেশি কাজ করুন।
  3. স্টপ লস বা স্টপ ব্লক পরে পজিশন সমতল করুন।

এর ট্রেডিং লজিকটি সহজ এবং স্পষ্ট, রেফারেন্স প্যারামিটারগুলি যুক্তিসঙ্গতভাবে সেট করা হয়েছে, এবং এটির আকারটি বড়, যা বাজারের বৃহত্তর প্রবণতা ক্যাপচার করার জন্য উপযুক্ত।

সামর্থ্য বিশ্লেষণ

এই কৌশলটির সুবিধাগুলো হলঃ

  1. এর অর্থ হচ্ছে, এটি সহজ, সহজেই বোঝা যায় এবং বাস্তবায়িত হয়।
  2. রেফারেন্স প্যারামিটারগুলি যুক্তিসঙ্গতভাবে সেট করা হয়েছে এবং ব্যক্তিগতকৃত কনফিগারেশন করা হয়েছে;
  3. এটির সাথে, আপনি আপনার ট্রেডিং সিস্টেমকে আরও উন্নত করতে পারেন।
  4. এটি মূল্যের বিপর্যয় চিহ্নিত করতে এবং প্রবণতা শনাক্ত করতে সাহায্য করে।

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

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

যদিও এই কৌশলটি সহজ এবং নির্ভরযোগ্য, আমরা এর সম্ভাব্য ঝুঁকিগুলিকে উপেক্ষা করতে পারি নাঃ

  1. আরএসআই সূচকটি ভুল সংকেত দেওয়ার সম্ভাবনা বেশি। আরএসআই পুরোপুরি পূর্বাভাস দিতে পারে না যে দামের বিপর্যয় ঘটতে পারে।
  2. প্রবণতা চলাকালীন ধারাবাহিক ক্ষতির সম্ভাবনা। RSI সূচকটি স্বাভাবিক পরিসীমা সংশোধন এবং প্রবণতা বিপরীতকরণের মধ্যে পার্থক্য করতে পারে না।
  3. ধাক্কাধাক্কা চলাকালীন আরও বেশি লোকসান ঘটে। আরএসআই সূচকটি ধাক্কাধাক্কা চলার বিষয়ে কার্যকরভাবে বিচার করতে পারে না, এই পরিবেশে কৌশলগত ক্ষতি বৃদ্ধি পায়।

এই ঝুঁকি নিয়ন্ত্রণের জন্য, আমাদের নিম্নলিখিত বিষয়গুলি মনে রাখতে হবেঃ

  1. ভুল বোঝাবুঝির উচ্চ হার রোধ করতে প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করুন;
  2. ট্রেডিং সিগন্যাল নিশ্চিতকরণের জন্য অন্যান্য সূচকগুলির সাথে মিলিতভাবে সঠিকতা বাড়ানো;
  3. একক স্টপ লস কমানোর জন্য স্টপ লস রেট বাড়ানো।
  4. তাই সতর্কতা অবলম্বন করুন এবং ঝুঁকিপূর্ণ লেনদেন এড়ান।

অপ্টিমাইজেশান দিক

এই কৌশলটি মূলত বিপরীত দিকের ভুল বিচার এবং অস্থিরতার ক্ষতির ঝুঁকির সাথে মোকাবিলা করে, আমরা নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করতে পারিঃ

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-12-19 00:00:00
end: 2023-12-26 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI Algo", overlay=true)

// Calculate start/end date and time condition
DST = 1 //day light saving for usa
//--- Europe
London = iff(DST==0,"0000-0900","0100-1000")
//--- America
NewYork = iff(DST==0,"0400-1500","0500-1600")
//--- Pacific
Sydney = iff(DST==0,"1300-2200","1400-2300")
//--- Asia
Tokyo = iff(DST==0,"1500-2400","1600-0100")

//-- Time In Range
timeinrange(res, sess) => time(res, sess) != 0

london = timeinrange(timeframe.period, London)
newyork = timeinrange(timeframe.period, NewYork)

time_cond = true


myPeriod = input(defval=14, type=input.integer, title="Period")
myThresholdUp = input(defval=75, type=input.float, title="Upper Threshold")
myThresholdDn = input(defval=25, type=input.float, title="Lower Threshold")
myAlgoFlipToggle = input(defval=false, type=input.bool, title="Imverse Algorthim")
myLineToggle = input(defval=true, type=input.bool, title="Show Lines")
myLabelToggle = input(defval=true, type=input.bool, title="Show Labels")
myRSI=rsi(close, myPeriod)
buy = myAlgoFlipToggle ? falling(myRSI,1) and cross(myRSI, myThresholdDn) : rising(myRSI, 1) and cross(myRSI,myThresholdUp) //and time_cond
sell = myAlgoFlipToggle ? rising(myRSI, 1) and cross(myRSI,myThresholdUp) : falling(myRSI,1) and cross(myRSI, myThresholdDn) //and time_cond
myPosition = 0
myPosition := buy==1 ? 0 : sell==1 or myPosition[1]==1 ? 1 : 0
trendColor = buy ? color.red : sell ? color.green : na
plot(myLineToggle ? buy and myPosition[1]==1 ? low - 0.004: sell and myPosition[1]==0 ? high + 0.004 : na : na, color=trendColor, style=plot.style_line, linewidth=4, editable=false)
plotshape(myLabelToggle ? buy and myPosition[1]==1 ? low - 0.005 : na : na, style=shape.labelup, location=location.absolute, text="Buy", transp=0, textcolor = color.white, color=color.black, editable=false)
plotshape(myLabelToggle ? sell and myPosition[1]==0 ? high + 0.005 : na : na, style=shape.labeldown, location=location.absolute, text="Sell", transp=0, textcolor = color.white, color=color.black, editable=false)

strategy.initial_capital = 50000
    //Calculate the size of the next trade
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit          //floating profit/loss
risk = input(2,type=input.float,title="Risk %")/100           //risk % per trade
isTwoDigit = input(false,"Is this a 2 digit pair? (JPY, XAU, XPD...")


stop = input(250, title="stop loss pips")
tp = input(2500, title="take profit pips")
if(isTwoDigit)
    stop := stop/100
    
temp01 = balance * risk     //Risk in USD
temp02 = temp01/stop        //Risk in lots
temp03 = temp02*100000      //Convert to contracts
size = 1
    
strategy.entry("long",1,size,when=buy and myPosition[1]==1 )
strategy.entry("short",0,size,when=sell and myPosition[1]==0)

strategy.exit("exit_long","long",loss=stop, profit=tp)      //Long exit (stop loss)
strategy.exit("exit_short","short",loss=stop, profit=tp)      //Short exit (stop loss)

//strategy.close_all(when= not time_cond)