मेटाट्रेडर से csv
फ़ाइल में निम्न MQL4
स्क्रिप्ट निर्यात डेटा । दुर्भाग्य से (मेरे लिए कम से कम), जेनरेट किए गए csv
फ़ाइल में 0 से 1000 तक के डेटा का क्रम, 0 सबसे अतीत (अतीत से मौजूद) है। मैं चाहता हूं कि फ़ाइल को 1000 से 0 (पिछले से वर्तमान में) सॉर्ट किया जाए।
मैंने नीचे डेटा लिखने के लूप को बदल दिया है: के लिए (int bar = export_Bars; bar == 0 बार- )
परन्तु यह सिर्फ एक खाली csv
फ़ाइल उत्पन्न करता है।
#property script_show_inputs इनपुट स्ट्रिंग Export_FileName = "data \\ data.csv"; इनपुट इंक Export_Bars = 20000; इनपुट इंट स्टार्टहौर = 10; इनपुट इंट एंडहोअर = 1 9; शून्य ऑनस्टार्ट () {इंट फाइल = फाइल ओपन (निर्यात_फ़ाइलनाम, FILE_WRITE | FILE_CSV | FILE_ANSI, ','); अगर (फ़ाइल! = INVALID_HANDLE & amp; amp; (घंटा ()> gt; = प्रारंभ करें) & amp; amp; घंटे () & lt; EndHour) {// डेटा स्ट्रिंग row = "" का शीर्षक लिखें; (इंट आई = 0; आई & lt; = 5; i ++) के लिए (यदि (स्ट्रिंग लेज़न (पंक्ति)) पंक्ति + = ","; पंक्ति + = "ओपन" + i + ", उच्च" + i + ", कम" + i + ", बंद करें" + i; } FileWrite (फ़ाइल, पंक्ति); // इतिहास की सभी आवश्यक जानकारी कॉपी करें Mql दर दरों [], दर; Int count = Export_Bars + 5; यदि (प्रतिलिपि (प्रतीक (), अवधि (), 1, गणना, दर) & lt; count) {प्रिंट ("त्रुटि! आवश्यक जानकारी निर्यात करने के लिए पर्याप्त इतिहास आकार नहीं।"); वापसी; } ArraySetAsSeries (दर, सत्य); // के लिए डेटा लिखें (इंट बार = 0; बार & lt; Export_Bars; बार ++) {row = ""; डबल ज़लेवल = 0; के लिए (int y = 0; y और lt; = 5; y ++) {यदि (स्ट्रिंगलैन (पंक्ति)) पंक्ति + = ","; दर = दरें [बार + y]; यदि (y == 0) zlevel = rate.open; // मूल्य गणना पंक्ति का स्तर + = सामान्यीकृत दोहरा (दर। ओपन-एक्लेवल, अंक ()) + "," + सामान्यीकृत दोहरा (दर हाइ-ज़लेले, अंकों ()) + "," + सामान्यीकृत दोहरा (दर। कम -ज़ेलेवल , अंक ()) + "," + सामान्यीकृत डबल (दर। क्लोज़-ज़लेवल, अंक ()); } FileWrite (फ़ाइल, पंक्ति); } फाइल क्लोज़ (फ़ाइल); प्रिंट ("डेटा का निर्यात सफलतापूर्वक समाप्त हो गया है।"); } और प्रिंट ("त्रुटि! डेटा निर्यात के लिए फ़ाइल बनाने में विफल।", GetLastError ()); }
अतः वर्तमान क्रम में डेटा को निर्यात करने के क्रम में स्क्रिप्ट पर क्या बदलाव किए जा रहे हैं मेरे प्रश्न?
एक टाइम रिवर्स-इटरेटर स्टेपिंग के लिए लूप कन्स्ट्रक्टर को बदलें:
< कोड> के लिए (इंट बार = निर्यात_Bars - 1; // .LOOP-INIT (एस) बार & gt; = 0; // .LOOP-RUN-PRE-CONDITION बार - // .लिप-आरयूएन-पोस्ट-अपडेट ( S)) {...} // .LOOP-RUN-BODY
No comments:
Post a Comment