وسائل لوڈ ہو رہے ہیں... لوڈنگ...

اے ٹی آر کی کثیر مدتی تجارتی حکمت عملی کے بعد متحرک رجحان

مصنف:چاؤ ژانگ، تاریخ: 2024-12-12 16:00:56
ٹیگز:اے ٹی آرای ایم اےایم اے

 Dynamic Trend Following ATR Multi-Period Trading Strategy

جائزہ

یہ حکمت عملی اے ٹی آر (اوسط حقیقی رینج) اشارے پر مبنی متحرک رجحان کے بعد کا نظام ہے ، جس میں کثیر مدتی تجزیہ اور پورٹ فولیو مینجمنٹ کی صلاحیتوں کا امتزاج ہوتا ہے۔ حکمت عملی مختلف ٹائم فریموں میں رجحان کی تبدیلیوں کو پکڑنے کے ل price قیمت اور اے ٹی آر چینل کے مابین نسبتا position پوزیشن کو ٹریک کرتی ہے جبکہ صارف کی وضاحت کردہ تجارتی مقدار کے مطابق متحرک طور پر پوزیشنوں کا انتظام کرتی ہے۔ حکمت عملی کے ڈیزائن میں تجارتی وقت کی لچک کے ساتھ رجحان کے بعد استحکام کو متوازن کیا جاتا ہے۔

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

حکمت عملی کا بنیادی منطق مندرجہ ذیل اہم عناصر پر مبنی ہے: 1. متحرک سٹاپ نقصان چینل قائم کرنے کے لئے اے ٹی آر اشارے کا استعمال کرتا ہے، جس میں چینل کی چوڑائی اے ٹی آر مدت اور حساسیت کے پیرامیٹرز کی طرف سے مقرر کی جاتی ہے ای ایم اے اور اے ٹی آر چینل کے درمیان کراس اوور کے ذریعے خرید / فروخت سگنل کا تعین کرتا ہے 5 منٹ سے 2 گھنٹے تک متعدد ٹائم فریموں میں آپریشن کی حمایت کرتا ہے موجودہ پوزیشنوں کی بنیاد پر خرید / فروخت کی مقدار کو متحرک طور پر ایڈجسٹ کرنے کے لئے پورٹ فولیو ٹریکنگ میکانزم کو شامل کرتا ہے 5. جھوٹے سگنل کو کم کرنے کے لئے ہیکن آشی موم بتیوں کا اختیاری استعمال

حکمت عملی کے فوائد

  1. اعلی موافقت - مختلف مارکیٹ کے حالات کے مطابق ڈائنامک طور پر اے ٹی آر کے ذریعے چینل کی چوڑائی کو ایڈجسٹ کرتا ہے
  2. کنٹرول شدہ خطرہ - بلٹ ان سٹاپ نقصان میکانزم اے ٹی آر چینل کے ذریعے متحرک سٹاپ نقصان کی سطح فراہم کرتا ہے
  3. آپریشنل لچک - مختلف آلات کے لئے مناسب ٹائم فریم کا انتخاب کرنے کی اجازت دینے والے کثیر مدت کے تجزیہ کی حمایت کرتا ہے
  4. پوزیشن مینجمنٹ - پورٹ فولیو ٹریکنگ کے ذریعے متحرک پوزیشن مینجمنٹ حاصل کرتا ہے
  5. سگنل استحکام - شور کو کم کرنے اور سگنل کے معیار کو بہتر بنانے کے لئے اختیاری ہموار موم بتیاں

حکمت عملی کے خطرات

  1. رجحان انحصار - مختلف مارکیٹوں میں کثرت سے تجارت پیدا کر سکتا ہے
  2. تاخیر - حرکت پذیر اوسط اور اے ٹی آر کا استعمال کچھ سگنل تاخیر متعارف کراتا ہے
  3. پیرامیٹر حساسیت - حکمت عملی کی کارکردگی جو اے ٹی آر مدت اور حساسیت پیرامیٹرز کے انتخاب سے بہت زیادہ متاثر ہوتی ہے
  4. منی مینجمنٹ - اوور پوزیشننگ سے بچنے کے لئے تجارتی مقدار کی مناسب ترتیب کی ضرورت ہے
  5. مارکیٹ میں موافقت - کارکردگی مختلف مارکیٹ کے حالات میں مختلف ہوسکتی ہے

