চলমান গড় ক্রসওভার ট্রেডিং কৌশল একটি তুলনামূলকভাবে সাধারণ পরিমাণগত ট্রেডিং কৌশল। এই কৌশলটি বিভিন্ন সময়ের চলমান গড় গণনা করে এবং তাদের ক্রসওভারের পরিস্থিতি অনুসারে ট্রেডিং সংকেত তৈরি করে। বিশেষত, এটি 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)