संसाधन लोड हो रहा है... लोड करना...

एम भाषा में रणनीतियों को कैसे लागू करें

लेखक:अच्छाई, बनाया गयाः 2019-04-22 10:32:04, अद्यतन किया गयाः 2019-04-27 11:54:15

सारांश

पिछले लेख में, हमने एम भाषा, बुनियादी व्याकरण, मॉडल निष्पादन विधि और मॉडल वर्गीकरण की शुरूआत के पहलुओं से ट्रेडिंग रणनीति को साकार करने के आधार को समझाया। इस लेख में, हम सामान्य रूप से उपयोग किए जाने वाले रणनीति मॉड्यूल और प्रौद्योगिकियों से पिछले भाग को जारी रखेंगे। संकेतक, एक व्यवहार्य इंट्राडे क्वांटिटेटिव ट्रेडिंग रणनीति प्राप्त करने में आपकी सहायता के लिए कदम से कदम।

रणनीति मॉड्यूल

img

इस बारे में सोचिए, आप लेगो के टुकड़ों से एक रोबोट कैसे बनाते हैं? आप हमेशा ऊपर से नीचे या नीचे से ऊपर तक, टुकड़े-टुकड़े के साथ एक साथ नहीं बना सकते। थोड़ा सा सामान्य ज्ञान वाले लोग जानते हैं कि उन्हें अपने सिर, हाथ, पैर, पंख आदि को एक साथ रखना चाहिए, और फिर उन्हें एक पूर्ण रोबोट में जोड़ना चाहिए। कार्यक्रम लिखने के लिए भी यही सच है, एक ही रणनीति मॉड्यूल में आवश्यक कार्यों को लिखना, और फिर इन व्यक्तिगत रणनीति मॉड्यूल को एक पूरी ट्रेडिंग रणनीति में जोड़ना। नीचे मैं कुछ सामान्य रणनीति मॉड्यूल सूचीबद्ध करूंगाः

img

चरण वृद्धि

चरण वृद्धि वर्तमान के लाइन के समापन मूल्य के प्रतिशत की तुलना पिछले एन अवधि के समापन मूल्य के अंतर के साथ कर रहा है। उदाहरण के लिएः नवीनतम 10 के लाइन चरण वृद्धि की गणना, लिखा जा सकता हैः

CLOSE_0:=CLOSE; //get the current K-line's closing price, and save the results to variable CLOSE_0. 
CLOSE_10:=REF(CLOSE,10); //get the pervious 10 K-lines' closing price, and save the results to variable CLOSE_10

(CLOSE_0-CLOSE_10)/CLOSE_10*100;//calculating the percentage of current K line's closing price compare with previous N periods of closing price's difference.

नई उच्च कीमत

नई उच्चतम कीमत की गणना इस आधार पर की जाती है कि क्या वर्तमान K-लाइन N चक्रों उच्चतम मूल्य से अधिक है। उदाहरण के लिए: वर्तमान K-लाइन नवीनतम 10 K-लाइन उच्चतम मूल्य से अधिक है या नहीं, इसकी गणना इस प्रकार लिखी जा सकती हैः

HHV_10:=HHV(HIGH,10); //Get the highest price of latest 10 K-lines, which includes the current K-line.
HIGH>REF(HHV_10,1); //Judge whether the current K-line's highest price is greater than pervious K-lines' HHV_10 value.

व्यापारिक मात्रा में भारी वृद्धि के साथ कीमतों में वृद्धि

उदाहरण के लिए: यदि वर्तमान K लाइन का समापन मूल्य पिछले 10 K-लाइनों के समापन मूल्य का 1.5 गुना है, जिसका अर्थ है कि 10 दिनों में, मूल्य 50% बढ़ गया है; और ट्रेडिंग वॉल्यूम भी पिछले 10 K-लाइनों के 5 गुना से अधिक बढ़ गया है। लिखा जा सकता हैः

CLOSE_10:=REF(CLOSE,10); //get the 10th K-line closing price
IS_CLOSE:=CLOSE/CLOSE_10>1.5; //Judging whether the current K Line closing price is 1.5 times greater than the value of CLOSE_10 

VOL_MA_10:=MA(VOL,10); //get the latest 10 K-lines' average trading volume
IS_VOL:=VOL>VOL_MA_10*5; //Judging whether the current K-line's trading volume is 5 times greater than the value of VOL_MA_10

IS_CLOSE AND IS_VOL; //Judging whether the condition of IS_CLOSE and IS_VOL are both true.

