ATR মাল্টি-পিরিয়ড ট্রেডিং কৌশল অনুসরণ করে গতিশীল প্রবণতা

ATR EMA MA
সৃষ্টির তারিখ: 2024-12-12 16:00:56 অবশেষে সংশোধন করুন: 2024-12-12 16:00:56
অনুলিপি: 0 ক্লিকের সংখ্যা: 347
1
ফোকাস
1617
অনুসারী

ATR মাল্টি-পিরিয়ড ট্রেডিং কৌশল অনুসরণ করে গতিশীল প্রবণতা

ওভারভিউ

এই কৌশলটি একটি গতিশীল প্রবণতা ট্র্যাকিং সিস্টেম যা এটিআর (এভারেজ রিয়েল ওয়েভ) সূচকের উপর ভিত্তি করে, মাল্টি-সাইক্লিক বিশ্লেষণ এবং পোর্টফোলিও পরিচালনার সাথে মিলিত। কৌশলটি বিভিন্ন সময়কালের মধ্যে প্রবণতা পরিবর্তনকে ক্যাপচার করে, এটিআর চ্যানেলের সাথে দামের আপেক্ষিক অবস্থান অনুসরণ করে এবং ব্যবহারকারীর দ্বারা সেট করা লেনদেনের সংখ্যার উপর ভিত্তি করে গতিশীল পজিশন পরিচালনা করে। কৌশলটির নকশাটি প্রবণতা ট্র্যাকিংয়ের স্থায়িত্ব এবং লেনদেনের সময়গুলির নমনীয়তা উভয়কেই বিবেচনা করে।

কৌশল নীতি

কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করে:

  1. এটিআর সূচক ব্যবহার করে একটি গতিশীল স্টপডাউন চ্যানেল তৈরি করুন, চ্যানেলের প্রস্থটি এটিআর চক্র এবং সংবেদনশীলতার প্যারামিটারগুলির দ্বারা নির্ধারিত হয়
  2. ইএমএ এবং এটিআর চ্যানেলের ক্রস দ্বারা ক্রয়-বিক্রয় সংকেত নির্ধারণ করা হয়েছে
  3. 5 মিনিট থেকে 2 ঘন্টা পর্যন্ত একাধিক সময়কালের উপর চালানোর জন্য সমর্থন
  4. পোর্টফোলিও ট্র্যাকিংয়ের সাথে, বর্তমান হোল্ডিং গতিশীলতা অনুসারে ক্রয়-বিক্রয় পরিমাণের সমন্বয়
  5. অপশনাল নমনীয় K-লাইন ব্যবহার করুন (Heikin Ashi) মিথ্যা সংকেত কমাতে

কৌশলগত সুবিধা

  1. অভিযোজনযোগ্যতা - এটিআর দ্বারা গতিশীলভাবে চ্যানেল প্রস্থের সমন্বয় করে বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে সক্ষম
  2. ঝুঁকি নিয়ন্ত্রিত - একটি অন্তর্নির্মিত ক্ষতি বন্ধ ব্যবস্থা, এটিআর চ্যানেলের মাধ্যমে গতিশীল ক্ষতি বন্ধ
  3. অপারেশন নমনীয়তা - মাল্টি-চক্র বিশ্লেষণ সমর্থন করে, বিভিন্ন জাতের বৈশিষ্ট্য অনুসারে উপযুক্ত সময়কাল নির্বাচন করা যায়
  4. পজিশন ম্যানেজমেন্ট - পোর্টফোলিও ট্র্যাকিংয়ের মাধ্যমে পজিশনের গতিশীল ব্যবস্থাপনা
  5. সিগন্যাল স্থিতিশীলতা - নয়েজ কমানোর জন্য এবং সিগন্যালের গুণমান উন্নত করার জন্য একটি চয়নযোগ্য মসৃণ K-লাইন

কৌশলগত ঝুঁকি

  1. প্রবণতার উপর নির্ভরশীলতা - বাজারে ঘন ঘন লেনদেন হতে পারে
  2. পিছিয়ে পড়া - গড় লাইন এবং এটিআর ব্যবহার করে কিছু সংকেত পিছিয়ে যায়
  3. প্যারামিটার সংবেদনশীলতা - ATR চক্র এবং সংবেদনশীলতা প্যারামিটার নির্বাচন কৌশল কর্মক্ষমতা উপর একটি বড় প্রভাব
  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))
// //------------------------------------------------------