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

3.2 एम भाषा के साथ शुरुआत

लेखक:अच्छाई, बनाया गयाः 2019-04-19 14:18:38, अद्यतन किया गयाः 2019-04-27 11:54:30

सारांश

एम भाषा क्या है? तथाकथित एम भाषा प्रोग्रामेटिक कार्यों का एक सेट है जो शुरुआती स्टॉक ट्रेडिंग तकनीकी संकेतकों से फैली हुई है। एल्गोरिथ्म को एक एकल फ़ंक्शन में समेकित करते हुए, उपयोगकर्ता को केवल रणनीति तर्क को लागू करने के लिए बिल्डिंग ब्लॉक जैसे एक निश्चित फ़ंक्शन को कॉल करने की आवश्यकता होती है।

img

यह "छोटे व्याकरण, बड़े फ़ंक्शन" के निर्माण मोड को अपनाता है, जो प्रोग्रामिंग दक्षता में काफी सुधार करता है। अन्य भाषाओं में 100 से अधिक वाक्यों की रणनीति लेखन को एम भाषाओं में केवल कुछ पंक्तियों के साथ संकलित किया जा सकता है। एफएमजेड क्वांट टूल के साथ मिलकर वित्तीय सांख्यिकीय फ़ंक्शन लाइब्रेरी और डेटा संरचना कुछ जटिल ट्रेडिंग तर्क का भी समर्थन कर सकती है।

पूर्ण रणनीति

इस खंड के मुख्य ज्ञान को जल्दी से समझने में आपकी सहायता करने के लिए, एफएमजेड क्वांट एम भाषा का परिचय देने से पहले, आइए पहले इस खंड की संज्ञा अवधारणा की प्रारंभिक समझ प्राप्त करें। हम अभी भी दीर्घकालिक 50-दिवसीय चलती औसत और अल्पकालिक 10-दिवसीय चलती औसत का उपयोग मूल मामले के रूप में करेंगे, और पिछले अध्याय में उल्लिखित पूर्ण रणनीति मामले की समीक्षा करेंगेः

  • खुली लंबी स्थितिः यदि वर्तमान में कोई स्थिति नहीं है, और समापन मूल्य अल्पकालिक चलती औसत से अधिक है, और समापन मूल्य दीर्घकालिक चलती औसत से अधिक है, और अल्पकालिक चलती औसत दीर्घकालिक चलती औसत से अधिक है, और दीर्घकालिक चलती औसत बढ़ रहा है।

  • खुली शॉर्ट पोजीशनः यदि वर्तमान में कोई पोजीशन नहीं है, और क्लोजिंग प्राइस अल्पकालिक मूविंग एवरेज से कम है, और क्लोजिंग प्राइस दीर्घकालिक मूविंग एवरेज से कम है, और अल्पकालिक मूविंग एवरेज दीर्घकालिक मूविंग एवरेज से कम है, और दीर्घकालिक मूविंग एवरेज गिर रहा है।

  • बंद करें लंबी स्थितिः यदि वर्तमान में लंबी स्थिति है, और बंद करने की कीमत लंबी अवधि के चलती औसत से कम है, या अल्पकालिक चलती औसत लंबी अवधि के चलती औसत से कम है, या लंबी अवधि के चलती औसत गिर रहा है।

  • बंद शॉर्ट पोजीशनः यदि वर्तमान में शॉर्ट पोजीशन हो, और बंद होने की कीमत लंबी अवधि के मूविंग एवरेज से अधिक हो, या अल्पकालिक मूविंग एवरेज लंबी अवधि के मूविंग एवरेज से अधिक हो, या लंबी अवधि के मूविंग एवरेज में वृद्धि हो।

यदि आप इसे एम भाषा में लिखते हैं, तो यह होगाः

MA10:=MA(CLOSE,10); // Get the 10-cycle moving average of the latest K-line and save the result in variable MA10
MA50:=MA(CLOSE,50); // Get the 50-cycle moving average of the latest K-line and save the result in variable MA50