حکمت عملی کی اصلاح کی ہدایات

  1. سگنل فلٹرنگ
  • رجحان کی طاقت کی تصدیق کے اشارے شامل کریں
  • حجم تجزیہ متعارف کروانا
  • اتار چڑھاؤ فلٹر شامل کرنے پر غور کریں
  1. پوزیشن مینجمنٹ
  • عدم استحکام کی بنیاد پر پوزیشن کے سائز کو متحرک طور پر ایڈجسٹ کریں
  • پیمانے پر اندراج اور باہر نکلنے کا نفاذ
  • زیادہ سے زیادہ کھینچنے کا کنٹرول شامل کریں
  1. سٹاپ نقصان کی اصلاح
  • سٹاپ کی جگہ کے لئے حمایت / مزاحمت کی سطح شامل کریں
  • ٹرائلنگ اسٹاپس کو نافذ کریں
  • سٹاپ فاصلے کے حساب کے طریقہ کار کو بہتر بنائیں

خلاصہ

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='ADET GİRMELİ Trend İz Süren Stop Strategy', overlay=true, overlay=true,default_qty_type = strategy.fixed, default_qty_value = 1)

// Inputs
a = input(9, title='Key Value. "This changes the sensitivity"')
c = input(3, title='ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')

xATR = ta.atr(c)
nLoss = a * xATR

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close

xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2

pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3

xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue

ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)

buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below

barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
// Alım ve Satım Sinyalleri
buySignal = src > xATRTrailingStop and above
sellSignal = src < xATRTrailingStop and below

// Kullanıcı girişi
sell_quantity = input.int(1, title="Sell Quantity", minval=1)
buy_quantity = input.int(1, title="Buy Quantity", minval=1)

// Portföy miktarı (örnek simülasyon verisi)
var portfolio_quantity = 0

// Sinyal üretimi (örnek sinyal, gerçek stratejinizle değiştirin)
indicator_signal = (src > xATRTrailingStop and above) ? "buy" : 
                   (src < xATRTrailingStop and below) ? "sell" : "hold"

// Şartlara göre al/sat
if indicator_signal == "buy" and portfolio_quantity < buy_quantity
    strategy.entry("Buy Order", strategy.long, qty=buy_quantity)
    portfolio_quantity := portfolio_quantity + buy_quantity

if indicator_signal == "sell" and portfolio_quantity >= sell_quantity
    strategy.close("Buy Order", qty=sell_quantity)
    portfolio_quantity := portfolio_quantity - sell_quantity
// Plot buy and sell signals
plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

// Bar coloring
barcolor(barbuy ? color.rgb(6, 250, 14) : na)
barcolor(barsell ? color.red : na)

// Alerts
alertcondition(buy, 'UT Long', 'UT Long')
alertcondition(sell, 'UT Short', 'UT Short')

// Strategy Entry and Exit
if buy
    strategy.entry('Long', strategy.long)
if sell
    strategy.entry('Short', strategy.short)

// Optional Exit Conditions
if sell
    strategy.close('Long')
if buy
    strategy.close('Short')

// ///TARAMA///


// gurupSec = input.string(defval='1', options=['1', '2', '3', '4', '5','6','7'], group='Taraması yapılacak 40\'arlı gruplardan birini seçin', title='Grup seç')
// per = input.timeframe(defval='', title='PERİYOT',group = "Tarama yapmak istediğiniz periyotu seçin")
// loc = input.int(defval=20, title='Konum Ayarı', minval = -100,maxval = 200 , step = 5,  group='Tablonun konumunu belirleyin')




