ڈائنامک اے ٹی آر سٹاپ لاس سنٹر لائن حکمت عملی


تخلیق کی تاریخ: 2023-10-16 16:20:06 آخر میں ترمیم کریں: 2023-10-16 16:20:06
کاپی: 0 کلکس کی تعداد: 444
1
پر توجہ دیں
1222
پیروکار

ڈائنامک اے ٹی آر سٹاپ لاس سنٹر لائن حکمت عملی

جائزہ

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

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

اس حکمت عملی کا استعمال 25 کی لمبائی کے ساتھ کیا جاتا ہے ، اور 5 کی سطح سے نکلنے والی لکیری واپسی کا حساب مرکز کی لکیر xLG ≠ کے ساتھ کیا جاتا ہے۔ اس کے بعد مرکزی لائن کے نیچے قیمتوں کا 6٪ چینل کی حد کے طور پر لیا جاتا ہے ، چینل کی اوپری لائن xLG1r ہے ، اور چینل کی نچلی لائن xLG1s ≠ ہے۔

جب قیمت xLG1r سے زیادہ ہو تو ، زیادہ بنائیں۔ جب قیمت xLG1s سے کم ہو تو ، کم کریں۔ اور آخری زیادہ اور کم وقت کو ریکارڈ کریں۔ جب آخری زیادہ وقت آخری کم وقت سے زیادہ ہو تو ایک زیادہ سگنل بنائیں۔ جب آخری کم وقت آخری کم وقت سے زیادہ ہو تو ایک کم سگنل بنائیں۔

متحرک اے ٹی آر اسٹاپ کو اے ٹی آر کی مدت 1 ، ضرب 2 کا استعمال کرتے ہوئے شمار کیا جاتا ہے۔ جب زیادہ کام کیا جاتا ہے تو ، اسٹاپ لائن اختتامی قیمت کو اے ٹی آر کی قدر سے کم اور ضرب سے ضرب دیا جاتا ہے۔ جب خالی ہوتا ہے تو ، اسٹاپ لائن اختتامی قیمت کے علاوہ اے ٹی آر کی قدر اور ضرب سے ضرب دیا جاتا ہے۔

طاقت کا تجزیہ

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

خطرات اور بہتری

  • لکیری رجعت چینل کے پیرامیٹرز کو بہتر بنانے کی ضرورت ہے، موجودہ چینل کی حد بہت تنگ ہوسکتی ہے
  • ATR ضارب بھی بہترین پیرامیٹرز حاصل کرنے کے لئے ٹیسٹ کی ضرورت ہے
  • جعلی دراندازیوں سے بچنے کے لئے دراندازی کے وقت تصدیق کے طریقہ کار کو بڑھانے پر غور کیا جاسکتا ہے

آپٹمائزیشن

  • مختلف رجعت کی لمبائی کے دوروں کی جانچ اور زیادہ سے زیادہ پیرامیٹرز تلاش کریں
  • مختلف ATR سائیکلوں اور ATR اسٹاپ نقصان ضربوں کی کوشش کریں
  • ایک بریک سگنل پر اضافی تصدیق کی شرائط شامل کریں ، جیسے ٹرانزیکشن حجم کی بریک

خلاصہ کریں۔

اس حکمت عملی میں رجحانات ، متحرک اسٹاپ اور بریک سگنل جیسے متعدد تکنیکی اشارے کو مربوط کیا گیا ہے ، جس سے ایک مضبوط موافقت پذیر رجحانات کا نظام تشکیل دیا گیا ہے۔ پیرامیٹرز کو بہتر بنانے اور سگنل فلٹرنگ میں اضافہ کرکے حکمت عملی کی استحکام اور منافع بخش صلاحیت کو مزید بڑھایا جاسکتا ہے۔ یہ حکمت عملی ایک بہت ہی قیمتی نظریہ فراہم کرسکتی ہے جس میں مقدار کے تاجروں کو شامل کیا جاسکتا ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-01-01 00:00:00
end: 2023-06-24 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Thanks to HPotter for the original code for Center of Gravity Backtest
strategy("Center of Gravity BF 🚀", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.15)

/////////////// Time Frame ///////////////
testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// Center of Gravity /////////////
Length = input(25, minval=1)
m = input(5, minval=0)
Percent = input(6, minval=0, title="COG %")

xLG = linreg(close, Length, m)
xLG1r = xLG + ((close * Percent) / 100)
xLG1s = xLG - ((close * Percent) / 100)

pos = 0.0
pos := iff(close > xLG1r, 1, iff(close < xLG1s, -1, nz(pos[1], 0))) 
possig = iff(pos == 1, 1, iff(pos == -1, -1, pos))

/////////////// Srategy ///////////////
long = possig == 1 
short = possig == -1 

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

last_open_long_signal = 0.0
last_open_short_signal = 0.0
last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1])

last_long_signal = 0.0
last_short_signal = 0.0
last_long_signal := long_signal ? time : nz(last_long_signal[1])
last_short_signal := short_signal ? time : nz(last_short_signal[1])

in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal

last_high = 0.0
last_low = 0.0
last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])

since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1]) 
since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1]) 

/////////////// Dynamic ATR Stop Losses ///////////////
atrLkb = input(1, minval=1, title='ATR Stop Period')
atrMult = input(2, step=0.25, title='ATR Stop Multiplier') 
atr1 = atr(atrLkb)

longStop = 0.0
longStop :=  short_signal ? na : long_signal ? close - (atr1 * atrMult) : longStop[1]
shortStop = 0.0
shortStop := long_signal ? na : short_signal ? close + (atr1 * atrMult) : shortStop[1]

/////////////// Execution ///////////////
if testPeriod()
    strategy.entry("Long",  strategy.long, when=long)
    strategy.entry("Short", strategy.short, when=short)
    strategy.exit("Long SL", "Long", stop=longStop, when=since_longEntry > 0)
    strategy.exit("Short SL", "Short", stop=shortStop, when=since_shortEntry > 0)

/////////////// Plotting ///////////////
plot(xLG1r, color=color.lime, title="LG1r")
plot(xLG1s, color=color.red, title="LG1s")
plot(strategy.position_size <= 0 ? na : longStop, title="Long Stop Loss", color=color.yellow, style=plot.style_circles, linewidth=1)
plot(strategy.position_size >= 0 ? na : shortStop, title="Short Stop Loss", color=color.orange, style=plot.style_circles, linewidth=1)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=90)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=60)