চলমান গড় ক্রসওভার কৌশল একটি খুব সাধারণ পরিমাণগত ট্রেডিং কৌশল। এটি প্রবণতা এবং মুনাফা নির্ধারণের জন্য চলমান গড়ের সোনার ক্রস এবং মৃত্যুর ক্রস ব্যবহার করে। যখন স্বল্পমেয়াদী চলমান গড় দীর্ঘমেয়াদী চলমান গড়ের উপরে অতিক্রম করে, এটি একটি আপট্রেন্ডের সংকেত দেয় এবং একটি দীর্ঘ অবস্থান নেওয়া যেতে পারে। যখন স্বল্পমেয়াদী চলমান গড় দীর্ঘমেয়াদী চলমান গড়ের নীচে অতিক্রম করে, এটি একটি ডাউনট্রেন্ডের সংকেত দেয় এবং একটি সংক্ষিপ্ত অবস্থান নেওয়া যেতে পারে।
এই কৌশলটি প্রবেশ এবং প্রস্থান পয়েন্ট নির্ধারণের জন্য চলমান গড়ের সোনার ক্রস এবং মৃত্যুর ক্রসের উপর ভিত্তি করে। কোড দুটি বুলিয়ান ইনপুট পরামিতি ব্যবহার করেupOrDown
এবংlongOrShort
লং বা শর্ট নির্ধারণ করতে;percentInput
দাম পরিবর্তনের প্রান্তিক শতাংশ নির্ধারণ করা;closePositionDays
পজিশন ধরে রাখার জন্য দিনের সংখ্যা নির্ধারণ করতে।
মূল যুক্তি হলঃ গতকালের তুলনায় আজকের বৃদ্ধি / হ্রাস গণনা করুন। যদি এটি ইনপুট থ্রেশহোল্ড শতাংশে পৌঁছে যায়, তবে একটি ট্রেডিং সংকেত সক্রিয় হয়। যদি এটি একটি দীর্ঘ সংকেত হয়, যখন আজকের দাম গতকালের তুলনায় থ্রেশহোল্ডের চেয়ে বেশি বৃদ্ধি পায়, তখন দীর্ঘ যান। যদি এটি একটি সংক্ষিপ্ত সংকেত হয়, যখন আজকের দাম গতকালের তুলনায় থ্রেশহোল্ডের চেয়ে বেশি হ্রাস পায়, তখন সংক্ষিপ্ত যান।
লং/শর্ট হওয়ার পর, এন্ট্রি দিবস এবং পরবর্তী ৪ দিন চার্টে রঙিন চিহ্নিত হবে। ৪ দিন পর পজিশনটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।
ঝুঁকি ব্যবস্থাপনাঃ
চলমান গড় ক্রসওভার কৌশল একটি খুব সহজ এবং ব্যবহারিক পরিমাণগত ট্রেডিং কৌশল। স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী প্রবণতার মধ্যে সম্পর্ক বিচার করে, এটি সম্পদ মূল্যের প্রবণতা প্রকৃতি থেকে লাভ করে। এই কৌশলটি পরিষ্কার যুক্তির সাথে বাস্তবায়ন করা সহজ, এবং অনেক পরিমাণগত ট্রেডিং কৌশলগুলির ভিত্তি গঠন করে। আমরা পরামিতি টিউনিং এবং অপ্টিমাইজেশনের মাধ্যমে আরও ভাল পারফরম্যান্স পেতে পারি। তবে আমাদের ঝুঁকি পরিচালনা করতে হবে এবং অপব্যবহার এড়াতে হবে।
/*backtest start: 2023-01-01 00:00:00 end: 2023-10-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Created by Leon Ross strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick=true, initial_capital=100000) //Inputs longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day percentInput = input(title="Percent", type=float, defval=4.5) closePositionDays = input(title="How Many Days to Close Position", defval=4) //Conditions //percentUpValue = (close / close[1]) - 1 //percentUp = percentUpValue >= (percentInput/100.0) //upConditions = percentUp //percentDownValue = 1- (close / close[1]) //percentDown = percentDownValue >= (percentInput/100.0) //downConditions = percentDown upValue = (close / close[1]) - 1 downValue = 1 - (close / close[1]) allConditions = if(upOrDown) upValue >= (percentInput/100.0) else downValue >= (percentInput/100.0) //Plots bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70) bgcolor(allConditions ? silver : na, transp=70, offset=1) bgcolor(allConditions ? silver : na, transp=70, offset=2) bgcolor(allConditions ? silver : na, transp=70, offset=3) bgcolor(allConditions ? silver : na, transp=70, offset=4) //bgcolor(downConditions == 1 ? red : na, transp=70) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4) //Entires if(longOrShort) strategy.entry(id = "Long", long = true, when = allConditions) else strategy.entry(id = "Short", long = false, when = allConditions) //Exits if (barssince(allConditions) == closePositionDays) if(longOrShort) strategy.close("Long") else strategy.close("Short")