// func() =>
//     //ÖRNEK BİR FONKSİYON AŞAĞIDA YAZILMIŞTIR. SİZ DE İSTEDİĞİNİZ KOŞULLAR İÇİN TARAMA YAZABİLİRSİNİZ.
//     //rsi = ta.rsi(close,14)
//     //cond = rsi <= 30
//     //[close,cond]

     
//     ////value = ta.cci(close,length23)
//     cond = buySignal or sellSignal
//     [close,cond]


// c1 = input.symbol(title='1', defval='BIST:BRYAT',group = "1. Grup Hisseleri")
// c2 = input.symbol(title='2', defval='BIST:TARKM')
// c3 = input.symbol(title='3', defval='BIST:TNZTP')
// c4 = input.symbol(title='4', defval='BIST:ERBOS')
// c5 = input.symbol(title='5', defval='BIST:BFREN')
// c6 = input.symbol(title='6', defval='BIST:ALARK')
// c7 = input.symbol(title='7', defval='BIST:ISMEN')
// c8 = input.symbol(title='8', defval='BIST:CVKMD')
// c9 = input.symbol(title='9', defval='BIST:TTRAK')
// c10 = input.symbol(title='10', defval='BIST:ASELS')
// c11 = input.symbol(title='11', defval='BIST:ATAKP')
// c12 = input.symbol(title='12', defval='BIST:MGROS')
// c13 = input.symbol(title='13', defval='BIST:BRSAN')
// c14 = input.symbol(title='14', defval='BIST:ALFAS')
// c15 = input.symbol(title='15', defval='BIST:CWENE')
// c16 = input.symbol(title='16', defval='BIST:THYAO')
// c17 = input.symbol(title='17', defval='BIST:EREGL')
// c18 = input.symbol(title='18', defval='BIST:TUPRS')
// c19 = input.symbol(title='19', defval='BIST:YYLGD')
// c20 = input.symbol(title='20', defval='BIST:KLSER')
// c21 = input.symbol(title='21', defval='BIST:MIATK')
// c22 = input.symbol(title='22', defval='BIST:ASTOR')
// c23 = input.symbol(title='23', defval='BIST:DOAS')
// c24 = input.symbol(title='24', defval='BIST:ERCB')
// c25 = input.symbol(title='25', defval='BIST:REEDR')
// c26 = input.symbol(title='26', defval='BIST:DNISI')
// c27 = input.symbol(title='27', defval='BIST:ARZUM')
// c28 = input.symbol(title='28', defval='BIST:EBEBK')
// c29 = input.symbol(title='29', defval='BIST:KLKIM')
// c30 = input.symbol(title='30', defval='BIST:ONCSM')
// c31 = input.symbol(title='31', defval='BIST:SOKE')
// c32 = input.symbol(title='32', defval='BIST:GUBRF')
// c33 = input.symbol(title='33', defval='BIST:KONTR')
// c34 = input.symbol(title='34', defval='BIST:DAPGM')
// c35 = input.symbol(title='35', defval='BIST:BVSAN')
// c36 = input.symbol(title='36', defval='BIST:ODAS')
// c37 = input.symbol(title='37', defval='BIST:OYAKC')
// c38 = input.symbol(title='38', defval='BIST:KRPLS')
// c39 = input.symbol(title='39', defval='BIST:BOBET')






