ADX + RSI কৌশল


সৃষ্টির তারিখ: 2023-09-27 16:27:39 অবশেষে সংশোধন করুন: 2023-09-27 16:27:39
অনুলিপি: 0 ক্লিকের সংখ্যা: 2077
1
ফোকাস
1617
অনুসারী

ওভারভিউ

এটি একটি প্রবণতা ট্র্যাকিং কৌশল যা ADX এবং RSI সূচকগুলিকে একত্রিত করে। এই কৌশলটি RSI কে ওভারসোল ওভারসোলের জন্য ব্যবহার করে এবং বাজারের প্রবণতা নির্ধারণের জন্য ADX ব্যবহার করে, যা প্রবণতাটি স্পষ্ট নয় এমন ট্রেডগুলিকে ফিল্টার করে, যা বাজারের ঝড়ের ফাঁদ এড়াতে কার্যকর।

কৌশল নীতি

  1. 7 চক্রের আরএসআই ব্যবহার করে ওভারবয় ওভারসোল্ড নির্ধারণ করুন
  • আরএসআই ৩০ এর নিচে ওভারসোল্ড
  • আরএসআই ৭০ এর উপরে থাকলে, এটাকে ওভারবয় বলা হয়।
  1. ADX ব্যবহার করে প্রবণতা নির্ধারণ
  • ADX 30 এর উপরে, প্রবণতা সুস্পষ্ট
  • ADX 30 এর নিচে, ট্রেন্ড অস্পষ্ট বলে মনে করা হয়
  1. প্রবেশের নিয়ম
  • আরএসআই ৩০ এর নিচে এবং এডিএক্স ৩০ এর উপরে থাকলে বেশি করুন
  • আরএসআই 70 এর উপরে এবং এডিএক্স 30 এর উপরে থাকলে শূন্য করুন
  1. স্টপ লস
  • একটি বিকল্প স্টপ-স্টপ পদ্ধতি রয়েছে, আপনি বন্ধ বন্ধ বা দোলন বন্ধ বন্ধ করতে পারেন
  • বন্ধের মূল্যের উপর ভিত্তি করে একটি বন্ধের স্টপ লস করা হয়
  • ওজিল্যান্ট স্টপ লস পদ্ধতিটি সাম্প্রতিক মূল্যের ওঠানামার সর্বোচ্চ এবং সর্বনিম্ন পয়েন্টের উপর ভিত্তি করে তৈরি করা হয়

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

  1. আরএসআই সূচকগুলি ওভারবয় ওভারসেলের ক্ষেত্রে কার্যকরভাবে বিচার করতে পারে এবং ওভারবয় ট্র্যাপ এবং ওভারবয় ট্র্যাপকে হ্রাস করতে পারে

  2. ADX সূচকটি প্রবণতাহীন পরিস্থিতিগুলিকে ফিল্টার করে এবং অস্থিরতার মধ্যে বন্দী হওয়া এড়াতে পারে

  3. অপশনাল স্টপ লস পদ্ধতির মাধ্যমে ঝুঁকি নিয়ন্ত্রণ করা যায়

  4. কৌশলগুলি সহজ, সহজেই বোঝা যায় এবং নতুনদের জন্য উপযুক্ত

  5. কৌশলগত প্যারামিটার অপ্টিমাইজ করার জন্য প্রচুর জায়গা রয়েছে, যা আরএসআই চক্র, ওভারবাইট ওভারসোল্ড ব্যাপ্তি এবং এডিএক্স মসৃণ চক্রের মতো প্যারামিটারগুলিকে সামঞ্জস্য করে অপ্টিমাইজ করা যেতে পারে

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

  1. RSI রিটার্নের ঝুঁকিতে রয়েছে, ওভার-বই ওভার-সেল সিগন্যালগুলি রিটার্ন এবং রিটার্ন হতে পারে

  2. ADX এর মতে, প্রবণতা পিছিয়ে আছে এবং সম্ভবত এটি একটি পাল্টা পয়েন্ট মিস করেছে

  3. অযৌক্তিকভাবে স্টপ-অফ-পয়েন্ট সেট করলে ক্ষতি হতে পারে

  4. কৌশলটি সরল, অপ্টিমাইজেশনের ঝুঁকি রয়েছে

  5. ভাল ফলাফলের জন্য প্যারামিটার অপ্টিমাইজেশান প্রয়োজন

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

  1. RSI এর প্যারামিটারগুলিকে অপ্টিমাইজ করা যায়, ওভার-বই ওভার-সোল্ড ব্যাপ্তিগুলিকে সামঞ্জস্য করা যায় এবং সর্বোত্তম প্যারামিটার সমন্বয় পাওয়া যায়

  2. ট্রেন্ডের সর্বোত্তম প্যারামিটার খুঁজে বের করতে বিভিন্ন পিরিয়ডের ADX পরীক্ষা করা যায়

  3. বিভিন্ন স্টপ-অফ-লস পদ্ধতি পরীক্ষা করুন এবং আপনার কৌশল অনুসারে সেটিংগুলি সন্ধান করুন

  4. ট্রেন্ড ফিল্টারিং সূচক যোগ করুন, বিপরীতমুখী ট্রেডিং এড়ান

  5. অন্যান্য সূচকগুলির সাথে সমন্বয় করা যেতে পারে যা কৌশলটিকে আরও সুবিধাজনক করে তোলে

সারসংক্ষেপ

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tweakerID

// This is a strategy that uses the 7 Period RSI to buy when the indicator is shown as oversold (OS) and sells when 
// the index marks overbought (OB). It also uses the ADX to determine whether the trend is ranging or trending
// and filters out the trending trades. Seems to work better for automated trading when the logic is inversed (buying OB 
// and selling the OS) wihout stop loss.

//@version=4
strategy("ADX + RSI Strat", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, commission_value=0.04, calc_on_every_tick=false)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))


//SL & TP Inputs
i_SL=input(false, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLookback=input(20, title="Swing Lo/Hi Lookback")
i_SLExpander=input(defval=0, step=.2, title="SL Expander")
i_TPExpander=input(defval=0, step=.2, title="TP Expander")
i_reverse=input(true, title="Reverse Trades")

//SL & TP Calculations
SwingLow=lowest(i_SwingLookback)
SwingHigh=highest(i_SwingLookback)
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0))*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0))*i_SLExpander)
lTP=strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0))+((valuewhen(bought, atr(14), 0))*i_TPExpander))
sTP=strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0)-strategy.position_avg_price)-((valuewhen(bought, atr(14), 0))*i_TPExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na
TP= islong ? lTP : isshort ? sTP : na

//RSI Calculations
RSI=rsi(close, 7)
OS=input(30, step=5)
OB=input(80, step=5)

//ADX Calculations
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
adxlevel=input(30, step=5)


//Entry Logic
BUY = sig < adxlevel and (RSI < OS) 
SELL = sig < adxlevel and (RSI > OB) 

//Entries
strategy.entry("long", strategy.long, when=i_reverse?SELL:BUY)
strategy.entry("short", strategy.short, when=not i_reverse?SELL:BUY)
//Exits
if i_SL
    strategy.exit("longexit", "long", stop=SL, limit=TP)
    strategy.exit("shortexit", "short", stop=SL, limit=TP)

//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(i_SL ? TP : na, color=color.green, style=plot.style_cross, title="TP")
plotshape(BUY ? 1 : na, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bullish Setup")
plotshape(SELL ? 1 : na, style=shape.triangledown, location=location.abovebar, color=color.red, title="Bearish Setup")