এই কৌশলটি মূলত একটি অভিযোজিত স্টপ লস প্রক্রিয়া বাস্তবায়ন করে যা দামের ওঠানামা উপর ভিত্তি করে স্টপ লস অবস্থানকে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করে যাতে আরও ভাল স্টপ লস প্রভাব অর্জন করা যায়। কৌশলটি যুক্তিসঙ্গত স্টপ লস পরিসীমা গণনা করতে এটিআর সূচক ব্যবহার করে এবং ইএমএ লাইনের সাথে সংমিশ্রণে ট্রেডিং সংকেত উত্পন্ন করে। যখন দাম ইএমএ লাইনের মাধ্যমে ভেঙে যায় তখন এটি দীর্ঘ বা সংক্ষিপ্ত অবস্থান খোলে এবং স্টপ লস অ্যালগরিদম অনুসরণ করতে একটি অভিযোজিত স্টপ লস অ্যালগরিদম ব্যবহার করে।
কৌশলটি স্পষ্ট এবং সহজ যুক্তিযুক্ত, অভিযোজনশীল এটিআর-ভিত্তিক স্টপ লস এবং ট্রেড সিগন্যালগুলির জন্য ইএমএর সাথে ঝুঁকি পরিচালনা করে। তবে এটি অপ্টিমাইজেশনের জন্য অনেক জায়গা সহ তুলনামূলকভাবে প্যাসিভ। এটিকে আরও সক্রিয় করার জন্য ট্রেন্ড বিচার, গতিশীল পরামিতি সমন্বয় যুক্ত করার বিষয়টি বিবেচনা করুন। সামগ্রিকভাবে এটি বিপরীত স্টপ লস কৌশলগুলির জন্য একটি ভাল ধারণা এবং টেম্পলেট হিসাবে কাজ করে, তবে পরামিতিগুলি অন্ধভাবে ডিফল্ট মান প্রয়োগের পরিবর্তে বিভিন্ন প্রতীকগুলির জন্য সুরক্ষিত করা উচিত।
/*backtest start: 2023-09-07 00:00:00 end: 2023-10-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="UT Bot Strategy", overlay = true) //CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. // Inputs a = input(1, title = "Key Vaule. 'This changes the sensitivity'") c = input(10, title = "ATR Period") h = input(false, title = "Signals from Heikin Ashi Candles") //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date 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 = 2019, title = "From Year", minval = 1970) // To Date Inputs 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 = 2100, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// xATR = atr(c) nLoss = a * xATR src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close xATRTrailingStop = 0.0 xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss), iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss))) pos = 0 pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1, iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue ema = ema(src,1) above = crossover(ema, xATRTrailingStop) below = crossover(xATRTrailingStop, ema) buy = src > xATRTrailingStop and above sell = src < xATRTrailingStop and below barbuy = src > xATRTrailingStop barsell = src < xATRTrailingStop plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny) plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny) barcolor(barbuy ? color.green : na) barcolor(barsell ? color.red : na) strategy.entry("long", true, when = buy and time_cond) strategy.entry("short", false, when = sell and time_cond)