// [v1,s1] = request.security(c1, per, func())
// [v2,s2] = request.security(c2, per, func())
// [v3,s3] = request.security(c3, per, func())
// [v4,s4] = request.security(c4, per, func())
// [v5,s5] = request.security(c5, per, func())
// [v6,s6] = request.security(c6, per, func())
// [v7,s7] = request.security(c7, per, func())
// [v8,s8] = request.security(c8, per, func())
// [v9,s9] = request.security(c9, per, func())
// [v10,s10] = request.security(c10, per, func())
// [v11,s11] = request.security(c11, per, func())
// [v12,s12] = request.security(c12, per, func())
// [v13,s13] = request.security(c13, per, func())
// [v14,s14] = request.security(c14, per, func())
// [v15,s15] = request.security(c15, per, func())
// [v16,s16] = request.security(c16, per, func())
// [v17,s17] = request.security(c17, per, func())
// [v18,s18] = request.security(c18, per, func())
// [v19,s19] = request.security(c19, per, func())
// [v20,s20] = request.security(c20, per, func())
// [v21,s21] = request.security(c21, per, func())
// [v22,s22] = request.security(c22, per, func())
// [v23,s23] = request.security(c23, per, func())
// [v24,s24] = request.security(c24, per, func())
// [v25,s25] = request.security(c25, per, func())
// [v26,s26] = request.security(c26, per, func())
// [v27,s27] = request.security(c27, per, func())
// [v28,s28] = request.security(c28, per, func())
// [v29,s29] = request.security(c29, per, func())
// [v30,s30] = request.security(c30, per, func())
// [v31,s31] = request.security(c31, per, func())
// [v32,s32] = request.security(c32, per, func())
// [v33,s33] = request.security(c33, per, func())
// [v34,s34] = request.security(c34, per, func())
// [v35,s35] = request.security(c35, per, func())
// [v36,s36] = request.security(c36, per, func())
// [v37,s37] = request.security(c37, per, func())
// [v38,s38] = request.security(c38, per, func())
// [v39,s39] = request.security(c39, per, func())


// roundn(x, n) =>
//     mult = 1
//     if n != 0
//         for i = 1 to math.abs(n) by 1
//             mult *= 10
//             mult

//     n >= 0 ? math.round(x * mult) / mult : math.round(x / mult) * mult


