विवरण:
मानक स्टोकास्टिक ऑस्सीलेटर जिसमें संवेदनशीलता विशेषता है।
इसके पास मानक स्टोकास्टिक के समान पैरामीटर हैं, लेकिन इसमें एक अतिरिक्त "संवेदनशीलता" पैरामीटर (संव पैरामीटर विंडो में) है।
यह हमें केवल कुछ पूर्व निर्धारित थ्रेशोल्ड के नीचे के ऑस्सिलेशन पर विचार करने की अनुमति देता है, जो कि प्वाइंट्स में निर्दिष्ट होता है। इस तरीके से हम कई झूठे सिग्नल को कम कर सकते हैं।
क्लासिकल लेन स्टोकास्टिक वर्तमान मूल्य को कुछ बार के लिए अधिकतम और न्यूनतम कीमतों के बीच रखता है, जो कि %K (Kperiod) मान द्वारा परिभाषित होता है, और यह चरम सीमाओं के बीच के अंतर को नहीं पहचानता, उदाहरण के लिए 1 प्वाइंट या 100 प्वाइंट्स। इन दोनों मामलों में परिणाम समान होंगे, और हमें ओवरबॉट/ओवरसोल्ड सिग्नल प्राप्त होंगे।
लेकिन कुछ थ्रेशोल्ड का उपयोग करके, हम केवल महत्वपूर्ण ऑस्सिलेशन पर विचार कर सकते हैं।चित्र 1 (EURUSD, 1M) में, मूल्य चार्ट, मानक स्टोकास्टिक और प्रस्तावित संकेतक प्रस्तुत हैं।
छवि:

चित्र 1.
संकेतक क्षेत्र iStochastic के लिए समान है, फर्क यह है कि इसमें एक अतिरिक्त पैरामीटर संव - संवेदनशीलता है।
आउटपुट बफर्स समान हैं: 0 - स्टोकास्टिक का मान स्वयं, 1 - सिग्नल लाइन।
double iCustom(string symbol, int timeframe, "_StochNR", int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift); // StochNR में नया संवक्षेत्र double iStochastic(string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift) // मानक स्टोकास्टिक
व्यावहारिक उपयोग के लिए, आप इसे ऊपर निर्दिष्ट के रूप में कॉल कर सकते हैं, लेकिन इसे एक और तरीके से करना बेहतर है। बस अपने Stoch फ़ंक्शन में कुछ कोड जोड़ें:
double Stoch(int Kperiod, int Slowing, int PriceFild, double sens, int i) { // अधिकतम और न्यूनतम कीमतें double max,min,c; for(int j=i; j<i+Slowing; j++) { if(PriceFild==1) { // बंद के लिए max+=Close[ArrayMaximum(Close,Kperiod,j)]; min+=Close[ArrayMinimum(Close,Kperiod,j)]; } else { // उच्च/न्यूनतम के लिए max+=High[ArrayMaximum(High,Kperiod,j)]; min+=Low[ArrayMinimum(Low,Kperiod,j)]; } c+=Close[j]; } double delta=max-min; if(delta<sens) { sens/=2; max+=sens; min-=sens; } delta=max-min; if(delta==0) double s0=1; else s0=(c-min)/delta; return(100*s0); }
यह स्पष्ट है, कि यदि आपको एक सिग्नल लाइन की आवश्यकता है, तो आपको इसके मान का एक अतिरिक्त मूविंग एवरेज चाहिए। एक और तरीका यह है कि इसे iCustom के 1स्ट बफर से प्राप्त करें, लेकिन यह धीमा होगा।
जैसा कि आप देख सकते हैं, अब नाम अधिक जानकारीपूर्ण है, इसमें मूल्य गणना का प्रकार है। यदि संवेदनशीलता 0 से अधिक परिभाषित है, तो इसका मान ऑस्सीलेटर के नाम में जोड़ा जाता है।
संपादक की टिप्पणी:
ध्यान दें कि यह मूल रूसी संस्करण का एक दर्पण अनुवाद है।
यदि आपके पास लेखक के लिए कोई प्रश्न, सुझाव या टिप्पणी हैं, तो उन्हें वहाँ पोस्ट करना बेहतर है।
यदि आपने इस कोड को व्यापार या शैक्षिक उद्देश्यों के लिए उपयोगी पाया है, तो लेखक को धन्यवाद देना न भूलें।