
মুভিং এভারেজ ক্রস ট্রেডিং স্ট্র্যাটেজি হল একটি সাধারণ পরিমাণগত ট্রেডিং কৌশল। এই কৌশলটি বিভিন্ন সময়ের মুভিং এভারেজ গণনা করে এবং তাদের ক্রসিংয়ের উপর ভিত্তি করে একটি ট্রেডিং সিগন্যাল তৈরি করে। বিশেষত, 4 টি, 8 টি এবং 20 টি সময়ের সূচকীয় মুভিং এভারেজ গণনা করে (ইএমএ), যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ অতিক্রম করে, তখন অতিরিক্ত করে; যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ অতিক্রম করে, তখন শূন্য করে।
এই কৌশলটির মূল যুক্তি হলঃ
এই পদ্ধতির মাধ্যমে, আমরা মার্কেট সিগন্যালের বিচার করার জন্য বিভিন্ন পিরিয়ডিক গড়ের মধ্যে ক্রস ব্যবহার করি এবং একটি স্থিতিশীল ট্রেডিং কৌশল তৈরি করার জন্য ভুল সংকেতগুলি ফিল্টার করার জন্য দীর্ঘতম পিরিয়ডিক গড়ের দিকটি ব্যবহার করি।
এই কৌশলটির প্রধান সুবিধাগুলো হল:
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
এই সমস্যা সমাধানের প্রধান উপায়গুলো হলঃ
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
৪. মডেল ইন্টিগ্রেশনঃ এলএসটিএম, আরএনএন ইত্যাদির সাথে গভীর শিক্ষার মডেলগুলির সাথে সংহতকরণ, আরও আলফা বের করতে
৫. সমন্বয় অপ্টিমাইজেশানঃ সমন্বয় অন্যান্য সূচক কৌশল সঙ্গে সমন্বয়, সমন্বয় কৌশল নির্মাণ
চলমান গড় ক্রস কৌশলটি সামগ্রিকভাবে একটি ক্লাসিক এবং সাধারণ পরিমাণে ব্যবহৃত পরিমাণে ট্রেডিং কৌশল। এই কৌশলটির যুক্তিটি সহজ, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায় এবং কিছুটা স্থিতিশীলতা রয়েছে। তবে কিছু সমস্যা রয়েছে, যেমন মিথ্যা সংকেত তৈরি করা, বাজার পরিবর্তনের সাথে খাপ খাইয়ে নেওয়া ইত্যাদি। এই সমস্যাগুলি প্যারামিটার অপ্টিমাইজেশন, স্টপ লস অপ্টিমাইজেশন, মডেল একীকরণ ইত্যাদির মাধ্যমে উন্নত করা যেতে পারে। সামগ্রিকভাবে, চলমান গড় কৌশলটি কৌশল সরঞ্জাম বাক্সের একটি মৌলিক মডিউল হিসাবে কাজ করতে পারে, অন্যান্য আরও জটিল কৌশলগুলির সাথে একত্রিত হয়ে একটি শক্তিশালী সমন্বিত কৌশল তৈরি করতে পারে।
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2.05)
//stock strategy
strategy(title = "stub", overlay = true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.0,default_qty_value=10000)
testStartYear = input(1900, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12, "Backtest Start Month")
testEndDay = input(1, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testPeriod() => true
ema1 = ema(close,4)
ema2 = ema(close,8)
ema3 = ema(close,20)
go_long = ema1[0] > ema2[0] and ema3[0] > ema3[1]
exit_long = ema1[0] < ema2[0] or ema3[0] < ema3[1]
go_short = ema1[0] < ema2[0] and ema3[0] < ema3[1]
exit_short = ema1[0] > ema2[0] or ema3[0] > ema3[1]
if testPeriod()
strategy.entry("simpleBuy", strategy.long, when=go_long)
strategy.exit("simpleBuy", "simpleSell",when=exit_long)
strategy.entry("simpleSell", strategy.short,when=go_short)
strategy.exit("simpleSell", "simpleSell",when=exit_short)