// scr_label = 'A/G İZSÜREN\n'
// scr_label := s1 ? scr_label + syminfo.ticker(c1) + ' ' + str.tostring(roundn(v1, 2)) + '\n' : scr_label
// scr_label := s2 ? scr_label + syminfo.ticker(c2) + ' ' + str.tostring(roundn(v2, 2)) + '\n' : scr_label
// scr_label := s3 ? scr_label + syminfo.ticker(c3) + ' ' + str.tostring(roundn(v3, 2)) + '\n' : scr_label
// scr_label := s4 ? scr_label + syminfo.ticker(c4) + ' ' + str.tostring(roundn(v4, 2)) + '\n' : scr_label
// scr_label := s5 ? scr_label + syminfo.ticker(c5) + ' ' + str.tostring(roundn(v5, 2)) + '\n' : scr_label
// scr_label := s6 ? scr_label + syminfo.ticker(c6) + ' ' + str.tostring(roundn(v6, 2)) + '\n' : scr_label
// scr_label := s7 ? scr_label + syminfo.ticker(c7) + ' ' + str.tostring(roundn(v7, 2)) + '\n' : scr_label
// scr_label := s8 ? scr_label + syminfo.ticker(c8) + ' ' + str.tostring(roundn(v8, 2)) + '\n' : scr_label
// scr_label := s9 ? scr_label + syminfo.ticker(c9) + ' ' + str.tostring(roundn(v9, 2)) + '\n' : scr_label
// scr_label := s10 ? scr_label + syminfo.ticker(c10) + ' ' + str.tostring(roundn(v10, 2)) + '\n' : scr_label
// scr_label := s11 ? scr_label + syminfo.ticker(c11) + ' ' + str.tostring(roundn(v11, 2)) + '\n' : scr_label
// scr_label := s12 ? scr_label + syminfo.ticker(c12) + ' ' + str.tostring(roundn(v12, 2)) + '\n' : scr_label
// scr_label := s13 ? scr_label + syminfo.ticker(c13) + ' ' + str.tostring(roundn(v13, 2)) + '\n' : scr_label
// scr_label := s14 ? scr_label + syminfo.ticker(c14) + ' ' + str.tostring(roundn(v14, 2)) + '\n' : scr_label
// scr_label := s15 ? scr_label + syminfo.ticker(c15) + ' ' + str.tostring(roundn(v15, 2)) + '\n' : scr_label
// scr_label := s16 ? scr_label + syminfo.ticker(c16) + ' ' + str.tostring(roundn(v16, 2)) + '\n' : scr_label
// scr_label := s17 ? scr_label + syminfo.ticker(c17) + ' ' + str.tostring(roundn(v17, 2)) + '\n' : scr_label
// scr_label := s18 ? scr_label + syminfo.ticker(c18) + ' ' + str.tostring(roundn(v18, 2)) + '\n' : scr_label
// scr_label := s19 ? scr_label + syminfo.ticker(c19) + ' ' + str.tostring(roundn(v19, 2)) + '\n' : scr_label
// scr_label := s20 ? scr_label + syminfo.ticker(c20) + ' ' + str.tostring(roundn(v20, 2)) + '\n' : scr_label
// scr_label := s21 ? scr_label + syminfo.ticker(c21) + ' ' + str.tostring(roundn(v21, 2)) + '\n' : scr_label
// scr_label := s22 ? scr_label + syminfo.ticker(c22) + ' ' + str.tostring(roundn(v22, 2)) + '\n' : scr_label
// scr_label := s23 ? scr_label + syminfo.ticker(c23) + ' ' + str.tostring(roundn(v23, 2)) + '\n' : scr_label
// scr_label := s24 ? scr_label + syminfo.ticker(c24) + ' ' + str.tostring(roundn(v24, 2)) + '\n' : scr_label
// scr_label := s25 ? scr_label + syminfo.ticker(c25) + ' ' + str.tostring(roundn(v25, 2)) + '\n' : scr_label
// scr_label := s26 ? scr_label + syminfo.ticker(c26) + ' ' + str.tostring(roundn(v26, 2)) + '\n' : scr_label
// scr_label := s27 ? scr_label + syminfo.ticker(c27) + ' ' + str.tostring(roundn(v27, 2)) + '\n' : scr_label
// scr_label := s28 ? scr_label + syminfo.ticker(c28) + ' ' + str.tostring(roundn(v28, 2)) + '\n' : scr_label
// scr_label := s29 ? scr_label + syminfo.ticker(c29) + ' ' + str.tostring(roundn(v29, 2)) + '\n' : scr_label
// scr_label := s30 ? scr_label + syminfo.ticker(c30) + ' ' + str.tostring(roundn(v30, 2)) + '\n' : scr_label
// scr_label := s31 ? scr_label + syminfo.ticker(c31) + ' ' + str.tostring(roundn(v31, 2)) + '\n' : scr_label
// scr_label := s32 ? scr_label + syminfo.ticker(c32) + ' ' + str.tostring(roundn(v32, 2)) + '\n' : scr_label
// scr_label := s33 ? scr_label + syminfo.ticker(c33) + ' ' + str.tostring(roundn(v33, 2)) + '\n' : scr_label
// scr_label := s34 ? scr_label + syminfo.ticker(c34) + ' ' + str.tostring(roundn(v34, 2)) + '\n' : scr_label
// scr_label := s35 ? scr_label + syminfo.ticker(c35) + ' ' + str.tostring(roundn(v35, 2)) + '\n' : scr_label
// scr_label := s36 ? scr_label + syminfo.ticker(c36) + ' ' + str.tostring(roundn(v36, 2)) + '\n' : scr_label
// scr_label := s37 ? scr_label + syminfo.ticker(c37) + ' ' + str.tostring(roundn(v37, 2)) + '\n' : scr_label
// scr_label := s38 ? scr_label + syminfo.ticker(c38) + ' ' + str.tostring(roundn(v38, 2)) + '\n' : scr_label
// scr_label := s39 ? scr_label + syminfo.ticker(c39) + ' ' + str.tostring(roundn(v39, 2)) + '\n' : scr_label


// var panel = table.new(position = position.top_right,columns = 10,rows = 10,bgcolor = color.green,frame_color = color.white,border_color = color.red)



// if barstate.islast
//     table.cell(panel,0,0,text = str.tostring(scr_label))
// //------------------------------------------------------



متعلقہ

مزید