मूल्य संकीर्ण-शॉक बाजार

संकीर्ण सदमे के बाजार का अर्थ है कि हाल की अवधि में कीमत एक निश्चित सीमा के भीतर बनी रहती है। उदाहरण के लिए: यदि 10 चक्रों में उच्चतम मूल्य घटाकर 10 चक्रों में सबसे कम मूल्य, वर्तमान के-लाइन के समापन मूल्य से विभाजित परिणाम 0.05 से कम है, तो लिखा जा सकता हैः

HHV_10:=HHV(CLOSE,10); //Get the highest price in 10 cycles(including current K-line)
LLV_10:=LLV(CLOSE,10); //Get the lowest price in 10 cycles(including current K-line)

(HHV_10-LLV_10)/CLOSE<0.05; //Judging whether the difference between HHV_10 and LLV_10 divided by current k-line's closing price is less than 0.05.

चलती औसत बुल बाजार को दर्शाता है

चलती औसत लंबी और छोटी दिशा इंगित करती है, K रेखा 5,10,20,30,60 चलती औसत रेखा द्वारा समर्थित या प्रतिरोधित होती है, चलती औसत बैल बाजार या भालू बाजार को इंगित करती है। लिखा जा सकता हैः

MA_5:=MA(CLOSE,5);  //get the moving average of 5 cycle closing price.
MA_10:=MA(CLOSE,10);//get the moving average of 10 cycle closing price.
MA_20:=MA(CLOSE,20);//get the moving average of 20 cycle closing price.
MA_30:=MA(CLOSE,30);//get the moving average of 30 cycle closing price.

MA_5>MA_10 AND MA_10>MA_20 AND MA_20>MA_30; //determine wether the MA_5 is greater than MA_10, and MA_10 is greater than MA_20, and MA_20 is greater than MA_30.

पिछली उच्च कीमत और इसके स्थान

पिछले उच्च मूल्य और इसके स्थान का स्थान प्राप्त करने के लिए, आप सीधे एफएमजेड क्वांट एपीआई का उपयोग कर सकते हैं। लिखा जा सकता हैः

HHV_20:=HHV(HIGH,20); //get the highest price of 20 cycle(including current K line)
HHVBARS_20:=HHVBARS(HIGH,20); //get the number of cycles from the highest price in 20 cycles to current K line
HHV_60_40:REF(HHV_20,40); //get the highest price between 60 cycles and 40 cycles.

मूल्य अंतर में वृद्धि

मूल्य अंतर वह मामला है जब दो K रेखाओं के उच्चतम और निम्नतम मूल्य जुड़े नहीं होते हैं। इसमें दो K रेखाएं होती हैं, और मूल्य अंतर भविष्य के मूल्य आंदोलन में समर्थन और दबाव बिंदुओं का संदर्भ मूल्य होता है। जब मूल्य अंतर होता है, तो यह माना जा सकता है कि मूल दिशा के साथ प्रवृत्ति के साथ एक त्वरण शुरू हो गया है। इसे लिखा जा सकता हैः

HHV_1:=REF(H,1); //get the pervious K line's highest price
LLV_1:=REF(L,1); //get the pervious K line's lowest price
HH:=L>HHV_1; //judging wether the current K line's lowest price is greater than pervious K line's highest price (jump up)
LL:=H<LLV_1; //judging wether the current K line's highest price is greater than pervious K line's lowest price (jump down)
HHH:=L/REF(H,1)>1.001; //adding additional condition, the bigger of the price gap, the stronger the signal (jump up)  
LLL:=H/REF(L.1)<0.999; //adding additional condition, the bigger of the price gap, the stronger the signal (jump down)  
JUMP_UP:HH AND HHH; //judging the overall condition, whether it is a jump up
JUMP_DOWN:LL AND LLL; //judging the overall condition, whether it is a jump down

सामान्य तकनीकी संकेतकों

चलती औसत

img

एक सांख्यिकीय दृष्टिकोण से, चलती औसत दैनिक मूल्य का अंकगणितीय औसत है, जो एक प्रवृत्ति मूल्य प्रक्षेपवक्र है। चलती औसत प्रणाली अधिकांश विश्लेषकों द्वारा उपयोग किया जाने वाला एक सामान्य तकनीकी उपकरण है। एक तकनीकी दृष्टिकोण से, यह एक कारक है जो तकनीकी विश्लेषकों की मनोवैज्ञानिक कीमत को प्रभावित करता है। सोचने वाले व्यापार का निर्णय लेने वाला कारक तकनीकी विश्लेषकों के लिए एक अच्छा संदर्भ उपकरण है। एफएमजेड क्वांट टूल कई अलग-अलग प्रकार के चलती औसत का समर्थन करता है, जैसा कि नीचे दिखाया गया हैः

