
یہ حکمت عملی ایک دو طرفہ تجارتی حکمت عملی ہے جو اتار چڑھاؤ کی شرح کو ٹریک کرتی ہے۔ اس میں اسٹاپ نقصان کی حد مقرر کرنے کے لئے اوسط حقیقی اتار چڑھاؤ کی شرح اے ٹی آر کا اشارے استعمال کیا جاتا ہے ، اور قیمتوں میں اسٹاپ نقصان کی حد کو توڑنے کی سمت کی بنیاد پر رجحان کی سمت کا فیصلہ کیا جاتا ہے۔ جب رجحان کی سمت میں تبدیلی ہوتی ہے تو ، اس کی پوزیشن کو الٹ دیا جاتا ہے۔
اس حکمت عملی میں 3 دن کے اے ٹی آر کی اتار چڑھاؤ کی شرح کا استعمال کیا گیا ہے۔ اے ٹی آر کی قیمت کو ایک عنصر کے ذریعہ اسٹاپ نقصان کے طور پر ضرب دیا گیا ہے۔ جب قیمت اسٹاپ نقصان سے زیادہ ہو تو ، اسے اوپر کی طرف جانے کا فیصلہ کیا جاتا ہے ، اور جب قیمت نیچے کی طرف اسٹاپ نقصان کی حد سے تجاوز کرتی ہے تو ، اس کو بند کردیا جاتا ہے۔ جب قیمت اسٹاپ نقصان کی حد سے کم ہو تو ، اسے ایک خالی رجحان کے طور پر فیصلہ کیا جاتا ہے ، اور جب قیمت اوپر کی طرف اسٹاپ نقصان کی حد سے تجاوز کرتی ہے تو ، اس کو بند کردیا جاتا ہے۔ جب رجحان بدل جاتا ہے تو ، اس کی واپسی کی پوزیشن کھولی جاتی ہے۔ جب رجحان برقرار رہتا ہے تو اس کی نگرانی کی اصلاح کی جاتی ہے ، اور جب رجحان بدل جاتا ہے تو اسے دوبارہ ترتیب دیا جاتا ہے۔
خطرے کے مطابق ، اے ٹی آر فیکٹر کو مناسب طریقے سے بڑھایا جاسکتا ہے ، اسٹاپ نقصان کا بخارات بڑھایا جاسکتا ہے ، تجارت کی فریکوئنسی کو کنٹرول کیا جاسکتا ہے ، کم سے کم رکاوٹ کی حد طے کی جاسکتی ہے۔
یہ حکمت عملی مجموعی طور پر ایک مستحکم دو طرفہ ٹریکنگ اسٹاپ اسٹریٹجی ہے۔ اے ٹی آر اشارے کے ذریعہ متحرک طور پر اسٹاپ نقصان کی پوزیشن طے کی جاتی ہے ، جس سے واپسی کے خطرے پر قابو پایا جاتا ہے۔ اس کے ساتھ ساتھ دو طرفہ تجارت میں منافع کے مواقع میں اضافہ ہوتا ہے۔ مزید اصلاح کے ذریعہ ، حکمت عملی کو زیادہ مستحکم ، قابل اعتماد اور رجحان کی پیروی کرنے کی صلاحیت کو بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("BCH Swinger v1", overlay=true, commission_value = 0.25, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
/////////////////////////////////////////////////////////////
//START - SET DATE RANGE
// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2017, title = "From Year")
ToMonth = input(defval = 10, title = "To Month", minval = 1)
ToDay = input(defval = 01, title = "To Day", minval = 1)
ToYear = input(defval = 2020, title = "To Year")
startDate = time > timestamp(FromYear, FromMonth, FromDay, 1, 1)
endDate = time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
withinTimeRange = true
/////////////////////////////////////////////////////////////
//END - SET DATE RANGE
/////////////////////////////////////////////////////////////
//START - INDICATORS
length = input(3)
mult = input(1, minval = 0.01)
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? yellow : red, style=circles, linewidth=2)
/////////////////////////////////////////////////////////////
//END - INDICATORS
/////////////////////////////////////////////////////////////
//START - TRADING RULES
direction = input(defval=1, title = "Strategy Direction", minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))
condition1 = close > vstop and withinTimeRange
condition2 = close < vstop and withinTimeRange
strategy.entry("BUY", strategy.long, when = condition1)
strategy.entry("SELL", strategy.short, when = condition2)
/////////////////////////////////////////////////////////////
//END - TRADING RULES