
ডাবল মুভিং এভারেজ বিপরীতমুখী ট্রেন্ডিং কৌশল হল একটি কৌশল যা মূলত ফরেক্স মার্কেটে মাঝারি মেয়াদে লেনদেনের জন্য ব্যবহৃত হয়। এই কৌশলটি দুটি ভিন্ন সময়ের চলমান গড় ব্যবহার করে ট্রেডিং সিগন্যাল তৈরি করে। যখন দ্রুত চলমান গড় এবং ধীর চলমান গড়ের গোল্ডেন ক্রস হয়, তখন বিপরীতমুখী ট্রেন্ডিংয়ের জন্য বিপরীতমুখী ট্রেডিংয়ের জন্য বিপরীতমুখী ট্রেডিংয়ের জন্য বিপরীতমুখী ট্রেডিংয়ের জন্য বিপরীতমুখী ট্রেডিংয়ের জন্য বিপরীতমুখী ট্রেডিংয়ের জন্য বিপরীতমুখী ট্রেডিংয়ের জন্য বিপরীতমুখী ট্রেডিংয়ের জন্য বিপরীতমুখী ট্রেডিংয়ের জন্য।
এই কৌশলটি 1 ঘন্টা এবং 1 দিনের দুটি সময়কালের চলমান গড় ব্যবহার করে। 1 ঘন্টা সময়কালের চলমান গড় দামের পরিবর্তনের জন্য আরও সংবেদনশীল, দ্রুত চলমান গড় হিসাবে কাজ করতে পারে; 1 দিনের সময়কালের চলমান গড় দামের পরিবর্তনের জন্য আরও ধীর প্রতিক্রিয়াশীল, ধীর চলমান গড় হিসাবে কাজ করতে পারে। যখন দ্রুত চলমান গড়ের উপরে ধীর চলমান গড়টি অতিক্রম করা হয়, তখন মনে করা হয় যে এটি এখন শূন্য বাজারে রয়েছে, একটি খালি সংকেত তৈরি করবে; যখন দ্রুত চলমান গড়ের নীচে ধীর চলমান গড়ের নীচে অতিক্রম করা হয়, তখন মনে হয় যে এটি এখন খালি বাজারে রয়েছে, একটি খালি সংকেত তৈরি করবে।
বিপরীতমুখী ট্রেডিংয়ের মূলনীতি হল যখন দ্রুত চলমান গড় এবং ধীর চলমান গড়ের একটি গোল্ডেন ক্রস বা ডেডফোর্ক হয়, তখন বাজারটি সম্ভবত একটি বিপরীতমুখী সংকেত দেয়। দ্রুত লাইনের উপর দিয়ে বা ধীর লাইনের নিচে দিয়ে যাওয়া একটি বিপরীতমুখী সংকেত তৈরি করার সময়। বিপরীতমুখী ট্রেডিংয়ের তত্ত্ব অনুসারে, দামগুলি সাধারণত একক উত্থান বা পতন হয় না, যখন একটি ব্রেকআউট বা গুরুত্বপূর্ণ সমর্থন এবং প্রতিরোধের পরে থাকে, তখন সম্ভবত শেয়ারের দামের বিপরীতমুখী মুহুর্ত। সুতরাং এই কৌশলটি ডাবল মুভিং এভারেজ লাইন বিপরীত সংকেতকে বিপরীতমুখী সুযোগগুলি ধরার জন্য ব্যবহার করে।
এই কৌশলটি ট্রেডিংয়ের সময় এবং তারিখের ফিল্টারিংয়ের শর্তও নির্ধারণ করে, কেবলমাত্র নির্দিষ্ট তারিখের মধ্যে এবং নির্দিষ্ট ট্রেডিং সময়ের মধ্যে ট্রেড করা হয়, অপ্রয়োজনীয় সময়ে ট্রেডিং এড়ানো যায়।
ডাবল মুভিং এভারেজ ট্রেন্ড রিভার্স কৌশলটির নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
বিপরীতমুখী কৌশলগুলি লাভের জন্য একটি বড় সুযোগ রয়েছে। বিপরীতমুখী ব্যবসায়গুলি মূল পয়েন্ট পয়েন্টগুলিতে বিপরীতমুখী অপারেশন করে, দামের ওঠানামার সাথে আরও বেশি মুনাফা অর্জন করতে পারে।
ডাবল মুভিং এভারেজ ব্যবহার করে সংমিশ্রণটি ফিল্টার করা হয়, যাতে ভুয়া সংকেতগুলি এড়ানো যায়। একক সূচকটি ভুয়া সংকেত তৈরি করতে সহজ, এবং ডাবল সূচক সংমিশ্রণটি সংকেতের নির্ভরযোগ্যতা বাড়িয়ে দেয়, কিছু ভুয়া সংকেতগুলি ফিল্টার করে, যাতে ব্যবসায়ের সুযোগগুলি আরও নির্ভরযোগ্য হয়।
ট্রেডিংয়ের সময় এবং তারিখের শর্তগুলি সেট করুন, বাজার নিষ্ক্রিয়তার সময় এড়িয়ে চলুন এবং আটকে পড়া এড়িয়ে চলুন। কেবলমাত্র সেট করা ট্রেডিংয়ের সময় এবং তারিখের মধ্যে ট্রেড করুন, দামের তীব্র ওঠানামা এড়াতে এবং ট্রেডিংয়ের বাধা এড়াতে।
বিপরীতমুখী কৌশলটি মাঝারি ব্যবসায়ের জন্য উপযুক্ত। উচ্চ-ফ্রিকোয়েন্সি ব্যবসায়ের তুলনায়, মাঝারি ব্যবসায়ের কৌশলটি আরও স্থিতিশীল এবং খুব ঘন ঘন ক্রয়-বিক্রয় এড়ানো যায়।
সর্বাধিক প্রত্যাহার নিয়ন্ত্রণ তহবিল পরিচালনার জন্য উপকারী। সর্বোচ্চ প্রত্যাহারের অনুপাত সেট করা ওভারনাইট ঝুঁকি নিয়ন্ত্রণ করতে এবং তহবিলের ব্যাপক ক্ষতি এড়াতে পারে।
ডাবল মুভিং এভারেজ ট্রেন্ড রিভার্স কৌশলগুলিও নিম্নলিখিত ঝুঁকি নিয়ে আসেঃ
বিপরীত সিগন্যালের ব্যর্থতা ক্ষতির কারণ হতে পারে। দামের বিপরীত সিগন্যাল সবসময় নির্ভরযোগ্য হয় না, যখন দাম চলতে থাকে এবং বিপরীত হয় না, তখন ক্ষতির ঝুঁকির মুখোমুখি হয়। ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস সেট করা যেতে পারে।
প্রবণতা থেকে বিচ্যুত হওয়ার ফলে লোকসান হয়। যখন দুটি চলমান গড় সুস্পষ্টভাবে পৃথক হয়ে যায়, তখন এটি বিপরীত হওয়ার ঝুঁকিতে থাকতে পারে। চলমান গড়ের ব্যবধানটি পর্যবেক্ষণ করে বিপরীত হওয়ার সময় নির্ধারণ করা যেতে পারে।
ট্রেডিং সময় ভুলভাবে সেট করা হলে আপনি সুযোগ মিস করতে পারেন। যদি ট্রেডিং সময়টি খুব কঠোরভাবে সেট করা হয় তবে আপনি কিছু ট্রেডিং সুযোগ মিস করতে পারেন। আপনি উপযুক্তভাবে ট্রেডিং সময়টি প্রসারিত করতে পারেন।
বিপরীতমুখী হওয়ার পরে সময়মতো ক্ষতি বন্ধ করা যায় না। যখন দামগুলি পূর্বের প্রবণতা চালিয়ে যায়, তখন ক্ষতি নিয়ন্ত্রণের জন্য সময়মতো ক্ষতি বন্ধ করতে হবে।
ডাবল মুভিং এভারেজ ট্রেন্ড রিভার্স কৌশলটি নিম্নলিখিত দিকগুলি থেকেও অপ্টিমাইজ করা যেতে পারেঃ
আরও ভাল ট্রেডিং সিগন্যালের জন্য আরও সূচকগুলির সমন্বয় পরীক্ষা করুন। অন্যান্য সূচক যেমন MACD, KDJ এবং ডাবল মুভিং এভারেজের সাথে সমন্বয় পরীক্ষা করে সংকেতের নির্ভুলতা বাড়ানো যেতে পারে।
চলমান গড়ের চক্রের প্যারামিটারগুলি অনুকূলিত করুন এবং সর্বোত্তম প্যারামিটারগুলি সন্ধান করুন। চলমান গড়ের বিভিন্ন দৈর্ঘ্যের প্যারামিটারগুলি পুনরায় পরীক্ষা করে সর্বোত্তম চক্রের সংখ্যা নির্ধারণ করা যেতে পারে।
ট্রেডিংয়ের সময় বাড়ান বা ছোট করুন, সর্বোত্তম ট্রেডিংয়ের সময়টি সন্ধান করুন। বিভিন্ন জাতের বৈশিষ্ট্য অনুসারে ট্রেডিংয়ের সময়সীমার কার্যকারিতা পরীক্ষা করুন।
প্রবণতা ফিল্টারিং শর্ত যুক্ত করুন, যাতে প্রবণতা এড়ানো যায়। প্রবণতা শক্তিশালী বা দুর্বল হওয়ার জন্য 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)