RSI এবং T3 সূচকগুলির উপর ভিত্তি করে PMax ব্রেকআউট কৌশল

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

img

সারসংক্ষেপ

এটি একটি পরিমাণগত ট্রেডিং কৌশল যা প্রবণতা নির্ধারণের জন্য আরএসআই এবং টি 3 সূচক ব্যবহার করে এবং অভিযোজিত পিএমএক্স ব্রেকআউট বাস্তবায়নের জন্য এটিআর সূচকগুলির উপর ভিত্তি করে স্টপ-লস লাইন সেট করে। এর মূল ধারণাটি লাভজনকতা উন্নত করার সময় ঝুঁকি নিয়ন্ত্রণের জন্য প্রবণতা নির্ধারণ এবং স্টপ-লস সেটিংস অনুকূল করা।

কৌশলগত যুক্তি

  1. RSI এবং T3 সূচক ব্যবহার করে প্রবণতা নির্ধারণ করুন

    • স্টকগুলির অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় বিচার করার জন্য RSI সূচক ব্যবহার করুন
    • প্রবণতা নির্ধারণের জন্য RSI এর উপর ভিত্তি করে T3 সূচক গণনা করুন
  2. এটিআর সূচকের উপর ভিত্তি করে অভিযোজিত PMax স্টপ-লস লাইন সেট করুন

    • অস্থিরতার প্রতিনিধিত্বকারী হিসাবে ATR ব্যবহার করুন
    • ATR এর বহুগুণের প্রস্থের সাথে T3 সূচকের উপরে এবং নীচে স্টপ-লস লাইন সেট করুন
    • স্টপ লস লাইনের অভিযোজিত সমন্বয় সাধন
  3. ক্রসওভারে কিনুন এবং স্টপ লস এ বেরিয়ে আসুন

    • T3 এর উপরে মূল্য ক্রসওভার কেনার সংকেত হিসাবে বিবেচনা করুন
    • স্টপ-লস লাইনের নিচে মূল্য অতিক্রম করার সময় পজিশন থেকে বেরিয়ে আসা

সুবিধা

এই কৌশলটির প্রধান সুবিধাগুলি হল:

  1. RSI + T3 সমন্বয় প্রবণতা নির্ধারণের উন্নতি করে
  2. PMax অ্যাডাপ্টিভ স্টপ-লস কন্ট্রোলস রিস্ক
  3. অস্থিরতা সূচক হিসাবে ATR স্টপ-লস প্রস্থকে যুক্তিসঙ্গত করে
  4. ব্যবহার এবং লাভজনকতার মধ্যে ভারসাম্য

ঝুঁকি

প্রধান ঝুঁকিঃ

  1. বিপরীতমুখী ঝুঁকি

    স্বল্পমেয়াদী বিপরীতমুখী পরিবর্তনগুলি স্টপ লসকে ট্রিগার করতে পারে এবং ক্ষতির কারণ হতে পারে। প্রভাব হ্রাস করার জন্য স্টপ লসকে শিথিল করতে পারে।

  2. প্রবণতা নির্ধারণে ব্যর্থতার ঝুঁকি

    আরএসআই + টি 3 এর প্রবণতা নির্ধারণ 100% নির্ভরযোগ্য নয়। ভুল বিচার ক্ষতির কারণ হতে পারে। প্যারামিটারগুলি অনুকূল করতে বা অন্যান্য সূচক যুক্ত করতে পারে।

উন্নতি

আরও অপ্টিমাইজেশনের জন্য কিছু দিকনির্দেশঃ

  1. প্রবণতা সহায়তার জন্য চলমান গড়ের মতো অন্যান্য সূচক যুক্ত করুন
  2. RSI এবং T3 এর জন্য দৈর্ঘ্য পরামিতি অপ্টিমাইজ করুন
  3. স্টপ-লস প্রস্থের জন্য বিভিন্ন ATR গুণক পরীক্ষা করুন
  4. বিভিন্ন বাজারের উপর ভিত্তি করে স্টপ-লস শিথিলতা সামঞ্জস্য করুন

সিদ্ধান্ত

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


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic
//developer: @KivancOzbilgic
//author: @KivancOzbilgic

