ডুয়াল মুভিং এভারেজ কাউন্টার ট্রেন্ড কৌশলটি মূলত ফরেক্স মার্কেটে প্রয়োগ করা সুইং ট্রেডিংয়ের জন্য ডিজাইন করা হয়েছে। এই কৌশলটি বিভিন্ন সময়সীমার দুটি চলমান গড় ব্যবহার করে ট্রেডিং সংকেত তৈরি করে। যখন দ্রুত চলমান গড়টি ধীর চলমান গড়ের উপরে অতিক্রম করে, তখন বিপরীতের সন্ধানে একটি শর্ট পজিশন নেওয়া হয়; যখন দ্রুত চলমান গড়টি ধীর চলমান গড়ের নীচে অতিক্রম করে, তখন বিপরীতের সন্ধানে একটি দীর্ঘ অবস্থান নেওয়া হয়।
এই কৌশলটি 1 ঘন্টা এবং 1 দিনের সময়সীমার চলমান গড় ব্যবহার করে। 1 ঘন্টা চলমান গড় মূল্য পরিবর্তনগুলিকে আরও সংবেদনশীলভাবে প্রতিফলিত করে এবং দ্রুত চলমান গড় হিসাবে কাজ করতে পারে; 1 দিনের চলমান গড় মূল্য পরিবর্তনের প্রতি আরও ধীর গতিতে প্রতিক্রিয়া জানায় এবং ধীর চলমান গড় হিসাবে কাজ করতে পারে। যখন দ্রুত চলমান গড় ধীর চলমান গড়ের উপরে অতিক্রম করে, তখন এটি বর্তমান বাজারকে উত্থান বলে মনে করা হয় এবং একটি সংক্ষিপ্ত সংকেত উত্পন্ন হবে; যখন দ্রুত চলমান গড় ধীর চলমান গড়ের নীচে অতিক্রম করে, তখন এটি বর্তমান বাজারকে মন্দা বলে মনে করা হয় এবং একটি দীর্ঘ সংকেত উত্পন্ন হবে।
যখন দ্রুত এবং ধীর চলমান গড়গুলির সোনার ক্রস বা মৃত ক্রস থাকে তখন বিপরীতমুখী সন্ধানের জন্য দীর্ঘ বা সংক্ষিপ্ত প্রবেশের নীতিটি হ'ল যখন দ্রুত এবং ধীর চলমান গড়গুলি ক্রস হয়, তখন এটি নির্দেশ করে যে বাজারটি বিপরীতমুখী হতে পারে এবং দ্রুত লাইন এবং ধীর লাইনের ক্রসগুলি বিপরীতমুখী সংকেত উত্পন্ন করার সময়। বিপরীতমুখী ট্রেডিং তত্ত্ব অনুসারে, দামগুলি সাধারণত এক দিকের দিকে বৃদ্ধি বা পতন করে না, এবং এটি সম্ভবত মূল্য বিপরীতমুখী সময় যখন গুরুত্বপূর্ণ সমর্থন এবং প্রতিরোধের স্তরের একটি অগ্রগতি হয়। অতএব, এই কৌশলটি বিপরীতমুখী সুযোগগুলি ক্যাপচার করতে দ্বৈত চলমান গড় বিপরীতমুখী সংকেত ব্যবহার করে।
এই কৌশলটি ব্যবসায়ের সময় এবং তারিখের স্ক্রিনিংয়ের শর্তও নির্ধারণ করে। এটি কেবলমাত্র নির্ধারিত তারিখের পরিসীমা এবং ব্যবসায়ের সময়সীমার মধ্যে ব্যবসায় করে যাতে অনুপযুক্ত সময়কালে ব্যবসায় এড়ানো যায়।
ডাবল মুভিং এভারেজ কাউন্টার ট্রেন্ড স্ট্র্যাটেজি নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
বিপরীতমুখী কৌশলগুলির বড় লাভের সুযোগ রয়েছে। বিপরীতমুখী ট্রেডিং মূল পয়েন্টগুলিতে কাউন্টার অপারেশন গ্রহণ করে অস্থির বাজারের অবস্থার মধ্যে উচ্চতর মুনাফা অর্জন করতে পারে।
ডাবল মুভিং এভারেজ সংমিশ্রণ ব্যবহার করে সংকেতগুলি ফিল্টার করে এবং মিথ্যা সংকেতগুলি এড়ায়। একটি একক সূচক মিথ্যা সংকেতগুলির জন্য প্রবণ, যখন ডাবল সূচক সংমিশ্রণগুলি কিছু মিথ্যা সংকেতগুলি ফিল্টার করে সংকেতগুলির নির্ভরযোগ্যতা উন্নত করতে পারে, যা ব্যবসায়ের সুযোগগুলিকে আরও নির্ভরযোগ্য করে তোলে।
ট্রেডিংয়ের সময় এবং তারিখের শর্তাবলী নির্ধারণ করে নিষ্ক্রিয় বাজার সময়গুলি এড়ানো যায় এবং ফাঁদে পড়া এড়ানো যায়। কেবলমাত্র সেট ট্রেডিংয়ের সময় এবং তারিখের ব্যাপ্তির সময় ট্রেডিং করে, নাটকীয় মূল্যের ওঠানামা এবং স্থবির ট্রেডিংয়ের সময়গুলি এড়ানো সম্ভব।
বিপরীতমুখী কৌশলগুলি মাঝারি মেয়াদী ব্যবসায়ের জন্য উপযুক্ত। উচ্চ ফ্রিকোয়েন্সি ট্রেডিংয়ের তুলনায়, মাঝারি মেয়াদী ট্রেডিং কৌশলগুলি আরও স্থিতিশীল, অত্যধিক ঘন ঘন ক্রয় এবং বিক্রয় এড়ানো।
সর্বাধিক ড্রাউন কন্ট্রোল মূলধন পরিচালনার জন্য উপকারী। সর্বাধিক ড্রাউন অনুপাত নির্ধারণ কার্যকরভাবে রাতারাতি ঝুঁকি নিয়ন্ত্রণ করতে পারে এবং তহবিলের বিশাল ক্ষতি এড়াতে পারে।
ডাবল মুভিং এভারেজ কাউন্টার ট্রেন্ড স্ট্র্যাটেজিতে নিম্নলিখিত ঝুঁকি রয়েছেঃ
বিপরীতমুখী সংকেতগুলি ক্ষতির দিকে পরিচালিত করতে ব্যর্থ হতে পারে। মূল্য বিপরীতমুখী সংকেতগুলি সর্বদা নির্ভরযোগ্য নয়। যখন দাম বিপরীতমুখী ছাড়াই প্রবণতা অব্যাহত রাখে তখন ক্ষতির ঝুঁকি থাকে। স্টপ লস সেট করে ক্ষতি নিয়ন্ত্রণ করা যায়।
প্রবণতার বিচ্যুতি ক্ষতির দিকে পরিচালিত করে। যখন দুটি চলমান গড় বিপরীত হওয়ার আগে উল্লেখযোগ্যভাবে পৃথক হয়ে যায়, তখন ক্ষতির ঝুঁকি থাকতে পারে। বিপরীতের সময়কাল চলমান গড়ের মধ্যে দূরত্ব পর্যবেক্ষণ করে নির্ধারণ করা যেতে পারে।
অনুপযুক্ত ট্রেডিং সময় সেটিং সুযোগ মিস করতে পারে। যদি ট্রেডিং সময় খুব কঠোরভাবে সেট করা হয়, কিছু ট্রেডিং সুযোগ মিস হতে পারে। ট্রেডিং সময় যথাযথভাবে প্রসারিত করা যেতে পারে।
বিপরীতমুখী হারের পরে অবিলম্বে হ্রাস বন্ধ না করা হ্রাসকে প্রসারিত করে। বিপরীতমুখী হওয়ার পরে, হ্রাস নিয়ন্ত্রণের জন্য দামগুলি প্রাথমিক প্রবণতা অব্যাহত রাখার সময় হ্রাসগুলি অবিলম্বে বন্ধ করা উচিত।
ডাবল মুভিং এভারেজ কাউন্টার ট্রেন্ড কৌশলটি নিম্নলিখিত দিকগুলিতেও অপ্টিমাইজ করা যেতে পারেঃ
আরও ভাল ট্রেডিং সংকেত খুঁজে পেতে আরও সূচকগুলির সংমিশ্রণ পরীক্ষা করুন। সংকেত নির্ভুলতা উন্নত করতে ডাবল চলমান গড়ের সাথে সংমিশ্রণে এমএসিডি, কেডিজে এর মতো সূচকগুলি পরীক্ষা করা যেতে পারে।
সর্বোত্তম পরামিতিগুলি খুঁজে পেতে চলমান গড় চক্রের পরামিতিগুলি অনুকূল করুন। বিভিন্ন দৈর্ঘ্যের চলমান গড়গুলি ব্যাকটেস্টিং করে সর্বোত্তম চক্রের সংখ্যা নির্ধারণ করা যেতে পারে।
অপ্টিম ট্রেডিং ঘন্টা খুঁজে পেতে ট্রেডিং ঘন্টা প্রসারিত বা সংকীর্ণ করুন। বিভিন্ন পণ্য বৈশিষ্ট্য অনুযায়ী ট্রেডিং ঘন্টা সমন্বয় প্রভাব পরীক্ষা করুন।
বিচ্যুতি এড়াতে প্রবণতা ফিল্টারিং শর্ত যুক্ত করুন। ADX এর মতো সূচকগুলি প্রবণতার শক্তি বিচার করতে এবং কোনও সুস্পষ্ট প্রবণতা না থাকলে বিপরীতটি এড়াতে যুক্ত করা যেতে পারে।
সিগন্যাল যাচাইয়ের জন্য মেশিন লার্নিং মডেল যুক্ত করুন। মডেলগুলি বিপরীত সংকেতগুলির নির্ভরযোগ্যতা বিচার করতে এবং কিছু নিম্ন মানের সংকেত ফিল্টার করতে প্রশিক্ষিত হতে পারে।
ডাবল মুভিং এভারেজ কাউন্টার ট্রেন্ড কৌশলটি ফরেক্স মার্কেটে মাঝারি মেয়াদী ট্রেডিংয়ের জন্য উপযুক্ত। এটি বিপরীত সংকেত তৈরি করতে দ্রুত এবং ধীর গতির গড়ের মধ্যে সোনার ক্রস এবং মৃত ক্রস ব্যবহার করে, মূল বাজারের পয়েন্টগুলিতে কাউন্টার অপারেশন করে, যার বড় মুনাফা স্পেসের সুবিধা রয়েছে। একই সাথে, এটি ঝুঁকি নিয়ন্ত্রণের জন্য ট্রেডিং ঘন্টা এবং সর্বাধিক ড্রডাউন এর মতো সেটিংসও ব্যবহার করে। এটি একটি অপেক্ষাকৃত স্থিতিশীল বিপরীত সিস্টেম যা ঝুঁকি নিয়ন্ত্রণের সময় উচ্চ রিটার্ন তৈরি করতে পারে। ভবিষ্যতে, এই কৌশলটি সূচক এবং পরামিতি অপ্টিমাইজেশান এবং মেশিন লার্নিং মডেলগুলির প্রয়োগের মতো পদ্ধতির মাধ্যমে উন্নত এবং অনুকূলিত করা যেতে পারে।
/*backtest start: 2023-12-08 00:00:00 end: 2024-01-07 00:00:00 period: 2h basePeriod: 15m 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/ // © SoftKill21 //@version=4 strategy("gbpnzd 1h", overlay=true) src = close useCurrentRes = input(true, title="Use Current Chart Resolution?") resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=input.resolution, defval="60") len = input(28, title="Moving Average Length - LookBack Period") //periodT3 = input(defval=7, title="Tilson T3 Period", minval=1) factorT3 = input(defval=7, title="Tilson T3 Factor - *.10 - so 7 = .7 etc.", minval=0) atype = input(2,minval=1,maxval=8,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA, 8=Tilson T3") fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true res = useCurrentRes ? timeframe.period : resCustom resCustom2 = input(title="plm", type=input.resolution, defval="D") res2 = resCustom2 //hull ma definition hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len))) //TEMA definition ema1 = ema(src, len) ema2 = ema(ema1, len) ema3 = ema(ema2, len) tema = 3 * (ema1 - ema2) + ema3 //Tilson T3 factor = factorT3 *.10 gd(src, len, factor) => ema(src, len) * (1 + factor) - ema(ema(src, len), len) * factor t3(src, len, factor) => gd(gd(gd(src, len, factor), len, factor), len, factor) tilT3 = t3(src, len, factor) avg = atype == 1 ? sma(src,len) : atype == 2 ? ema(src,len) : atype == 3 ? wma(src,len) : atype == 4 ? hullma : atype == 5 ? vwma(src, len) : atype == 6 ? rma(src,len) : atype == 7 ? 3 * (ema1 - ema2) + ema3 : tilT3 out = avg ema20 = security(syminfo.tickerid, res, out) plot3 = security(syminfo.tickerid, res2, ema20) plot33 = security(syminfo.tickerid, res, ema20) plot(plot3,linewidth=2,color=color.red) plot(plot33,linewidth=2,color=color.white) // longC = crossover(close[2], plot3) and close[1] > close[2] and close > close[1] // shortc = crossunder(close[2],plot3) and close[1] < close[2] and close < close[1] volumeMA=input(24) ema_1 = ema(volume, volumeMA) timeinrange(res, sess) => time(res, sess) != 0 //entrytime = timeinrange(timeframe.period, "0900-0915") myspecifictradingtimes = input('0900-2300', type=input.session, title="My Defined Hours") entrytime = time(timeframe.period, myspecifictradingtimes) != 0 longC = crossover(plot33,plot3) and time_cond and entrytime shortc = crossunder(plot33,plot3) and time_cond and entrytime // exitlong = crossunder(plot33,plot3) // exitshort = crossover(plot33,plot3) distanta=input(1.0025) exitshort = plot33/plot3 > distanta exitlong = plot3/plot33 > distanta inverse = input(true) exit = input(false) if(inverse==false) strategy.entry("long",1,when=longC) strategy.entry("short",0,when=shortc) if(inverse) strategy.entry("long",1,when=shortc) strategy.entry("short",0,when=longC) if(exit) strategy.close("long",when=exitlong) strategy.close("short",when=exitshort) // if(dayofweek==dayofweek.friday) // strategy.close_all() // risk = input(25) // strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)