MA_DEMO:MA(CLOSE,5);   // get the moving average of 5 cycle
MA_DEMO:EMA(CLOSE,15); // get the smooth moving average of 15 cycle
MA_DEMO:EMA2(CLOSE,10);// get the linear weighted moving average of 10 cycle
MA_DEMO:EMAWH(CLOSE,50); // get the exponentially weighted moving average of 50 cycle
MA_DEMO:DMA(CLOSE,100);  // get the dynamic moving average of 100 cycle
MA_DEMO:SMA(CLOSE,10,3); // get the fixed weight of 3 moving average of closing price in 10 cycle
MA_DEMO:ADMA(CLOSE,9,2,30); // get the fast-line 2 and slow-line 30 Kaufman moving average of closing price in 9 cycle.

बोलिंगर बैंड

img

बोलिंगर बैंड भी सांख्यिकीय सिद्धांत पर आधारित है। मध्य रेल की गणना एन-दिवसीय चलती औसत के अनुसार की जाती है, और ऊपरी और निचली रेल की गणना मानक विचलन के अनुसार की जाती है। जब बीओएलएल चैनल चौड़े से संकीर्ण में बदलना शुरू होता है, जिसका अर्थ है कि कीमत धीरे-धीरे औसत पर लौट आएगी। जब बीओएलएल चैनल संकीर्ण से चौड़े में बदल रहा है, इसका मतलब है कि बाजार बदलना शुरू हो जाएगा। यदि कीमत ऊपर की रेल के पार है, तो इसका मतलब है कि क्रय शक्ति में वृद्धि हुई है। यदि कीमत नीचे की रेल को पार करती है, तो यह इंगित करता है कि बिक्री शक्ति में वृद्धि हुई है।

सभी तकनीकी संकेतकों में, बोलिंगर बैंड्स गणना विधि सबसे जटिल में से एक है, जो मध्य प्रक्षेपवक्र (एमबी ), ऊपरी प्रक्षेपवक्र (यूपी ) और निचले प्रक्षेपवक्र (डीएन) को शामिल करते हुए सांख्यिकी में मानक विचलन की अवधारणा का परिचय देती है। सौभाग्य से, आपको गणना विवरण जानने की आवश्यकता नहीं है, आप इसका उपयोग सीधे एफएमजेड क्वांट प्लेटफॉर्म पर निम्नानुसार कर सकते हैंः

MID:MA(CLOSE,100); //calculating moving average of 100 cycle, call it Bollinger Bands middle trajectory   
TMP2:=STD(CLOSE,100); //calculating standard deviation of closing price of 100 cycle.
TOP:MID+2*TMP2; //calculating middle trajectory plus 2 times of standard deviation, call it upper trajectory
BOTTOM:MID-2*TMP2; //calculating middle trajectory plus 2 times of standard deviation, call it lower trajectory

एमएसीडी सूचक

img

एमएसीडी संकेतक एक दोहरी चिकनाई ऑपरेशन है जिसमें तेज़ (अल्पकालिक) और धीमी (लंबी अवधि) चलती औसत और उनके संचय और पृथक्करण का उपयोग किया जाता है। चलती औसत के सिद्धांत के अनुसार विकसित एमएसीडी इस दोष को दूर करता है कि चलती औसत अक्सर झूठे संकेत उत्सर्जित करती है, और अन्य अच्छे पहलू के प्रभाव को भी बरकरार रखती है। इसलिए एमएसीडी संकेतक में चलती औसत की प्रवृत्ति और स्थिरता है। इसका उपयोग शेयरों की खरीद और बिक्री के समय का अध्ययन करने और शेयर मूल्य परिवर्तन की भविष्यवाणी करने के लिए किया गया था। आप इसका उपयोग इस प्रकार कर सकते हैंः

DIFF:EMA(CLOSE,10)-EMA(CLOSE,50); //First calculating the difference between short-term moving average and long-term moving average.
DEA:EMA(DIFF,10); //Then calculating average of the difference.

