অনুকূলিত ATR এবং RSI ট্রেন্ড ট্রেজিং স্টপ লস সহ কৌশল অনুসরণ করে

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

img

সারসংক্ষেপ

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

নীতিমালা

  1. এটিআর গণনা করুন। এটিআর বাজারের অস্থিরতা এবং ঝুঁকি স্তর দেখায়। এই কৌশলটি অভিযোজিত ঝুঁকি নিয়ন্ত্রণের জন্য গতিশীল স্টপ লস গণনা করতে এটিআর ব্যবহার করে।

  2. আরএসআই গণনা করুন। আরএসআই ওভারকুপ / ওভারসোল্ড স্ট্যাটাস বিচার করে। যখন আরএসআই 50 এর উপরে থাকে তখন এটি উত্থানমুখী দৃষ্টিভঙ্গির সংকেত দেয়, যখন 50 এর নীচে হয় তখন হ্রাসমুখী দৃষ্টিভঙ্গি। এই কৌশলটি প্রবণতার দিক নির্ধারণের জন্য আরএসআই ব্যবহার করে।

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

  4. বিশেষ করে, লং যখন RSI 50 এর উপরে যায়, শর্ট যখন 50 এর নিচে যায়, তারপর ATR এর উপর ভিত্তি করে স্টপ লস সরিয়ে ট্রেন্ডের সাথে মুনাফা লক করুন।

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

  1. এটিআর এডাপ্টিভ স্টপ লস বাজার অস্থিরতা বিবেচনা করে, খুব বিস্তৃত বা খুব সংকীর্ণ স্টপ লস এড়ায়।

  2. আরএসআই নির্ভরযোগ্যভাবে প্রবণতা চিহ্নিত করে, whipsaws এড়ায়।

  3. টেলিং স্টপ লস প্রবণতা লাভের লক্ষ্যমাত্রা প্রসারিত করতে ট্র্যাক।

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

  1. ATR এবং RSI পরামিতিগুলির ব্যাকটেস্ট অপ্টিমাইজেশান প্রয়োজন, অন্যথায় কৌশল কর্মক্ষমতা প্রভাবিত।

  2. স্টপ লস সুরক্ষার সাথে, স্টপ লসকে অনুপ্রবেশ করার জন্য হঠাৎ দামের ঝাঁকুনির ঝুঁকি এখনও বিদ্যমান। ঝুঁকি নিয়ন্ত্রণের জন্য অবস্থান আকার বিবেচনা করতে পারেন।

  3. কৌশল কর্মক্ষমতা বিভিন্ন পণ্যের জন্য প্যারামিটার টিউনিং উপর নির্ভর করে।

উন্নতকরণ

  1. অ্যাডাপ্টিভ প্যারামিটার অপ্টিমাইজেশনের জন্য মেশিন লার্নিং অ্যালগরিদম বিবেচনা করুন।

  2. স্টপ লস অনুপ্রবেশের সম্ভাবনা কমাতে বাজারের অবস্থার উপর ভিত্তি করে গতিশীল সমন্বয় জন্য অবস্থান আকার নিয়ন্ত্রণ যোগ করুন।

  3. প্রধান প্রবণতা বিপরীত পয়েন্ট মিস এড়াতে আরো প্রবণতা সূচক যোগ করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-19 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="UTBot Strategy", overlay = true )
   
// CREDITS to @HPotter for the orginal code. 
// CREDITS to @Yo_adriiiiaan for recently publishing the UT Bot study based on the original code -
// CREDITS to @TradersAITradingPlans for making this Strategy. 
// Strategy fixed with Time period by Kirk65.
// I am using this UT bot with 2 hours time frame with god resultss. Alert with "Once per bar" and stoploss 1.5%. If Alerts triggered and price goes against Alert. Stoploss will catch it. Wait until next Alert.
// While @Yo_adriiiiaan mentions it works best on a 4-hour timeframe or above, witch is a lot less risky, but less profitable. 

testStartYear = input(2019, "BACKTEST START YEAR", minval = 1980, maxval = 2222) 
testStartMonth = input(01, "BACKTEST START MONTH", minval = 1, maxval = 12)
testStartDay = input(01, "BACKTEST START DAY", minval = 1, maxval = 31)
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2222, "BACKTEST STOP YEAR", minval=1980, maxval = 2222)
testStopMonth = input(12, "BACKTEST STOP MONTH", minval=1, maxval=12)
testStopDay = input(31, "BACKTEST STOP DAY", minval=1, maxval=31)
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod = true

SOURCE = input(hlc3)
RSILENGTH = input(14, title = "RSI LENGTH")
RSICENTERLINE = input(52, title = "RSI CENTER LINE")
MACDFASTLENGTH = input(7, title = "MACD FAST LENGTH")
MACDSLOWLENGTH = input(12, title = "MACD SLOW LENGTH")
MACDSIGNALSMOOTHING = input(12, title = "MACD SIGNAL SMOOTHING")
a = input(10, title = "Key Vaule. 'This changes the sensitivity'") 
SmoothK = input(3)
SmoothD = input(3)
LengthRSI = input(14)
LengthStoch = input(14)
RSISource = input(close) 
c = input(10, title="ATR Period")
xATR = atr(c)
nLoss = a * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
     iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
     iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos =	iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
     iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
color = pos == -1 ? red: pos == 1 ? green : blue 
ema= ema(close,1)
above = crossover(ema,xATRTrailingStop )
below = crossover(xATRTrailingStop,ema)
buy = close > xATRTrailingStop and above 
sell = close < xATRTrailingStop and below
barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= green,textcolor = white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= red,textcolor = white, transp = 0, size = size.tiny)
barcolor(barbuy? green:na)
barcolor(barsell? red:na)
//alertcondition(buy, title='Buy', message='Buy')
//alertcondition(sell, title='Sell', message='Sell')

if (buy)
    strategy.entry("UTBotBuy",strategy.long, when=testPeriod)
if (sell)
    strategy.entry("UTBotSell",strategy.short, when=testPeriod)

আরো