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