এই কৌশলটি গড় সত্য পরিসীমা (এটিআর) সূচকের উপর ভিত্তি করে একটি প্রবণতা অনুসরণকারী ট্রেডিং সিস্টেম, যা মূল্যের অস্থিরতার পরিসীমাগুলির গতিশীল গণনার মাধ্যমে বাজারের প্রবণতা সনাক্ত করে এবং ঝুঁকি পরিচালনার জন্য অভিযোজিত লাভ এবং স্টপ-লস প্রক্রিয়া অন্তর্ভুক্ত করে। কৌশলটি একটি বহু-অবধি বিশ্লেষণ পদ্ধতি ব্যবহার করে, এটিআর গুণক ব্যবহার করে গতিশীলভাবে বাজারের অস্থিরতা ট্র্যাকিংয়ের জন্য বাণিজ্য সংকেত ট্রিগারগুলি সামঞ্জস্য করে।
মূল কৌশলটি গতিশীল এটিআর গণনার উপর ভিত্তি করে, একটি পিরিয়ড প্যারামিটার (ডিফল্ট 10) ব্যবহার করে বাজারের সত্যিকারের পরিসীমা গণনা করা হয়। একটি এটিআর গুণক (ডিফল্ট 3.0) উপরের এবং নীচের চ্যানেলগুলি তৈরি করতে ব্যবহৃত হয়, যখন দাম এই চ্যানেলগুলি ভেঙে যায় তখন ট্রেডিং সংকেতগুলি ট্রিগার করে। বিশেষতঃ
এটি একটি ভাল ডিজাইন করা প্রবণতা অনুসরণকারী কৌশল যা এটিআর সূচকের মাধ্যমে সুনির্দিষ্ট বাজার অস্থিরতা ট্র্যাকিং অর্জন করে, ঝুঁকি পরিচালনার জন্য লাভ এবং স্টপ-লস প্রক্রিয়াগুলির সাথে মিলিত। কৌশলটির শক্তিগুলি এর অভিযোজনযোগ্যতা এবং নিয়ন্ত্রিত ঝুঁকিতে রয়েছে, যদিও কৌশলটির পারফরম্যান্সে বাজারের পরিবেশের প্রভাব উল্লেখ করা উচিত। প্রস্তাবিত অপ্টিমাইজেশান দিকগুলির মাধ্যমে কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও বাড়ানো যেতে পারে।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Custom Buy BID Strategy", overlay=true, shorttitle="Buy BID by MR.STOCKVN") // Cài đặt chỉ báo Periods = input.int(title="ATR Period", defval=10) src = input.source(hl2, title="Source") Multiplier = input.float(title="ATR Multiplier", step=0.1, defval=3.0) changeATR = input.bool(title="Change ATR Calculation Method?", defval=true) showsignals = input.bool(title="Show Buy Signals?", defval=false) highlighting = input.bool(title="Highlighter On/Off?", defval=true) barcoloring = input.bool(title="Bar Coloring On/Off?", defval=true) // Tính toán ATR atr2 = ta.sma(ta.tr, Periods) atr = changeATR ? ta.atr(Periods) : atr2 // Tính toán mức giá mua bán dựa trên ATR up = src - (Multiplier * atr) up1 = nz(up[1], up) up := close[1] > up1 ? math.max(up, up1) : up dn = src + (Multiplier * atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? math.min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend // Vẽ xu hướng upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.green) buySignal = trend == 1 and trend[1] == -1 // Hiển thị tín hiệu mua plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0) plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0) // Cài đặt màu cho thanh nến mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0) longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor) // Điều kiện thời gian giao dịch FromMonth = input.int(defval=9, title="From Month", minval=1, maxval=12) FromDay = input.int(defval=1, title="From Day", minval=1, maxval=31) FromYear = input.int(defval=2018, title="From Year", minval=999) ToMonth = input.int(defval=1, title="To Month", minval=1, maxval=12) ToDay = input.int(defval=1, title="To Day", minval=1, maxval=31) ToYear = input.int(defval=9999, title="To Year", minval=999) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // Cửa sổ thời gian giao dịch window() => (time >= start and time <= finish) // Điều kiện vào lệnh Buy longCondition = buySignal if (longCondition) strategy.entry("BUY", strategy.long, when=window()) // Điều kiện chốt lời và cắt lỗ có thể điều chỉnh takeProfitPercent = input.float(5, title="Take Profit (%)") / 100 stopLossPercent = input.float(2, title="Stop Loss (%)") / 100 // Tính toán giá trị chốt lời và cắt lỗ dựa trên giá vào lệnh if (strategy.position_size > 0) strategy.exit("Take Profit", "BUY", limit=strategy.position_avg_price * (1 + takeProfitPercent), stop=strategy.position_avg_price * (1 - stopLossPercent)) // Màu nến theo xu hướng buy1 = ta.barssince(buySignal) color1 = buy1[1] < na ? color.green : na barcolor(barcoloring ? color1 : na)