MA10_1:=REF(MA10,1); //Get the 10-cycle moving average of the pervious K line and save the result to variable MA10_1
MA50_1:=REF(MA50,1); //Get the 50-cycle moving average of the pervious K line and save the result to variable MA50_1
MA10_2:=REF(MA10,2); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10_2
MA50_2:=REF(MA50,2); //Get the 50-cycle moving average of the latest K line and save the result to variable MA50_2
MA50_ISUP:=MA50>MA50_1 AND MA50_1>MA50_2; //Determine whether the current 50-line moving average of the K line is rising
MA50_ISDOWN:=MA50<MA50_1 AND MA50_1<MA50_2; //Determine whether the current 50-line moving average of the K line is falling

CLOSE>MA10 AND CLOSE>MA50 AND MA10>MA50 AND MA50_ISUP,BK; //open long position
CLOSE<MA10 AND CLOSE<MA50 AND MA10<MA50 AND MA50_ISUP,SK; //open short position
CLOSE<MA50 OR MA10<MA50,SP;//close long position
CLOSE>MA50 OR MA10>MA50,BP;//close short position

एक पूर्ण ट्रेडिंग रणनीति लिखने के लिए आपको आवश्यक होगाः डेटा अधिग्रहण, डेटा गणना, तर्क गणना, और आदेशों को रखना। जैसा कि ऊपर दिखाया गया है, पूरे कोड में, केवल एक एपीआई का उपयोग बुनियादी डेटा प्राप्त करने के लिए किया जाता है, जो पहली और दूसरी पंक्तियों में " CLOSE " है; फिर पहली से नौवीं पंक्तियों में डेटा गणना भाग हैं; पंक्तियां 11 से 14 तक तर्कसंगत गणना और आदेश रखने का हिस्सा हैं।

ध्यान दें कि MA10, MA50, MA10_1, MA50_1, MA10_2, और MA50_2 चर हैं; पहली से नौवीं पंक्तियों में, " := " एक असाइनमेंट साइन है, और असाइनमेंट साइन के दाईं ओर डेटा असाइनमेंट साइन के बाईं ओर चर को असाइन किया गया है; MA एपीआई है, उदाहरण के लिए, पहली पंक्ति में, MA (चलती औसत) को दो मापदंडों में पास करने की आवश्यकता है। आप सेटिंग को इनकमिंग पैरामीटर के रूप में सोच सकते हैं, अर्थात, MA को कॉल करते समय, आपको MA का प्रकार सेट करने की आवश्यकता है; "और" "या" तार्किक ऑपरेटर हैं जिनका उपयोग मुख्य रूप से कई तार्किक गणनाओं को जोड़ने के लिए किया जाता है। उपरोक्त बुनियादी ज्ञान अवधारणा के साथ, आइए विस्तृत एम भाषा ज्ञान सीखना शुरू करें।

आधारभूत आंकड़े

बुनियादी डेटा (उद्घाटन मूल्य, उच्चतम मूल्य, निम्नतम मूल्य, समापन मूल्य, मात्रा) मात्रात्मक व्यापार का एक अनिवार्य हिस्सा है। रणनीति में नवीनतम बुनियादी डेटा प्राप्त करने के लिए, आपको केवल एफएमजेड क्वांट के एपीआई को कॉल करने की आवश्यकता है। यदि आप ऐतिहासिक मूल्य के बुनियादी डेटा प्राप्त करना चाहते हैं, तो आप "आरईएफ" का उपयोग कर सकते हैं, जैसेः आरईएफ (क्लोज, 1) कल की समापन मूल्य प्राप्त करना है।

चर

चर को बदला जा सकता है। एक चर का नाम एक कोड नाम के रूप में समझा जा सकता है। इसका नाम अंग्रेजी अक्षरों, संख्याओं और पंक्तियों द्वारा समर्थित है। हालांकि, लंबाई को 31 वर्णों के भीतर नियंत्रित किया जाना चाहिए। चर नामों को दूसरे के साथ दोहराया नहीं जा सकता है, पैरामीटर नामों के साथ दोहराया नहीं जा सकता है, फ़ंक्शन नामों (एपीआई) के साथ दोहराया नहीं जा सकता है, और प्रत्येक कथन को अर्धविराम के साथ समाप्त होना चाहिए। " // " के बाद टिप्पणियां लिखना। जैसा कि नीचे दिखाया गया हैः

INT:=2; //Integer type
FLOAT:=3.1; //Floating point
ISTRUE:=CLOSE>OPEN; //Boolean type

परिवर्तनीय असाइनमेंट

