ব্যাকটেস্টিং এর গুরুত্ব এবং গুরুত্ব অনস্বীকার্য। পরিমাণগত ব্যাকটেস্টিং করার সময়, কৌশলটি ঐতিহাসিক পরিবেশে যথাসম্ভব বাস্তব এবং কাছাকাছি স্থাপন করা উচিত। যদি ঐতিহাসিক পরিবেশে কিছু বিবরণ উপেক্ষা করা হয়, তবে পুরো পরিমাণগত ব্যাকটেস্টিং অবৈধ হতে পারে। এই নিবন্ধটি যথাযথ পরিমাণগত ট্রেডিং ব্যাকটেস্টিং কিভাবে করবেন তা ব্যাখ্যা করবে।
ব্যাকটেস্টিং ডেটা প্লেব্যাকের সমতুল্য। ঐতিহাসিক কে-লাইন ডেটা পুনরায় প্লে করে এবং শার্প অনুপাত, সর্বাধিক পুনরুদ্ধারের হার, বার্ষিক রিটার্নের হার এবং মূলধন বক্ররেখা যেমন বাস্তব বাজারের ট্রেডিং নিয়মগুলি সম্পাদন করে। বর্তমানে, অনেকগুলি সফ্টওয়্যার রয়েছে যা এই সমস্ত করতে পারে, যেমন
এফএমজেড কোয়ান্ট একটি বাণিজ্যিক পরিমাণগত ট্রেডিং সফ্টওয়্যার হিসাবে, উচ্চ-কার্যকারিতা ব্যাকটেস্ট ইঞ্জিনের সাথে আসে, ফর-লুপ (পোলিং) ব্যাকটেস্ট ফ্রেমওয়ার্ক ব্যবহার করে, দ্রুত গণনা পরিমাণে গণনা করতে। এবং ইউনিফাইড ব্যাকটেস্টিং এবং রিয়েল-টাইম কোড,
উদাহরণ হিসেবে FMZ Quant
ব্যাকটেস্ট কনফিগারেশন ইন্টারফেসে, আপনি এটি আপনার প্রকৃত প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারেন। যেমনঃ ব্যাকটেস্ট সময়কাল সেট করুন, কে লাইন চক্র, ডেটা টাইপ (সিমুলেশন স্তরের ডেটা বা বাস্তব বাজারের স্তরের ডেটা। এর বিপরীতে, সিমুলেশন স্তরের ডেটা ব্যাকটেস্টিং গতি দ্রুত, বাস্তব বাজারের স্তরের ডেটা ব্যাকটেস্টিং আরও নির্ভুল) । এছাড়াও, আপনি ব্যাকটেস্ট এবং অ্যাকাউন্টের প্রাথমিক তহবিলের জন্য কমিশন ফিও সেট করতে পারেন।
প্রকৃত ট্রেডিং মূল্য এবং পরিকল্পিত ট্রেডিং মূল্যের মধ্যে সর্বদা একটি বিচ্যুতি থাকবে। এই অফসেটটি সাধারণত এমন একটি দিকে চলে যা ব্যবসায়ীর পক্ষে অনুকূল নয়, যার ফলে ট্রেডিংয়ে অতিরিক্ত ক্ষতি হয়। অতএব, বাস্তব ট্রেডিং পরিবেশের অনুকরণ করতে স্লিপিং যুক্ত করা প্রয়োজন।
স্পট ট্রেডিং অপশনটি মূলত ক্রিপ্টোকারেন্সি ট্রেডিংয়ের জন্য, যখন ব্যাকটেস্টিং, এটি ডিফল্ট সেটিংসে রাখুন ঠিক থাকবে। যদি আপনি চান, আপনি এই সেটিংসে সমস্ত পরামিতি নির্দিষ্ট করতে পারেন। এছাড়াও, কিছু ক্রিপ্টোকারেন্সি এক্সচেঞ্জের জন্য, আপনি লিভারেজ আকার এবং অন্যান্য সম্পর্কিত সেটিংস সেট করতে পারেন।
ব্যাকটেস্টিং করার আগে, আপনার ট্রেডিং কৌশল নির্ধারণ করুন। এখানে আমরা
// Calculate CMI indicator to distinguish between Oscillating and trend market
CMI:=ABS(C-REF(C,29))/(HHV(H,30)-LLV(L,30))*100;
// Define key prices
KOD:=(H+L+C)/3;
// In the Oscillating market, the closing price is greater than the key price is suitable for selling market, otherwise it is for buying market
BE:=IFELSE(C>KOD,1,0);
SE:=IFELSE(C<=KOD,1,0);
// Define 10-day ATR indicator
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR10:=MA(TR,10);
// Define the highest and lowest price 3-day moving average
AVG3HI:=MA(H,3);
AVG3LO:=MA(L,3);
// Calculate the entry price of the Oscillating market
LEP:=IFELSE(C>KOD,O+ATR10*0.5,O+ATR10*0.75);
SEP:=IFELSE(C>KOD,O-ATR10*0.75,O-ATR10*0.5);
LEP1:=MAX(LEP,AVG3LO);
SEP1:=MIN(SEP,AVG3HI);
// Calculate the entry price of the trend market
UPBAND:=MA(C,50)+STD(C,50)*2;
DNBAND:=MA(C,50)-STD(C,50)*2;
// Calculate the quit price of the trend market
MA50:=MA(C,50);
// Oscillating strategy logic
CMI<20&&C>=LEP1,BK;
CMI<20&&C<=SEP1,SK;
CMI<20&&C>=AVG3HI,SP;
CMI<20&&C<=AVG3LO,BP;
// Trend strategy logic
CMI>=20&&C>=UPBAND,BK;
CMI>=20&&C<=DNBAND,SK;
CMI>=20&&C<=MA50,SP;
CMI>=20&&C>=MA50,BP;
AUTOFILTER;
সিমুলেশন ব্যাকটেস্টিং ইন্টারফেসে, ব্যাকটেস্টিং সেটিংস কনফিগার করার পরে, স্টার্ট ব্যাকটেস্টিং বোতামে ক্লিক করুন, এবং ব্যাকটেস্টিং ফলাফলগুলি কয়েক সেকেন্ডের পরে অবিলম্বে প্রদর্শিত হবে। ব্যাকটেস্টিং লগটিতে, এটি ব্যাকটেস্টিং, লগ এবং লেনদেনের মোট সংখ্যার জন্য কত সেকেন্ড ব্যবহৃত হয়েছে তা প্রদর্শন করবে। অ্যাকাউন্টের তথ্য কৌশল ব্যাকটেস্টের চূড়ান্ত ফলাফলগুলি মুদ্রণ করেঃ গড় লাভ এবং ক্ষতি, অবস্থান লাভ এবং ক্ষতি, মার্জিন, কমিশন ফি এবং আনুমানিক রিটার্ন।
স্ট্যাটাস বার ট্রেডিং বৈচিত্র্য, অবস্থান, অবস্থান মূল্য, সর্বশেষ মূল্য, পূর্ববর্তী ট্রেডিং সংকেত প্রকার, অবস্থান সর্বোচ্চ এবং সর্বনিম্ন মূল্য, আপডেট সংখ্যা পাশাপাশি মূলধন এবং সময় তথ্য রেকর্ড করে। উপরন্তু, উদ্ভিজ্জ মুনাফা এবং ক্ষতির লেবেল, অ্যাকাউন্টের বিস্তারিত তহবিল বক্ররেখা প্রদর্শিত হয়, এবং সাধারণভাবে ব্যবহৃত কর্মক্ষমতা সূচক এছাড়াও অন্তর্ভুক্ত করা হয়ঃ রিটার্ন হার, বার্ষিক রিটার্ন হার, শার্প অনুপাত, বার্ষিক অস্থিরতা, এবং সর্বোচ্চ পুনরুদ্ধার হার, যা মূলত ব্যবহারকারীদের চাহিদা বিপুল সংখ্যাগরিষ্ঠ সন্তুষ্ট করতে পারেন।
তাদের মধ্যে, সবচেয়ে গুরুত্বপূর্ণ কর্মক্ষমতা সূচক হলঃ শার্প অনুপাত। এটি ব্যাপক সূচক বাস্তবায়ন করার সময় সুবিধা এবং ঝুঁকি বিবেচনা করা হয়, এবং এটি একটি তহবিল পণ্য পরিমাপ করার জন্য একটি গুরুত্বপূর্ণ সূচক। সাধারণভাবে, এটি আপনি কত ঝুঁকি বহন, প্রতিটি সময় যখন আপনি মুনাফা উপার্জন, তাই শার্প অনুপাত মান উচ্চতর, ভাল।
বার্ষিক উদ্বায়ীতা, সহজভাবে বলতে গেলে, একটি পরিসংখ্যানকে বার্ষিকীকরণ করা একটি স্বল্প সময়ের মধ্যে পর্যবেক্ষণগুলি ধরে রাখে যা এক বছরের মধ্যে অব্যাহত থাকবে। এটি তহবিলের ঝুঁকির একটি পরিমাপ, তবে এটি অবশ্যই পুরো ঝুঁকি নয়। উদাহরণস্বরূপ, কৌশল এ এর বৃহত্তর উদ্বায়ীতা রয়েছে, তবে এটি উপরে উদ্বায়ীতা হয়েছে, মুনাফা ভাল; কৌশল বি এর একটি ছোট উদ্বায়ীতা রয়েছে, তবে এটি ধারাবাহিকভাবে চলমান হয়েছে ((ক্লান্তই সরানো হয়নি) । আমরা কি বলতে পারি যে কৌশল বি কৌশল এ এর চেয়ে ভাল? কৌশল এ নীচে দেখানো হয়েছেঃ
অবশেষে, লগ ইনফরমেশনে, ব্যাকটেস্টিংয়ের সময় প্রতিটি ট্রেডিং ব্রোকারেজ পরিস্থিতির একটি বিস্তারিত রেকর্ড, যার মধ্যে ট্রেডিংয়ের নির্দিষ্ট সময়, এক্সচেঞ্জের তথ্য, খোলা এবং বন্ধ পজিশনের ধরণ, ব্যাকটেস্ট ইঞ্জিনের অর্ডার ম্যাচিং প্রক্রিয়া, পাশাপাশি লেনদেনের সংখ্যা এবং মুদ্রণযোগ্য তথ্য অন্তর্ভুক্ত রয়েছে।
অনেক সময়, এবং বেশিরভাগ ক্ষেত্রে, ব্যাকটেস্টিং এর ফলাফল আপনার প্রত্যাশার থেকে অনেক দূরে থাকবে। সর্বোপরি, দীর্ঘমেয়াদী, স্থিতিশীল এবং লাভজনক কৌশল পাওয়া এত সহজ নয়, যার জন্য আপনার বাজার বোঝার ক্ষমতা প্রয়োজন।
যদি আপনার কৌশল ব্যাকটেস্টের ফলাফলগুলি অর্থ হারাচ্ছে, তবে হতাশ হবেন না। এটি আসলে বেশ স্বাভাবিক। দেখুন যে কোড দ্বারা কৌশল যুক্তিটি ভুলভাবে ব্যাখ্যা করা হয়েছে কিনা, এটি কিছু চরম পরামিতি ব্যবহার করছে কিনা, এটি খুব বেশি উদ্বোধনী অবস্থানের শর্তাবলী ব্যবহার করছে কিনা ইত্যাদি। এটি অন্য কোণ থেকে ট্রেডিং কৌশল এবং ট্রেডিং ধারণা পুনরায় পরীক্ষা করাও প্রয়োজনীয়।
যদি আপনার কৌশল ব্যাকটেস্টের ফলাফল খুব ভাল হয়, তহবিলের বক্ররেখা নিখুঁত হয়, যার শার্প অনুপাত 1 এর চেয়ে বেশি। দয়া করে তাড়াহুড়ো করবেন না। এই ক্ষেত্রে, বেশিরভাগ পরিস্থিতি ভবিষ্যতের ফাংশনগুলি ব্যবহার করছে, দাম চুরি করছে, অতিরিক্ত ফিটিং, বা কোনও স্লিপিং মূল্য যুক্ত করা হয়নি ইত্যাদি। আপনি এই সমস্যাগুলি বাদ দিতে নমুনা ছাড়াই ডেটা এবং সিমুলেশন রিয়েল মার্কেট ট্রেডিং ব্যবহার করতে পারেন।
উপরেরটি হ'ল ট্রেডিং কৌশল ব্যাকটেস্টিংয়ের পুরো প্রক্রিয়া, এটি বলা যেতে পারে যে এটি প্রতিটি বিবরণে নির্দিষ্ট ছিল। এটি লক্ষ করা উচিত যে historicalতিহাসিক ডেটা ব্যাকটেস্টিং একটি আদর্শ পরিবেশ যেখানে সমস্ত ঝুঁকি পরিচিত। অতএব, কৌশলটির ব্যাকটেস্টিং সময়ের জন্য একটি ষাঁড় এবং ভালুকের বাজারের মধ্য দিয়ে যাওয়া ভাল। কার্যকর সংখ্যক ব্যবসায়ের পরিমাণ 100 বারের কম হওয়া উচিত নয়, যাতে কিছু বেঁচে থাকা পক্ষপাত এড়ানো যায়।
বাজার সর্বদা পরিবর্তন এবং বিবর্তনের প্রক্রিয়ায় থাকে। ঐতিহাসিক ব্যাকটেস্টিং কৌশলটির অর্থ এই নয় যে ভবিষ্যতে একই হবে। এটি কেবল ব্যাকটেস্টিং পরিবেশে পরিচিত সম্ভাব্য ঝুঁকিগুলির সাথে মোকাবিলা করার জন্য নয়, ভবিষ্যতে অজানা ঝুঁকিগুলির সাথেও মোকাবিলা করার জন্য। অতএব, কৌশলটির ঝুঁকি প্রতিরোধ এবং সার্বজনীনতা বাড়ানো খুব প্রয়োজনীয়।
এই বিভাগে কৌশল কপি করার চেষ্টা করুন এবং এটি ব্যাকটেস্ট করুন।
আপনার ট্রেডিং অভিজ্ঞতার উপর ভিত্তি করে এই বিভাগে কৌশল উন্নত এবং অপ্টিমাইজ করার চেষ্টা করুন।