बैकटेस्टिंग के महत्व और महत्व में कोई संदेह नहीं है। मात्रात्मक बैकटेस्टिंग करते समय, रणनीति को ऐतिहासिक वातावरण में यथासंभव वास्तविक और करीब रखा जाना चाहिए। यदि ऐतिहासिक वातावरण में कुछ विवरणों को नजरअंदाज कर दिया जाता है, तो संपूर्ण मात्रात्मक बैकटेस्टिंग अमान्य हो सकती है। यह लेख उचित मात्रात्मक ट्रेडिंग बैकटेस्टिंग करने का तरीका बताएगा।
बैकटेस्टिंग डेटा प्लेबैक के बराबर है। ऐतिहासिक के-लाइन डेटा को वापस चलाकर और वास्तविक बाजार के व्यापार नियमों, जैसे कि शार्प अनुपात, अधिकतम रिट्रेसमेंट दर, वार्षिक रिटर्न दर और पूंजी वक्र को निष्पादित करके। वर्तमान में, कई सॉफ़्टवेयर हैं जो इन सभी को कर सकते हैं, जैसे कि
एफएमजेड क्वांट एक वाणिज्यिक मात्रात्मक ट्रेडिंग सॉफ्टवेयर के रूप में, उच्च प्रदर्शन बैकटेस्ट इंजन के साथ आता है, जो गणना को तेजी से मात्रात्मक बनाने के लिए फोर-लूप (पोलिंग) बैकटेस्ट फ्रेम का उपयोग करता है। और एकीकृत बैकटेस्टिंग और वास्तविक समय कोड,
उदाहरण के तौर पर एफएमजेड क्वांट
बैकटेस्ट कॉन्फ़िगरेशन इंटरफ़ेस में, आप इसे अपनी वास्तविक आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं। जैसेः सेट बैकटेस्ट अवधि, के लाइन चक्र, डेटा प्रकार (सिम्युलेशन स्तर के डेटा या वास्तविक बाजार स्तर के डेटा। इसके विपरीत, सिमुलेशन स्तर के डेटा बैकटेस्टिंग गति तेज है, वास्तविक बाजार स्तर के डेटा बैकटेस्टिंग अधिक सटीक है) । इसके अलावा, आप बैकटेस्ट और खाते के प्रारंभिक धन के लिए कमीशन शुल्क भी सेट कर सकते हैं।
वास्तविक व्यापार मूल्य और नियोजित व्यापार मूल्य के बीच हमेशा विचलन होगा। यह ऑफसेट आम तौर पर उस दिशा में आगे बढ़ रहा है जो व्यापारी के लिए अनुकूल नहीं है, जिसके परिणामस्वरूप व्यापार में अतिरिक्त नुकसान होता है। इसलिए, वास्तविक व्यापार वातावरण का अनुकरण करने के लिए फिसलन जोड़ना आवश्यक है।
स्पॉट ट्रेडिंग विकल्प मुख्य रूप से क्रिप्टोक्यूरेंसी ट्रेडिंग के लिए है, जब बैकटेस्टिंग, इसे डिफ़ॉल्ट सेटिंग्स में रखें ठीक होगा। यदि आप चाहते हैं, तो आप इन सेटिंग्स में सभी मापदंडों को निर्दिष्ट कर सकते हैं। इसके अलावा, कुछ क्रिप्टोक्यूरेंसी एक्सचेंजों के लिए, आप लीवरेज आकार और अन्य संबंधित सेटिंग्स भी सेट कर सकते हैं।
बैकटेस्टिंग से पहले, अपनी ट्रेडिंग रणनीति निर्धारित करें। यहाँ हम
// 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 से अधिक के शार्प अनुपात के साथ। कृपया जल्दबाजी न करें, इस मामले में, अधिकांश स्थितियां भविष्य के कार्यों का उपयोग कर रही हैं, कीमतों को चोरी कर रही हैं, ओवर-फिटिंग, या कोई स्लिप मूल्य जोड़ा नहीं गया है, आदि। आप इन मुद्दों को बाहर करने के लिए नमूना डेटा और सिमुलेशन रियल-मार्केट ट्रेडिंग का उपयोग कर सकते हैं।
उपरोक्त ट्रेडिंग रणनीति बैकटेस्टिंग की पूरी प्रक्रिया है, यह कहा जा सकता है कि यह हर विवरण के लिए विशिष्ट रहा है। यह ध्यान दिया जाना चाहिए कि ऐतिहासिक डेटा बैकटेस्टिंग एक आदर्श वातावरण है जहां सभी जोखिम ज्ञात हैं। इसलिए, रणनीति के बैकटेस्टिंग समय के लिए बैल और भालू बाजार के दौर से गुजरना सबसे अच्छा है। कुछ बचे हुए पूर्वाग्रहों से बचने के लिए, ट्रेडिंग की प्रभावी संख्या 100 से कम नहीं होनी चाहिए।
बाजार हमेशा परिवर्तन और विकास की प्रक्रिया में है। ऐतिहासिक बैकटेस्टिंग रणनीति का मतलब यह नहीं है कि भविष्य एक जैसा ही रहेगा। यह न केवल रणनीति को बैकटेस्टिंग वातावरण में ज्ञात संभावित जोखिमों का सामना करने देना है, बल्कि भविष्य में अज्ञात जोखिमों से भी निपटना है। इसलिए, रणनीति के जोखिम प्रतिरोध और सार्वभौमिकता को बढ़ाना बहुत आवश्यक है।
इस खंड में रणनीति की नकल करने की कोशिश करें और इसे बैकटेस्ट करें।
अपने व्यापारिक अनुभव के आधार पर इस खंड में रणनीति में सुधार और अनुकूलन करने का प्रयास करें।