চলমান গড় ক্রসওভার কৌশল হল চলমান গড়ের উপর ভিত্তি করে একটি সহজ কিন্তু কার্যকর পরিমাণগত ট্রেডিং কৌশল। এটি একটি দ্রুত চলমান গড় লাইন এবং একটি ধীর চলমান গড় লাইন ক্রসওভার ব্যবহার করে ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করে। যখন দ্রুত লাইন নীচে থেকে ধীর লাইনটি ভেঙে যায়, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন দ্রুত লাইনটি উপরে থেকে ধীর লাইনটি ভেঙে যায়, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
এই কৌশলটির মূল যুক্তি হ'ল বাজারের প্রবণতা বিচার করার জন্য চলমান গড়গুলি ব্যবহার করা। চলমান গড়গুলির নিজেরাই এলোমেলো বাজারের গোলমাল ফিল্টার করার কার্যকারিতা রয়েছে। দ্রুত চলমান গড়টি দামের পরিবর্তনে দ্রুত প্রতিক্রিয়া জানাতে পারে এবং সর্বশেষ প্রবণতা প্রতিফলিত করতে পারে, যখন ধীর চলমান গড়টি সর্বশেষ মূল্য পরিবর্তনে ধীর প্রতিক্রিয়া জানায় এবং মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতা উপস্থাপন করে। ধীর লাইনের মাধ্যমে দ্রুত লাইনের অগ্রগতি মানে স্বল্পমেয়াদী প্রবণতা মাঝারি-দীর্ঘমেয়াদী প্রবণতার সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য বিপরীত হয়েছে, যার ফলে ট্রেডিং সংকেত তৈরি হয়।
বিশেষত, এই কৌশলটি প্রথমে দ্রুত চলমান গড় sig1 এবং ধীর চলমান গড় sig2 সংজ্ঞায়িত করে। তারপরে, sig1 এবং sig2 এর মধ্যে ক্রসওভার সম্পর্কের ভিত্তিতে কিনুন এবং বিক্রয় পয়েন্টগুলি নির্ধারণ করা হয়। যখন sig1 নীচে থেকে sig2 এর মাধ্যমে ভেঙে যায়, তখন একটি দীর্ঘ শর্ত longCondition উত্পন্ন হয়। যখন sig1 উপরে থেকে sig2 এর মাধ্যমে ভেঙে যায়, তখন একটি সংক্ষিপ্ত শর্ত shortCondition উত্পন্ন হয়। কৌশলটি তখন দীর্ঘ এবং সংক্ষিপ্ত শর্ত পূরণ হলে অর্ডার দেয় এবং স্টপ লস সেট করে এবং প্রফিট গ্রহণ করে প্রস্থান আদেশগুলি।
এই কৌশলটির সুবিধাগুলি উল্লেখযোগ্যঃ
এই কৌশলটির সাথে কিছু ঝুঁকিও রয়েছেঃ
অপ্টিমাইজেশান ব্যবস্থাঃ
সাধারণভাবে, চলমান গড় ক্রসওভার কৌশলটি সহজ যুক্তি, শক্তিশালী ব্যবহারিকতা এবং স্থিতিশীলতার সাথে একটি পরিমাণ কৌশল। প্যারামিটার টিউনিং এবং সঠিক অপ্টিমাইজেশানগুলির সাথে এটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীল মুনাফা অর্জন করতে পারে। পরিমাণগত ব্যবসায়ীদের জন্য মনোনিবেশ এবং প্রয়োগের মূল্য।
/*backtest start: 2023-11-14 00:00:00 end: 2023-11-16 04:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Simple yet effective MA cross strategy. // You'll have to tune the parameters to get an optimal win ratio. // If JPY or XAU or any other currency with pips defined as the // second decimal digit are involved, do not forget to set the respective flag on. // // Created by vitelot/yanez/Vts, who's the same fellow with different user names // December 2018 -- Merry Xmas // strategy("MA cross strategy Vts", overlay=true, initial_capital=1000, currency="EUR", pyramiding=0) yr = input(2016, title="Starting year to analyse") src = input(close, title="Source") maType = input( defval="EMA", title="MA Type", options=["SMA","EMA","HMA","McG","WMA"]) // isJPY = input(false, title="Is JPY or XAU involved?") // JPY and Gold have the pips defined as the 2 decimal digit maPar1 = input(26, minval=1, title="MA fast period") maPar2 = input(51, minval=2, title="MA slow period") atrPar = input(14,minval=1, title="ATR period") atrMulSL = input(1.5, title="SL ATR multiplicator") atrMulTP = input(1.0, title="TP ATR multiplicator") hma(sig, n) => // Hull moving average definition wma( 2*wma(sig,round(n/2))-wma(sig,n), round(sqrt(n))) mcg(sig,length) => // Mc Ginley MA definition mg = 0.0 mg := na(mg[1]) ? ema(sig, length) : mg[1] + (sig - mg[1]) / (length * pow(sig/mg[1], 4)) ma(t,sig,len) => if t =="SMA" sma(sig,len) else if t == "EMA" ema(sig,len) else if t == "HMA" hma(sig,len) else if t == "McG" // Mc Ginley mcg(sig,len) else wma(sig,len) sig1 = ma(maType, src, maPar1) sig2 = ma(maType, src, maPar2) tickFactor = isJPY? 1e3: 1e5 sl = atrMulSL*atr(atrPar)*tickFactor tp = atrMulTP*atr(atrPar)*tickFactor plot(sig1, color=aqua, title="MA1", linewidth=2) plot(sig2, color=orange, title="MA2", linewidth=2) longCondition = crossunder(sig2, sig1) and year>=yr // change the >= to == if you like exact years not a range if (longCondition) strategy.entry("Long", strategy.long, qty=1) // exit trade when SL and TP are hit strategy.exit("Exit Long", "Long", loss=sl, profit=tp) if (crossunder(sig1, sig2)) // or when the short condition is met strategy.close("Long") shortCondition = crossover(sig2,sig1) and year>=yr // change the >= to == if you like exact years not a range if (shortCondition) strategy.entry("Short", strategy.short, qty=1) strategy.exit("Exit Short", "Short", loss=sl, profit=tp) if (crossover(sig1,sig2)) strategy.close("Short")