उपरोक्त मात्रात्मक ट्रेडिंग रणनीतियों के विकास में आमतौर पर उपयोग किया जाने वाला रणनीति मॉड्यूल है। इसके अलावा, इससे बहुत अधिक हैं। उपरोक्त मॉड्यूल उदाहरणों के माध्यम से, आप कई ट्रेडिंग मॉड्यूल भी लागू कर सकते हैं जिनका आप व्यक्तिपरक ट्रेडिंग में सबसे अधिक उपयोग करते हैं। विधियां समान हैं। इसके बाद, हमने एक व्यवहार्य इंट्राडे ट्रेडिंग रणनीति लिखना शुरू किया।

रणनीति लेखन

विदेशी मुद्रा स्पॉट बाजार में, एक अच्छी तरह से जाना जाता है रणनीति है HANS123 कहा जाता है। इसके तर्क मूल रूप से तय कर रहे हैं कि क्या कीमत बाजार के उद्घाटन के बाद के लाइनों की संख्या के उच्चतम या निम्नतम मूल्य के माध्यम से टूट जाता है

रणनीतिक तर्क

  • खोलने के 30 मिनट के बाद बाजार में प्रवेश करने के लिए तैयार;

  • ऊपरी रेल = खोलने के बाद 30 मिनट की ऊंचाई;

  • निचला रेल = खोलने के बाद 30 मिनट कम;

  • जब कीमत ऊपरी सीमा से ऊपर जाती है, तो खरीदें और स्थिति खोलें;

  • जब मूल्य निचले रेल से नीचे गिर जाता है, तो विक्रेता स्थिति खोलता है।

  • इंट्रा-डे ट्रेडिंग रणनीति, बंद होने से पहले बंद करना;

रणनीति कोड

// Data Calculation
Q:=BARSLAST(DATA<>REF(DATA,1))+1; //Calculating the number of period from 
the first K line of the current trading day to current k line, and assign the results to N 
HH:=VALUEWHEN(TIME=0930,HHV(H,Q)); //when time is 9:30, get the highest price of N cycles, and assign the results to HH
LL:=VALUEWHEN(TIME=0930,LLV(L,Q)); //When time is 9:30, get the lowest price of N cycles, and assign the results to LL

//Placing Orders
TIME>0930 AND TIME<1445 AND C>HH,BK; //If the time is greater than 9:30 and lesser than 14:45, and the closing price is greater than HH, opening long position.
TIME>0930 AND TIME<1445 AND C<LL,SK; //If the time is greater than 9:30 and lesser than 14:45, and the closing price is lesser than LL, opening short position.
TIME>=1445,CLOSEOUT; //If the time is greater or equal to 14:45, close all position.

//Filtering the signals
AUTOFILTER;  //opening the filtering the signals mechanism

संक्षेप में

ऊपर हमने रणनीति मॉड्यूल की अवधारणा सीखी है। कई आम तौर पर उपयोग किए जाने वाले रणनीति मॉड्यूल मामलों के माध्यम से, हमारे पास एफएमजेड क्वांट प्रोग्रामिंग टूल का सामान्य विचार था, यह कहा जा सकता है कि रणनीति मॉड्यूल लिखना सीखना और प्रोग्रामिंग लॉजिक सोच में सुधार करना उन्नत मात्रात्मक ट्रेडिंग में एक महत्वपूर्ण कदम है। अंत में, हमने एफएमजेड क्वांट टूल का उपयोग क्लासिक विदेशी मुद्रा ट्रेडिंग रणनीति के अनुसार ट्रेडिंग रणनीति को लागू करने के लिए किया।

अगला अनुभाग सूचना

शायद कुछ लोगों के लिए अभी भी कुछ भ्रम है, मुख्य रूप से कोडिंग भाग के कारण। चिंता मत करो, हमने पहले ही आपके लिए इसके बारे में सोचा है। एफएमजेड क्वांट प्लेटफॉर्म पर, शुरुआती लोगों के लिए एक और आसान प्रोग्रामिंग टूल है। यह दृश्य प्रोग्रामिंग है, चलो इसे जल्द ही सीखते हैं!

स्कूल के बाद व्यायाम

  1. कई ट्रेडिंग मॉड्यूल लागू करने का प्रयास करें जो आप अक्सर व्यक्तिपरक ट्रेडिंग में उपयोग करते हैं।

  2. एफएमजेड क्वांट प्लेटफॉर्म पर एम भाषा का उपयोग करके केडीजे इंडेक्स एल्गोरिथ्म को लागू करने का प्रयास करें।


अधिक