مطلب بدلاؤ ATR رجحان کی حکمت عملی


تخلیق کی تاریخ: 2023-09-21 11:42:06 آخر میں ترمیم کریں: 2023-09-21 11:42:06
کاپی: 1 کلکس کی تعداد: 704
1
پر توجہ دیں
1617
پیروکار

جائزہ

اس حکمت عملی میں قیمتوں میں اتار چڑھاؤ کی اونچائی اور کم سے فائدہ اٹھایا جاتا ہے تاکہ پوزیشن میں داخل ہونے یا اس سے باہر نکلنے کا وقت معلوم کیا جاسکے۔ اس کا مقصد قیمتوں میں اتار چڑھاؤ کی اونچائی پر ایک سے زیادہ پوزیشن لگانا ہے اور جب قیمت کا رجحان فائدہ مند ہوتا ہے تو اس سے فائدہ اٹھایا جاتا ہے۔

حکمت عملی کا اصول

  1. اے ٹی آر اشارے کا استعمال کرتے ہوئے قیمت میں اتار چڑھاؤ کی شرح کی پیمائش کریں۔ حالیہ 20 ادوار کے لئے اے ٹی آر کی قیمتوں کا حساب لگائیں ، اور اس کی منتقل اوسط اور معیاری فرق کا حساب لگائیں۔ اگر موجودہ اے ٹی آر کی قیمت اوسط سے زیادہ ہے اور ایک معیاری فرق ہے تو ، قیمت میں اتار چڑھاؤ کی شرح زیادہ سمجھا جاتا ہے۔

  2. قیمتوں کے رجحان کا تعین کرنے کے لئے ایک مرحلے کے جوڑی قیمتوں میں تبدیلی کی شرح کا استعمال کریں۔ مؤخر الذکر کے اختتامی قیمتوں میں تبدیلی کی شرح کو حالیہ 20 ادوار کے لئے حساب لگائیں ، اس کی متحرک اوسط کو حساب لگائیں ، اگر موجودہ تبدیلی کی شرح مسلسل 3 دن اوسط سے زیادہ ہے اور مثبت ہے تو ، یہ سمجھا جاتا ہے کہ قیمت اوپر کی طرف بڑھ رہی ہے۔

  3. جب قیمتوں میں اتار چڑھاؤ کی شرح زیادہ ہو اور قیمتوں میں اضافہ کا رجحان ہو تو ، زیادہ پوزیشن کھولی جائے۔ جب قیمتوں میں کمی واقع ہوتی ہے تو ، اسٹاپ نقصان کی قیمت کو متحرک کیا جاتا ہے۔ اسٹاپ نقصان کی قیمت کی متحرک ایڈجسٹمنٹ ، ہمیشہ کم از کم قیمت کم سے کم اے ٹی آر کے 2 گنا کے درمیان برقرار رکھی جائے۔

طاقت کا تجزیہ

  1. قیمتوں میں اتار چڑھاو اور رجحانات کا اندازہ لگانے کے لئے زیادہ سے زیادہ وقت نکالنے کے مواقع کا استعمال کریں ، اور ہلکے بازاروں میں بار بار تجارت سے گریز کریں۔

  2. اسٹاپ نقصان کی قیمت کو متحرک طور پر ایڈجسٹ کریں تاکہ اسٹاپ نقصان سے بچنے کے لئے زیادہ سے زیادہ نقصان سے بچنے کے لئے۔

  3. ریٹرننگ سے پتہ چلتا ہے کہ 2015-2021 کے درمیان اس حکمت عملی کی سالانہ واپسی 159٪ تھی ، جو کہ خرید اور پکڑنے کی حکمت عملی کے 120٪ سے کہیں زیادہ ہے۔

خطرے کا تجزیہ

  1. اے ٹی آر پیرامیٹرز کی ترتیب کو زیادہ سے زیادہ شدت سے داخل ہونے کا امکان کم ہوسکتا ہے۔ پیرامیٹرز کو مناسب طریقے سے بڑھا دیا جاسکتا ہے تاکہ داخل ہونے کی فریکوئنسی میں اضافہ کیا جاسکے۔

  2. رجحانات کے فیصلے کے اشارے میں غلط فیصلے ہوسکتے ہیں ، جو اصل رجحانات سے مماثل نہیں ہیں ، ممکنہ نقصانات سے بچنے کے لئے تصدیق کے عوامل کو بڑھانا چاہئے۔

  3. صرف 6 سال کی واپسی کی مدت کے ساتھ ، نمونے کی حد کو بڑھانا اور استحکام کی جانچ پڑتال کرنا ضروری ہے ، تاکہ زیادہ فٹ ہونے سے بچا جاسکے۔

  4. انتہائی حالات میں کارکردگی کا اندازہ لگانا ناممکن ہے ، جیسے تیزی سے اجارہ داری کی صورت حال ، جس میں دستی مداخلت کی ضرورت ہوتی ہے یا پروگرامنگ کو روکنے کی ضرورت ہوتی ہے۔

