কৌশলটি স্টপ লস মূল্য সেট করতে এটিআর সূচক ব্যবহার করে। এটিআর বাজারের অস্থিরতা প্রতিফলিত করে এবং গতিশীলভাবে স্টপ লস দূরত্ব সেট করতে ব্যবহার করা যেতে পারে। কৌশলটি ব্যবহারকারীর ইনপুট এটিআর সময়কাল এবং গুণক উপর ভিত্তি করে এটিআর মান গণনা করে এবং স্টপ লস দূরত্ব হিসাবে গুণক দ্বারা গুণিত এটিআর মান ব্যবহার করে। বিশেষত, এটিআর ট্রেলিং স্টপ গণনার সূত্রটি হ'লঃ
ATR Line = Prior ATR Line ± nLoss (nLoss = nATRMultip * ATR value)
If close > ATR Line, adjust ATR Line up to close - nLoss
If close < ATR Line, adjust ATR Line down to close + nLoss
এইভাবে, এটিআর লাইনটি স্টপ লস অনুসরণ করে প্রবণতা অর্জনের জন্য মূল্যের ওঠানামা উপর ভিত্তি করে গতিশীলভাবে সামঞ্জস্য করতে পারে।
এটিআর ট্রেলিং স্টপ ছাড়াও, কৌশলটি প্রবেশ সংকেত নির্ধারণের জন্য স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেলও ব্যবহার করে। স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেল গণনার সূত্রটি হলঃ
Middle Line = ATR Trailing Stop Line
Upper Band = Middle Line + n * Standard Deviation
Lower Band = Middle Line - n * Standard Deviation
যখন দাম মাঝারি রেখা অতিক্রম করে তখন লং যান। যখন দাম মাঝারি রেখা অতিক্রম করে তখন শর্ট যান।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল এটির ব্যবহার করে স্টপ লসকে গতিশীলভাবে বাজারের অস্থিরতার উপর ভিত্তি করে সেট করা হয়, যা স্টপ লসের পরে প্রবণতা এবং কার্যকর ঝুঁকি নিয়ন্ত্রণের অনুমতি দেয়।
অতিরিক্তভাবে, এন্ট্রি সিগন্যালের জন্য স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেল ব্যবহার করা ছোট মূল্যের ওঠানামা কারণে ঘন ঘন পজিশন খোলার বিষয়টি এড়ায়।
মূল ঝুঁকিটি হ'ল যদি স্টপ লস দূরত্ব খুব বড় হয় তবে এটি কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারে না, তবে যদি এটি খুব ছোট হয় তবে এটি বাজারের গোলমাল দ্বারা সহজেই বন্ধ করা যেতে পারে। এই ঝুঁকি মোকাবেলা করতে, সেরা পরামিতি সংমিশ্রণটি খুঁজে পেতে এটিআর সময়কাল এবং গুণককে অনুকূলিত করা যেতে পারে।
আরেকটি ঝুঁকি হ'ল অপ্রয়োজনীয় স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেল পরামিতি যা অত্যধিক উচ্চ / নিম্ন এন্ট্রি ফ্রিকোয়েন্সির দিকে পরিচালিত করে। সর্বোত্তম খুঁজে পেতে পরামিতিগুলি অনুকূল করা যেতে পারে।
কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
আরও ভাল স্টপ লস এফেক্ট অর্জনের জন্য ATR সময় এবং মাল্টিপ্লায়ার অপ্টিমাইজ করুন।
আরও ভাল প্রবেশ সংকেতের জন্য স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেল প্যারামিটার অপ্টিমাইজ করুন।
প্রবণতা দিকনির্দেশনা এবং লাভজনকতা উন্নত করতে সাহায্য করার জন্য ফিল্টারিংয়ের জন্য অন্যান্য সূচক যোগ করুন, যেমন চলমান গড়, মোমবাতি প্যাটার্ন ইত্যাদি।
এন্ট্রি এবং আউটপুট লজিককে অপ্টিমাইজ করুন, উদাহরণস্বরূপ, মূল্য চ্যানেল ব্যান্ডে পৌঁছানোর সময় ক্যান্ডেলস্টিক প্যাটার্ন নিশ্চিত করার পরেই পজিশন খুলুন।
এই কৌশলটি এটিআর সূচকের উপর ভিত্তি করে স্টপ লস অনুসরণ করে প্রবণতা অর্জন করে এবং এন্ট্রি সংকেতগুলির জন্য স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেল ব্যবহার করে। এর সুবিধাগুলি ট্রেন্ড ট্রেডিংয়ের জন্য ভাল ঝুঁকি নিয়ন্ত্রণ ক্ষমতাতে রয়েছে। ঝুঁকি এবং উন্নতিগুলিও স্পষ্টভাবে বিশ্লেষণ করা হয়। কৌশলটি আরও পরীক্ষা এবং অপ্টিমাইজেশনের মূল্যবান এবং এর ব্যবহারিক ট্রেডিং মূল্য রয়েছে।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 strategy(title="Average True Range Strategy", overlay = true) nATRPeriod = input(11) //Hur många perioder ATR är på nATRMultip = input(0.5) //Hur många gånger nuvarande ATR multipliceras med xATR = atr(nATRPeriod) nLoss = nATRMultip * 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))) stdev3 = 14*stdev(xATR, nATRPeriod) band1 = xATRTrailingStop+stdev3 //Översta stdev bandet band2 = xATRTrailingStop-stdev3 //Nedersta stdev bandet // Datum och tid FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2013, title = "From Year", minval = 2013) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2020, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest slut startTimeOk() => true initial_capital = 100000 take = close > xATRTrailingStop if( startTimeOk() ) and (pos == 1) //if (pos == 1) strategy.entry("Long", strategy.long, comment = "KOP") strategy.exit("Long", when = take) if( startTimeOk() ) and (pos == -1) //if (pos == -1) strategy.entry("Short", strategy.short, comment = "SALJ") barcolor(pos == -1 ? red: pos == 1 ? green : blue ) plot(xATRTrailingStop, color=red, title="ATR Trailing Stop") //Mittersta linjen som är triggerlinjen för köp/sälj plot(band1, color=red) plot(band2, color=blue)