चर असाइनमेंट का अर्थ है कि असाइनमेंट चिह्न के दाईं ओर का मान बाईं ओर के चर को दिया जाता है। चार प्रकार के असाइनमेंट हैं, जो यह नियंत्रित कर सकते हैं कि मान चार्ट पर प्रदर्शित होता है या प्रदर्शन की स्थिति। वे " ": ", " := ", " ^^ ", "... ", और नीचे दिए गए कोड टिप्पणियों में उनका अर्थ विस्तार से समझाया गया है।

CC1: C; //Assign the closing price to the variable CC1 and display it in the sub-chart
CC2:=C; //Assign the closing price to variable CC2, but not display in the status bar and chart
CC3^^C; //Assign the closing price to the variable CC3 and display it in the main chart
CC4..0; //Assign the closing price to the variable CC4 and display it in the status bar, but not in the chart

डेटा का प्रकार

एम भाषा में कई प्रकार के डेटा प्रकार हैं, जिनमें से सबसे आम संख्यात्मक प्रकार, स्ट्रिंग प्रकार और बुल प्रकार हैं। संख्यात्मक प्रकार संख्याएं हैं, जिसमें पूर्णांक, दशमलव, सकारात्मक और नकारात्मक संख्याएं, आदि शामिल हैं, जैसेः 1, 2, 3, 1.1234, 2.23456...; स्ट्रिंग प्रकार को पाठ, चीनी, अंग्रेजी के रूप में समझा जा सकता है, संख्याएं भी स्ट्रिंग हो सकती हैं, जैसेः the FMZ Quant, CLOSEPRICE, 6000, स्ट्रिंग प्रकार को डबल उद्धरणों के साथ लपेटा जाना चाहिए; बुल प्रकार सबसे सरल है, इसमें केवल दो मान हैं yes और No, जैसेः 1 के साथ प्रतिनिधि सच का मतलब है yes और 0 के लिए झूठा संकेत देता है no

संबंधपरक संचालक

संबंधपरक संचालक, जैसा कि नाम से पता चलता है, दो मूल्यों के संबंध की तुलना करने के लिए उपयोग किए जाने वाले संचालक हैं। वे बराबर, से अधिक, से कम, से अधिक या बराबर, से कम या बराबर, के बराबर नहीं हैं, जैसा कि नीचे दिखाया गया हैः

CLOSE = OPEN; //when closing price equals to opening price, return 1 (true), otherwise return 0 (false)
CLOSE > OPEN; //when closing price greater than opening price, return 1 (true), otherwise return 0 (false)
CLOSE < OPEN; //when closing price less than opening price, return 1 (true), otherwise return 0 (false)
CLOSE >= OPEN; //when closing price greater than or equal to opening price, return 1 (true), otherwise return 0 (false)
CLOSE <= OPEN; //when closing price less than or equal to opening price, return 1 (true), otherwise return 0 (false)
CLOSE <> OPEN; //when closing price is not equal to opening price, return 1 (true), otherwise return 0 (false)

तार्किक संचालक

तार्किक क्रियाएं अलग-अलग बुलियन प्रकार के कथनों को संपूर्ण में जोड़ सकती हैं, सबसे आम उपयोग "और" और "या" हैं। मान लीजिए कि दो बुलियन प्रकार के मूल्य हैं, बंद कीमत शुरुआती कीमत से अधिक है और बंद कीमत चलती औसत से अधिक है, हम उन्हें एक बुलियन मूल्य में समूहीकृत कर सकते हैं, उदाहरण के लिएः बंद कीमत शुरुआती कीमत से अधिक है और (और) बंद कीमत चलती औसत से अधिक है, बंद कीमत शुरुआती कीमत से अधिक है या (या) बंद कीमत चलती औसत से अधिक है

AA:=2>1; //return true
BB:=4>3; //return true
CC:=6>5; //return true
DD:=1>2; //return false

कृपया ध्यान दें:

  • "और" तब होता है जब सभी शर्तें सही और अंतिम शर्त सही हो;

  • "या" का अर्थ है कि सभी स्थितियों में, जब तक कोई भी शर्त सही है, अंतिम शर्त सही है।

  • "और" को "&&" के रूप में लिखा जा सकता है, और "या" को "के रूप में लिखा जा सकता है.

अंकगणितीय संचालक