اصلاح کی سمت

  1. رجحان کی تصدیق کے اشارے جیسے MACD ، KDJ وغیرہ کو شامل کریں ، تاکہ رجحان کی سمت کا زیادہ درست اندازہ لگایا جاسکے۔

  2. اے ٹی آر پیرامیٹرز کو مختلف اقسام اور مارکیٹ کے حالات کے مطابق ایڈجسٹ کیا جاسکتا ہے ، تاکہ اتار چڑھاؤ کی شرح کو بہتر بنایا جاسکے۔

  3. ایک بریکٹ فیصلہ ماڈیول کو شامل کریں ، رجحان کی تیز رفتار عنصر کی تشکیل کریں ، اور بریکٹ کی صورت میں پوزیشن میں اضافہ کریں۔

  4. مختلف سٹاپ طریقوں جیسے فی صد سٹاپ، اتار چڑھاؤ سٹاپ وغیرہ کے اثرات کی جانچ کریں۔

  5. حکمت عملی کو مضبوط بنانے کے لئے تجارت کی تعداد ، منافع کی منحنی خطوط کی استحکام ، زیادہ سے زیادہ واپسی وغیرہ کا جائزہ لیا جائے۔

خلاصہ کریں۔

اس حکمت عملی میں قیمت کی اتار چڑھاؤ اور رجحان کے فیصلے کی خوبیوں کو مربوط کیا گیا ہے ، جب قیمت میں اضافے کی صورت میں قیمتوں میں ردوبدل کا فیصلہ کیا جاسکتا ہے ، متحرک اسٹاپ نقصان کو کنٹرول کرنے کے لئے خطرہ کو کنٹرول کیا گیا ہے ، جس کے نتیجے میں اچھی اضافی آمدنی حاصل کی گئی ہے۔ تاہم ، نمونہ کے وقفے میں صرف 6 سال ہیں ، کلیدی پیرامیٹرز کی ترتیب کو مختلف مارکیٹوں کے مطابق ایڈجسٹ کرنے کی ضرورت ہے ، اور غلط فیصلے کے امکانات کو کم کرنے کے لئے مزید تصدیق کرنے والے عوامل کو متعارف کرانے کی ضرورت ہے۔ اس کے علاوہ حکمت عملی کو حقیقی تجارت میں استعمال کرنے کے لئے مزید جامع استحکام کی جانچ پڑتال کی ضرورت ہے۔ مجموعی طور پر ، یہ حکمت عملی اتار چڑھاؤ کو استعمال کرنے کے لئے ایک معکوس آپریشن کے لئے ایک سوچ کا راستہ فراہم کرتی ہے ، لیکن اس کو مستحکم اور قابل اعتماد حکمت عملی بننے کے لئے گہری اصلاح اور جانچ کی ضرورت ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DojiEmoji (kevinhhl)

//@version=4
strategy("Mean Reversion (ATR) Strategy [KL]",overlay=true,pyramiding=1)
ENUM_LONG = "Long"

// Timeframe {
backtest_timeframe_start = input(defval = timestamp("01 Apr 2000 13:30 +0000"), title = "Backtest Start Time", type = input.time)
USE_ENDTIME = input(false,title="Define backtest end-time (If false, will test up to most recent candle)")
backtest_timeframe_end = input(defval = timestamp("01 May 2021 19:30 +0000"), title = "Backtest End Time (if checked above)", type = input.time)
within_timeframe = true
// }

// Trailing stop loss {
ATR_X2_TSL = atr(input(14,title="Length of ATR for trailing stop loss")) * input(2.0,title="ATR Multiplier for trailing stop loss",type=input.float)
TSL_source = low
var stop_loss_price = float(0)
TSL_line_color = color.green, TSL_transp = 100
if strategy.position_size == 0 or not within_timeframe
    TSL_line_color := color.black
    stop_loss_price := TSL_source - ATR_X2_TSL 
else if strategy.position_size > 0
    stop_loss_price := max(stop_loss_price, TSL_source - ATR_X2_TSL)
    TSL_transp := 0
plot(stop_loss_price, color=color.new(TSL_line_color, TSL_transp))
// }

// Variables for confirmations of entry {
_len_volat = input(20,title="Length of ATR to determine volatility")
_ATR_volat = atr(_len_volat)
_avg_atr = sma(_ATR_volat, _len_volat)
_std_volat = stdev(_ATR_volat,_len_volat)
signal_diverted_ATR = _ATR_volat > (_avg_atr + _std_volat) or _ATR_volat < (_avg_atr - _std_volat)

_len_drift = input(20,title="Length of Drift")//default set to const: _len_vol's default value
_prcntge_chng = log(close/close[1])
_drift = sma(_prcntge_chng, _len_drift) - pow(stdev(_prcntge_chng, _len_drift),2)*0.5
_chg_drift = _drift/_drift[1]-1
signal_uptrend = (_drift > _drift[1] and _drift > _drift[2]) or _drift > 0

entry_signal_all = signal_diverted_ATR and signal_uptrend
// }

alert_per_bar(msg)=>
    prefix = "[" + syminfo.root + "] "
    suffix = "(P=" + tostring(close) + "; atr=" + tostring(_ATR_volat) + ")"
    alert(tostring(prefix) + tostring(msg) + tostring(suffix), alert.freq_once_per_bar)

// MAIN {
if within_timeframe

    if strategy.position_size > 0 and strategy.position_size[1] > 0 and (stop_loss_price/stop_loss_price[1]-1) > 0.005
        alert_per_bar("TSL raised to " + tostring(stop_loss_price))

    // EXIT:
	if strategy.position_size > 0 and TSL_source <= stop_loss_price
	    exit_msg = close <= strategy.position_avg_price ? "stop loss" : "take profit"
        strategy.close(ENUM_LONG, comment=exit_msg)
    // ENTRY:
    else if entry_signal_all and (strategy.position_size == 0 or (strategy.position_size > 0 and close > stop_loss_price))
		entry_msg = strategy.position_size > 0 ? "adding" : "initial"
		strategy.entry(ENUM_LONG, strategy.long, comment=entry_msg)

if strategy.position_size == 0
    stop_loss_price := float(0)
// }