strategy("PMax on Rsi w T3 Strategy","PmR3St.", overlay=false, precision=2)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3)
length =input(8, "Tillson T3 Length", minval=1)
T3a1 = input(0.7, "TILLSON T3 Volume Factor", step=0.1)
Periods = input(10,title="ATR Length", type=input.integer)
rsilength = input(14, minval=1, title="RSI Length")
showrsi = input(title="Show RSI?", type=input.bool, defval=true)
showsupport = input(title="Show Moving Average?", type=input.bool, defval=true)
showsignalsk = input(title="Show Crossing Signals?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
i = close>=close[1] ? close-close[1] : 0
i2 = close<close[1] ? close[1]-close : 0
Wwma_Func(src,rsilength)=>
    wwalpha = 1/ rsilength
    WWMA = 0.0
    WWMA := wwalpha*src + (1-wwalpha)*nz(WWMA[1])
WWMA=Wwma_Func(src,rsilength)
AvUp = Wwma_Func(i,rsilength)
AvDown = Wwma_Func(i2,rsilength)
AvgUp = sma(i,rsilength)
AvgDown =sma(i2,rsilength)
k1 = high>close[1] ? high-close[1] : 0
k2 = high<close[1] ? close[1]-high : 0
k3 = low>close[1] ? low-close[1] : 0
k4 = low<close[1] ? close[1]-low : 0
AvgUpH=(AvgUp*(rsilength-1)+ k1)/rsilength
AvgDownH=(AvgDown*(rsilength-1)+ k2)/rsilength
AvgUpL=(AvgUp*(rsilength-1)+ k3)/rsilength
AvgDownL=(AvgDown*(rsilength-1)+ k4)/rsilength
rs = AvUp/AvDown
rsi= rs==-1 ? 0 : (100-(100/(1+rs)))
rsh=AvgUpH/AvgDownH
rsih= rsh==-1 ? 0 : (100-(100/(1+rsh)))
rsl=AvgUpL/AvgDownL
rsil= rsl==-1 ? 0 : (100-(100/(1+rsl)))
TR=max(rsih-rsil,abs(rsih-rsi[1]),abs(rsil-rsi[1]))
atr=sma(TR,Periods)
plot(showrsi ? rsi : na, "RSI", color=#8E1599)
band1 = hline(70, "Upper Band", color=#C0C0C0)
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
T3e1=ema(rsi, length)
T3e2=ema(T3e1,length)
T3e3=ema(T3e2,length)
T3e4=ema(T3e3,length)
T3e5=ema(T3e4,length)
T3e6=ema(T3e5,length)
T3c1=-T3a1*T3a1*T3a1
T3c2=3*T3a1*T3a1+3*T3a1*T3a1*T3a1
T3c3=-6*T3a1*T3a1-3*T3a1-3*T3a1*T3a1*T3a1
T3c4=1+3*T3a1+T3a1*T3a1*T3a1+3*T3a1*T3a1
T3=T3c1*T3e6+T3c2*T3e5+T3c3*T3e4+T3c4*T3e3
MAvg=T3
Pmax_Func(rsi,length)=>
    longStop = MAvg - Multiplier*atr
    longStopPrev = nz(longStop[1], longStop)
    longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
    shortStop = MAvg + Multiplier*atr
    shortStopPrev = nz(shortStop[1], shortStop)
    shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop
    dir = 1
    dir := nz(dir[1], dir)
    dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
    PMax = dir==1 ? longStop: shortStop
PMax=Pmax_Func(rsi,length)
plot(showsupport ? MAvg : na, color=color.black, linewidth=2, title="T3")
pALL=plot(PMax, color=color.red, linewidth=2, title="PMax", transp=0)
alertcondition(cross(MAvg, PMax), title="Cross Alert", message="PMax - Moving Avg Crossing!")
alertcondition(crossover(MAvg, PMax), title="Crossover Alarm", message="Moving Avg BUY SIGNAL!")
alertcondition(crossunder(MAvg, PMax), title="Crossunder Alarm", message="Moving Avg SELL SIGNAL!")
alertcondition(cross(src, PMax), title="Price Cross Alert", message="PMax - Price Crossing!")
alertcondition(crossover(src, PMax), title="Price Crossover Alarm", message="PRICE OVER PMax - BUY SIGNAL!")
alertcondition(crossunder(src, PMax), title="Price Crossunder Alarm", message="PRICE UNDER PMax - SELL SIGNAL!")
buySignalk = crossover(MAvg, PMax)
plotshape(buySignalk and showsignalsk ? PMax*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
sellSignallk = crossunder(MAvg, PMax)
plotshape(sellSignallk and showsignalsk ? PMax*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(rsi, title="", style=plot.style_circles, linewidth=0,display=display.none)
longFillColor = highlighting ? (MAvg>PMax ? color.green : na) : na
shortFillColor = highlighting ? (MAvg<PMax ? color.red : na) : na
fill(mPlot, pALL, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, pALL, title="DownTrend Highligter", color=shortFillColor)

dummy0 = input(true, title = "=Backtest Inputs=")
FromDay    = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth  = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear   = input(defval = 2005, title = "From Year", minval = 2005)
ToDay      = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth    = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear     = input(defval = 9999, title = "To Year", minval = 2006)
Start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)
Finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)
Timerange() =>
    time >= Start and time <= Finish ? true : false
if buySignalk
    strategy.entry("Long", strategy.long,when=Timerange())
if sellSignallk
    strategy.entry("Short", strategy.short,when=Timerange())


আরো