एम भाषाओं में प्रयुक्त अंकगणितीय संचालकों ("+ , " - , " * , " / ) और नियमित विद्यालय शिक्षा के गणित के बीच कोई अंतर नहीं है, जैसा कि नीचे दिखाया गया हैः

AA:=1+1; //the result is 2
BB:=2-1; //the result is 1
CC:=2*1; //the result is 2
DD:=2/1; //the result is 2

प्राथमिकता

यदि 100*(10-1)/(10+5) अभिव्यक्ति है, तो प्रोग्राम का कौन सा चरण पहले गणना की जाती है?

यदि यह एक ही कार्य स्तर है, तो यह सामान्यतः बाएं से दाएं गणना की जाती है। 2, यदि जोड़ और घटाव, और गुणन और विभाजन हैं, तो पहले गुणन और विभाजन की गणना करें, फिर जोड़ और घटाव। 3, यदि ब्रैकेट हैं, तो पहले ब्रैकेट के अंदर की गणना करें। 4, यदि आसान संचालन का नियम पूरा किया जाता है, तो गणना के लिए नियम का उपयोग किया जा सकता है।

एम भाषा के लिए भी यही सच है, जैसा कि नीचे दिखाया गया हैः

100*(10-1)/(10+5)  //the result is 60
1>2 AND (2>3 OR 3<5)  //the result is false
1>2 AND 2>3 OR 3<5  //the result is true

निष्पादन मोड

एफएमजेड क्वांट टूल की एम भाषा में प्रोग्राम निष्पादन के दो मोड हैं, अर्थात्, क्लोजिंग प्राइस मोड और रीयल-टाइम प्राइस मोड। क्लोजिंग प्राइस मोड का अर्थ है कि जब वर्तमान के-लाइन सिग्नल स्थापित होता है, तो अगली के-लाइन पर ऑर्डर करना। वास्तविक समय मोड तुरंत निष्पादित होता है जब वर्तमान के-लाइन सिग्नल स्थापित होता है।

दिन भर की रणनीति

यदि यह एक इंट्राडे ट्रेडिंग रणनीति है, तो आपको "टाइम" समय फ़ंक्शन का उपयोग तब करना होगा जब आपको स्थिति को अंत में बंद करने की आवश्यकता हो। यह फ़ंक्शन दूसरे चक्र से ऊपर और दिन चक्र से नीचे है, चार अंकों के रूप में दिखाया गया हैः एचएचएमएम (1450 - 14: 50). नोटः सत्र के अंत में स्थिति को बंद करने की शर्त के रूप में टाइम फ़ंक्शन का उपयोग करते हुए, यह अनुशंसा की जाती है कि उद्घाटन स्थिति की शर्तें संबंधित समय सीमा के अधीन हों। जैसा कि नीचे दिखाया गया हैः

CLOSE>OPEN && TIME<1450,BK; //if it is a positive k-line and the time is less than 14:50, opening position.
TIME>=1450,CLOSEOUT; //if the time is beyond 14:50, closing all position.

मॉडल वर्गीकरण

एम भाषा में दो प्रकार के मॉडल वर्गीकरण हैंः गैर-फ़िल्टरिंग मॉडल और फ़िल्टरिंग मॉडल। यह वास्तव में बहुत अच्छी तरह से समझा जाता हैः गैर-फ़िल्टरिंग मॉडल निरंतर उद्घाटन या समापन संकेतों की अनुमति देता है, जिसका उपयोग पदों को जोड़ने और कम करने के लिए किया जा सकता है। फ़िल्टरिंग मॉडल निरंतर उद्घाटन या समापन संकेतों की अनुमति नहीं देता है, अर्थात जब उद्घाटन संकेत दिखाई देता है, तो बाद के उद्घाटन संकेत को समापन संकेत दिखाई देने तक फ़िल्टर किया जाएगा। गैर-फ़िल्टरिंग मॉडल का क्रम हैः खुली स्थिति - बंद स्थिति - खुली स्थिति - बंद स्थिति - खुली स्थिति...

img

संक्षेप में

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

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

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

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

  1. एम भाषा द्वारा एपीआई से मूल तिथि प्राप्त करने के लिए एफएमजेड क्वांट टूल का उपयोग करने का प्रयास करें.
  2. चार्ट में चर असाइनमेंट के लिए कितने प्रदर्शन विधियों?

अधिक