এই কৌশলটি একটি অপেক্ষাকৃত স্থিতিশীল এবং নির্ভরযোগ্য প্রবণতা ট্র্যাকিং ট্রেডিং কৌশল গঠনের জন্য স্টোকাস্টিক সূচকগুলির সাথে মিলিত দ্বৈত চলমান গড় সূচক এবং ট্রিপল এক্সপোনেন্সিয়াল চলমান গড় সূচক ব্যবহার করে। এর মূল ধারণাটি হল যখন চলমান গড় সূচক সোনার ক্রস বা মৃত্যুর ক্রস সনাক্ত করে তখন ট্রেডিং সংকেত ইস্যু করা; যখন স্টোকাস্টিক সূচকটি অত্যধিক ক্রয় এবং অত্যধিক বিক্রয় পরিস্থিতি বিচার করতে সহায়তা করতে ব্যবহৃত হয় যাতে মারাত্মক বাজারের ওঠানামা চলাকালীন ভুল সংকেত তৈরি করা এড়ানো যায়।
এই কৌশল প্রধানত চারটি অংশ নিয়ে গঠিতঃ
ডুয়াল মুভিং এভারেজ ইনডিকেটর: যথাক্রমে ৫০-পরিয়ড এবং ১০০-পরিয়ড এক্সপোনেন্সিয়াল মুভিং এভারেজ (ইএমএ) গণনা করে। এটি যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ এর উপরে অতিক্রম করে তখন একটি ক্রয় সংকেত এবং এর নীচে অতিক্রম করার সময় একটি বিক্রয় সংকেত তৈরি করে।
ট্রিপল এক্সপোনেন্সিয়াল ইন্ডিকেটর: বাজারের প্রবণতা দিক নির্ধারণের জন্য ৫০-পরিসরের, ১০০-পরিসরের এবং ২০০-পরিসরের এক্সপোনেন্সিয়াল চলমান গড় গণনা করে। যখন ৫০ ইএমএ> ১০০ ইএমএ> ২০০ ইএমএ হয়, তখন এটি একটি উত্থান বাজার। যখন ৫০ ইএমএ <১০০ ইএমএ <২০০ ইএমএ হয়, তখন এটি একটি হ্রাস বাজার।
স্টোকাস্টিক সূচকঃ ওভারকুপ এবং ওভারসোল্ড শর্তগুলি নির্ধারণের জন্য আরএসআইয়ের 6 দিনের কে এবং ডি মান গণনা করে। যখন কে মান ডি মানের উপরে অতিক্রম করে, এটি ওভারসোল্ড হয়। যখন নীচে অতিক্রম করে, এটি ওভারসোল্ড হয়।
ট্রেডিং সিগন্যালঃ শুধুমাত্র যখন ডুয়াল মুভিং মিডিয়ার সূচক একই সময়ে একটি সংকেত উৎপন্ন করে যখন বাজারটি ট্রিপল এক্সপোনেন্সিয়াল মুভিং মিডিয়ার উত্থান বা হ্রাসের অবস্থার সাথে সামঞ্জস্যপূর্ণ এবং স্টোকাস্টিক সূচকটি অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয় দেখায় না, তখনই সত্যিকারের ট্রেডিং অর্ডার জারি করা হবে।
এই কৌশলটি চলমান গড় সূচক এবং স্টোকাস্টিক সূচকগুলির সুবিধাগুলি একত্রিত করে। এটি ট্রেডিং সংকেত জারি করার সময় প্রবণতা দিকের বিচার এবং বাজারের অতিরিক্ত ক্রয় / oversold অবস্থা উভয়কেই বিবেচনা করে, যার ফলে আরও স্পষ্ট প্রবণতা ট্র্যাক করার জন্য আরও কার্যকরভাবে গোলমাল ফিল্টার করে। উপরন্তু, এটি সামগ্রিক প্রবণতা নির্ধারণের জন্য ট্রিপল এক্সপোনেন্সিয়াল চলমান গড় ব্যবহার করে, সংকেতগুলিকে আরও নির্ভরযোগ্য করে তোলে। এই কৌশলটি সহজ, বাস্তবায়ন করা সহজ এবং অনুকূলিত করা সহজ।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হ'ল এটি সূচক বিচারের উপর নির্ভর করে। যখন সূচকটি ভুল সংকেত দেয়, তখন এটি সহজেই ব্যর্থ ব্যবসায়ের দিকে পরিচালিত করতে পারে। এছাড়াও, সামগ্রিক প্রবণতা নির্ধারণের জন্য দীর্ঘ চক্রের চলমান গড় ব্যবহার করার সময়, কিছু স্বল্পমেয়াদী সুযোগও মিস করা যেতে পারে। মূল ঝুঁকি প্রতিরোধ ব্যবস্থাগুলি নিম্নরূপঃ
সূচক প্যারামিটারগুলিকে অনুকূল করা এবং বাজারের বৈশিষ্ট্যগুলির সাথে আরও ভালভাবে মেলে এমন দ্বৈত চলমান গড় এবং ট্রিপল এক্সপোনেন্সিয়াল চলমান গড়ের চক্রের সংমিশ্রণগুলি সামঞ্জস্য করা।
বাজারটি যখন মারাত্মক ওঠানামা দেখায় তখন চলমান লেনদেন বন্ধ করে দিতে CANCEL লেনদেনের জন্য আরও সূচক অন্তর্ভুক্ত করা।
দীর্ঘমেয়াদী ষাঁড়বাজারে স্বল্পমেয়াদী সুযোগগুলি মূলধন করার জন্য সহায়ক স্বল্পমেয়াদী ষাঁড়বাজারের কৌশলগুলি ব্যবহার করুন।
এই কৌশলটি অপ্টিমাইজ করা যেতে পারে এমন প্রধান দিকগুলির মধ্যে রয়েছেঃ
বাজারের বৈশিষ্ট্যগুলির সাথে সূচকগুলির অভিযোজনকে অনুকূল করার জন্য দ্বৈত চলমান গড় এবং ট্রিপল এক্সপোনেন্সিয়াল চলমান গড়ের চক্রের পরামিতিগুলি সামঞ্জস্য করুন।
ভলিউম, এমএসিডি এবং অন্যান্য সিদ্ধান্তগুলি বাড়ান যাতে ভুল সংকেত সৃষ্টি করে এমন অস্বাভাবিক দামের গতিবিধি এড়ানো যায়।
স্বল্পমেয়াদী প্রত্যাহারের পরে ভুল সংকেত এড়াতে মোমবাতি প্যাটার্ন ব্যবহার করে প্রবণতা নিশ্চিত করা ভাল।
স্টক, ফরেক্স এর মতো আরও বিভিন্ন ধরণের সাথে এটি প্রসারিত করুন এবং কৌশলটির অভিযোজনযোগ্যতা পরীক্ষা করুন।
সামগ্রিক বাজারের অস্থিরতা নির্ধারণ এবং নিয়ন্ত্রণ পজিশনের আকার নির্ধারণের জন্য VIX সূচক অন্তর্ভুক্ত করা।
এই কৌশলটি ট্রেডিং সিগন্যাল জারি করার জন্য দ্বৈত চলমান গড় সূচক ব্যবহার করে, ট্রিপল এক্সপোনেনশিয়াল চলমান গড় এবং স্টোকাস্টিক সূচকগুলি পরিপূরক হিসাবে, যার ফলে তুলনামূলকভাবে স্থিতিশীল প্রবণতা ট্র্যাকিং কৌশল তৈরি হয়। এটি সহজ, বাস্তবায়ন করা সহজ, বাজারের বৈশিষ্ট্যগুলির সাথে অত্যন্ত মেলে, স্থিতিশীল রিটার্ন সরবরাহ করে। এটি সুপারিশ করার মতো একটি মূল্যবান পরিমাণগত কৌশল। লক্ষ্যবস্তু অপ্টিমাইজেশনের মাধ্যমে এটি আরও ভাল ফলাফল অর্জনের সম্ভাবনা রয়েছে।
/*backtest start: 2023-12-07 00:00:00 end: 2023-12-12 08:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='5212 EMA Strategy', shorttitle='5212 EMA', overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=10, calc_on_every_tick=false) //**Backtest Date sof useStartPeriodTime = input.bool(true , 'Start Date & Time' , group='Date Range' , inline='Start Period') startPeriodTime = input(timestamp('16 Apr 2021') , '' , group='Date Range' , inline='Start Period') useEndPeriodTime = input.bool(false , 'End Date & Time' , group='Date Range' , inline='End Period') endPeriodTime = input(timestamp('31 Dec 2222') , '' , group='Date Range' , inline='End Period') enableHighlight = input.bool(false , 'Highlight' , group='Date Range' , inline='Highlight') highlightType = input.string('Anchors' , '' , group='Date Range' , inline='Highlight' , options=['Anchors', 'Background']) highlightColor = input.color(color.white , '' , group='Date Range' , inline='Highlight') start = useStartPeriodTime ? startPeriodTime >= time : false end = useEndPeriodTime ? endPeriodTime <= time : false calcPeriod = true // var line startAnchor = line.new(na, na, na, na, xloc.bar_time, extend.both, highlightColor, width=2) // var line endAnchor = line.new(na, na, na, na, xloc.bar_time, extend.both, highlightColor, width=2) // useBgcolor = false // if enableHighlight // if highlightType == 'Anchors' // if useStartPeriodTime // line.set_xy1(startAnchor, startPeriodTime, low) // line.set_xy2(startAnchor, startPeriodTime, high) // if useEndPeriodTime // line.set_xy1(endAnchor, calcPeriod ? time : line.get_x1(endAnchor), low) // line.set_xy2(endAnchor, calcPeriod ? time : line.get_x1(endAnchor), high) // if highlightType == 'Background' // useBgcolor := true // useBgcolor // bgcolor(useBgcolor and calcPeriod ? color.new(highlightColor,90) : na, editable=false) //**Backtest Date eof src =input(close , 'Source' , group='Support') showEMA = input(true , 'Show EMA' , group='Support') //**Stochastic RSI sof smoothK = input.int(6 , "K" , group='Stochastic RSI' , minval=1) smoothD = input.int(6 , "D" , group='Stochastic RSI' , minval=1) lengthRSI = input.int(28 , "RSI Length" , group='Stochastic RSI' , minval=1) lengthStoch = input.int(28 , "Stoch Length" , group='Stochastic RSI' , minval=1) rsi1 = ta.rsi(src, lengthRSI) k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = ta.sma(k, smoothD) //**STochastic RSI eof //** EMA sof emain01 = input.int(50 , "EMAma Girang" , group='Moving Average Exponential' , minval=1) emain02 = input.int(100 , "EMAma Muda" , group='Moving Average Exponential' , minval=1) emain03 = input.int(200 , "EMAma Tua" , group='Moving Average Exponential' , minval=1) ema01 = ta.ema(src, emain01) ema02 = ta.ema(src, emain02) ema03 = ta.ema(src, emain03) plot(showEMA ? ema01 : na, 'EMAma Girang' , color = color.new(color.orange, 0)) plot(showEMA ? ema02 : na, 'EMAma Muda' , color = color.new(color.blue, 0)) plot(showEMA ? ema03 : na, 'EMAma Tua' , color = color.new(color.red, 0)) //** EMA eof //**Condition sof emaLong = ema01 > ema02 and ema02 > ema03 and low > ema03 emaShort = ema01 < ema02 and ema02 < ema03 and high < ema03 longCond = ta.crossover(k,d) and k <= 23 and emaLong shortCond = ta.crossunder(k,d) and k >= 77 and emaShort longClose = ta.crossunder(k,d) and k <= 77 shortClose = ta.crossover(k,d) and k >= 23 longCross = ta.crossover(ema01, ema02) shortCross = ta.crossunder(ema01, ema02) //**Condition eof //**Strategy sof if calcPeriod and longCond strategy.entry('long', strategy.long, when=longCond, comment='EN Long') strategy.close('long', when=shortClose, comment='EX Long') strategy.close('long', when=shortCross, comment='MD Short') if calcPeriod and shortCond strategy.entry('short', strategy.short, when=shortCond, comment='EN Short') strategy.close('short', when=longClose, comment='EX Short') strategy.close('short', when=longCross, comment='MD Long') if calcPeriod == false and ta.crossover(ema01, ema02) or ta.crossunder(ema01, ema02) strategy.cancel('long') strategy.cancel('short') //**Strategy eof //**Label sof entryText = str.tostring(strategy.position_avg_price, '##.###') longText = 'Long Entry : ' + entryText shortText = 'Short Entry : ' + entryText noTrade = 'Sleeping Mode' LongTrade = strategy.position_size > 0 ShortTrade = strategy.position_size < 0 Tekslabel = LongTrade ? longText : ShortTrade ? shortText : noTrade xPosition = timenow + math.round(ta.change(time)*1) yPosition = ta.highest(1) labelColor = LongTrade ? color.new(color.aqua, 0) : ShortTrade ? color.new(color.red, 0) : color.new(color.gray, 0) textColor = LongTrade ? color.new(color.black, 0) : ShortTrade ? color.new(color.white, 0) : color.new(color.white, 0) // lab_l = label.new( // xPosition, yPosition, Tekslabel, // color=labelColor, // textcolor=textColor, // style = label.style_label_left, // textalign=text.align_left, // xloc=xloc.bar_time, yloc = yloc.price) // label.delete(lab_l[1]) //**Strategy eof