Forex Sql Tietokanta


MetaTrader 5 - Integraatio MySQL-tietokannan käyttö MQL5: lta (MQL4) Johdanto MQL: n ja tietokantojen vuorovaikutusongelma ei ole uusi, mutta se on silti merkityksellinen. Tietokantojen käyttö voi suuresti parantaa MetaTraderin mahdollisuuksia: hintahistorian tallentaminen ja analysointi, kaupankäynnin kopioiminen yhdestä kaupankäyntijärjestelmästä toiseen, tarjota aikatauluja reaaliaikaisesti, raskas analyyttinen laskenta palvelimen puolella ja tai aikataulun, seurannan ja kaukosäätimen avulla verkkotekniikoista. Joka tapauksessa, oli monia yrityksiä hyötyä yhdistelmä MQL ja MySQL, jotkut ratkaisut ovat saatavilla CodeBase. Esimerkiksi MySQL-kääre - MetaTrader 4: n kirjasto on projekti, josta monet ohjelmoijat alkavat omasta kehityksestään lisää lisäyksiä. Mielestäni yksi tämän ratkaisun haitoista on erityisten järjestelmien jakaminen tietojen lukemiseksi tietokannasta. Toinen projekti MySQL-logger 1 - EA MetaTrader 4: lle on erittäin erikoistunut, sillä se ei käytä kääriä päästäkseen tavalliseen kirjastoon libmysql. dll. Siksi se ei toimi MetaTrader4 Build 600: ssa, koska char-merkkityyppejä on korvattu wchartilla. ja int-tyypin käyttö TMYSQL-rakenne-osoittimen sijaan aiheuttaa muistin vuotamista projektissa (kohdennettua muistia ei voida ohjata). Toinen mielenkiintoinen projekti on EAXMysql - MySQL-kirjasto - MetaTrader 5: n kirjasto. Se on melko hyvä toteutus. Tekijän ilmoittamien haittojen luettelo asettaa käyttöön joitain rajoituksia. Jokainen, joka tarvitsee koskaan käyttää tietokantoja MQL-projekteissaan, on kaksi vaihtoehtoa: joko kehittää omaa ratkaisua ja tuntea sen jokainen osa, tai käyttää muokattua kolmannen osapuolen ratkaisua, oppia käyttämään sitä ja havaitsemaan kaikki sen virheet, jotka voivat estää heidän hankkeensa. Olen kohdannut tällaisen välttämättömyyden ja kahta vaihtoehtoa samalla, kun kehitellään melko monimutkainen kaupankäynnin robotti. Kun etsin läpi olemassa olevia projekteja ja tutkinut hyvin monia ratkaisuja, huomasin, että ei löydy toteutuksista voi auttaa myymälärobottini ammattitasolla. Lisäksi oli olemassa absurdeja ratkaisuja, esimerkiksi DMLDDL-operaatioita (insert datdatedelete data, createdrop-objekteja tietokantaan) suoritettiin käyttäen standardia libmysql. dll ja datan valinta (SELECT) toteutettiin tosiasiallisesti HTTP-pyynnönä (inet. dll) PHP-komentosarjalle, joka sijaitsee MySQL-palvelinpuolen web-palvelimella. SQL-kyselyt kirjoitettiin PHP-komentosarjoihin. Toisin sanoen projektin suorittaminen edellyttää, että seuraavat komponentit ovat käytettävissä, konfiguroitu ja käytössä: MySQL-palvelin, ApacheIIS-palvelin, PHPASP-komentosarjat palvelinpuolella. Useiden tekniikoiden yhdistelmä. Tietenkin tietyissä tilanteissa tämä voi olla hyväksyttävää, mutta kun ainoa tehtävä on valita tietokannasta peräisin olevat tiedot - tämä on hölynpölyä. Lisäksi tällaisen hankalan ratkaisun tukeminen on aikaa vievää. Useimmilla ratkaisuilla ei ollut mitään ongelmia tietojen lisäämisessä, esineiden ja vastaavien luomisessa. Ongelmana oli tietojen valinta, koska tiedot olisi palautettava kutsuvalle ympäristölle. Ajattelin, että taulukkojen käyttäminen tähän tarkoitukseen oli epäkäytännöllistä ja hankalaa yksinkertaisesti, koska pääprojektin kehitystoiminnan aikana voidaan valita tietokannan kyselyitä, kun taas sinun pitäisi myös hallita taulukkojen oikeaa muistin allokointia. Tätä voidaan ja on vältettävä. Seuraavassa käsitelty MQL lt-gt MySql - liityntä perustuu tyypilliseen lähestymistapaan, jota käytetään Oracle PLSQL: ssä, MS SQL T-SQL: ssä, AdoDB: ssa - kursorien käyttöä. Tätä käyttöliittymää kehitettiin ohjelmoinnin ja ylläpidon helppoutta sekä vähimmäisominaisuuksia. Se on toteutettu DLL-kääreinä vakiokirjastoon libmysql. dll ja joukko käyttöliittymän toimintoja. mqh-tiedostona. 1. MQL lt-gt-MySQL-rajapinta MetaTrader-terminaalin (MQL-ohjelmien) välinen vuorovaikutus voidaan toteuttaa seuraavien komponenttien avulla: 1. MQLMySQL. mqh. Se lisätään projektiin sisällysluettelon avulla ja sitä voidaan muuttaa makusi mukaan. Se sisältää ohjeet MQLMySQL. dll-dynaamisen kirjaston tuontitoiminnoille sekä toimintoja niiden kutsumiseen ja virheiden käsittelyyn. 2. MQLMySQL. dll dynaaminen kirjasto. Se on kääre, jolla pääsee libmysql. dll-vakiokirjaston toimintoihin. Myös MQLMySQL. dll-kirjasto käsittelee toiminnan tuloksia ja jakaa pääsyn tietokantayhteyksiin ja kohdistimiin. Se tarkoittaa, että voit luoda ja käyttää useita yhteyksiä kerrallaan (yhdestä tai useammasta MQL-ohjelmasta), pitää muutamia kohdistimia auki ja kysyä yhdelle tai useammalle tietokannalle. Mutexia käytetään erottamaan yhteiset resurssit. 3. Tavallinen dynaaminen kirjasto libmysql. dll on natiivi käyttöoikeusajuri. Voit kopioida sen mistä tahansa MySql-tietokannan jakelusta C: WindowsSytem32 tai ltTerminalgtMQL5Libraries (MetaTrader 4: ssa ltTerminalgtMQL4Libraries). Itse asiassa se on vastuussa kyselyjen lähettämisestä tietokantaan ja tulosten hakemisesta. Pääsyy pääkohdissa, kuten: avaamalla yhteys, tekemällä DMLDDL-kyselyjä ja valitsemalla tiedot. 1.1. Yhteyden avaaminen ja sulkeminen MySqlConnect-toiminto on toteutettu yhteyden avaamiseksi MySQL-tietokannan kanssa: Tämä toiminto toteuttaa yhteyden tietokantaan ja palauttaa yhteystunnisteen. Tämän ID: n on kysyttävä tietokannasta. Yhteyden epäonnistumisen tapauksessa palautusarvo on -1. Tarkastele virheen yksityiskohdat MySQLErrorNumber ja MySqlErrorDescription muuttujat. Tyypillisesti tätä toimintoa kutsutaan käsittelemällä OnInit () - tapahtuma MQL-ohjelmassa. MySQL-palvelimen DNS-nimi tai IP-osoite Tietokantahenkilö (esimerkiksi pääkäyttäjä) Tietokannan käyttäjän salasana Tietokannan nimi Tietokannan TCPIP-portti (yleensä 3306) Unix-liitäntä (Unix-järjestelmissä) erikoislippujen yhdistelmä (yleensä 0) MySqlDisconnect-rajapinta on toteutettu yhteyden sulkemiseksi: Tämä toiminto sulkee yhteyden MySQL-tietokantaan. Tyypillisesti tätä toimintoa kutsutaan käsittelemällä OnDeinit () - tapahtuma MQL-ohjelmassa. On huomattava, että MySQL-tietokanta voi itse sulkea yhteyden laitteistovirheen, verkon ruuhkautumisen tai aikakatkaisun aikana (kun kyselyitä ei lähetetä tietokantaan pitkään). Usein kehittäjät käyttävät OnTick () - tapahtumaa tietojen kirjoittamiseen tietokantaan. Kuitenkin, kun viikonloppu tulee ja markkinat suljetaan, yhteys on vielä roikkuu. Tässä tapauksessa MySQL sulkee sen aikakatkaisulla (oletus on 8 tuntia). Ja maanantaina, jolloin markkinat ovat auki, hankkeessa on virheitä. Siksi on erittäin suositeltavaa tarkistaa yhteys ja tai liittää uudelleen tietokantaan MySQL-palvelimen asetuksissa määritetyn aikakatkaisun jälkeen. 1.2. DMLDDL-kyselyjen suorittaminen DML-operaatioita käytetään tietojen manipulointiin (D ata M anipulation L anguage). Tiedonhallintaa ovat seuraavat lausekkeet: INSERT, UPDATE ja DELETE. DDL-operaatioita käytetään tietojen määrittelyyn (D ata D efinition L anguage). Tämä sisältää tietokantaobjektien (taulukot, näkymät, tallennetut toiminnot, käynnistimet jne.) Luomisen (CREATE) ja niiden muuttamisen (ALTER) ja poiston (DROP). Sen kaikkia DMLDDL-lausuntoja, lisäksi DCL (D ata C ontrol L anguage) käytetään erottamaan datan käyttöoikeus, mutta emme sulje SQL-ominaisuuksiin. Jokin näistä komennoista voidaan suorittaa MySqlExecute-rajapintafunktiolla: SQL-kyselyn avulla voit myös käyttää USE-komentoa tietokannan valitsemiseen. Haluaisin mainita useiden lausuntopyyntöjen käytön. Se on joukko SQL-komentoja, jotka erotetaan merkillä. Monitulostusmoodin käyttöönottoa varten tietokannan yhteys on avattava CLIENTMULTISTATEMENTS-merkillä: Tässä fragmentissa 3 ehtoa lisätään EURUSD-taulukkoon yhdellä tietokannalla. Jokainen SQL-muuttuessa tallennettu kysely erotetaan. Tätä lähestymistapaa voidaan käyttää usein syötettävään sisäänsyöttöön, kun joukko tarvittavia komentoja yhdistetään yhteen pakettiin, mikä helpottaa verkkoliikennettä ja parantaa tietokannan suorituskykyä. MySQL: n INSERT-syntaksi on melko kehittynyt poikkeustarkoituksessa. Jos esimerkiksi tehtävänä on siirtää hintatietoja, taulukon tulisi luoda valuutapareille, joiden datatyyppityypin ensisijainen avain on, koska palkin päivämäärä ja aika ovat yksilöllisiä. Lisäksi on tarkistettava, onko tietyssä baarissa olevia tietoja olemassa tietokannassa (tietojen muuttumisen vakauden parantamiseksi). MySQL: n avulla tätä tarkistusta ei tarvita, koska INSERT-selostus tukee ON DUPLICATE KEY. Yksinkertaisin sanoin, jos yritetään lisätä tietoja ja taulukossa on jo sama päivämäärä ja kellonaika, INSERT-käskyä voidaan sivuuttaa tai korvata tämän rivin UPDATE avulla (katso dev. mysqldocrefman5.0eninsert - on-duplicate. html). 1.3. Tietojen valinta SQL SELECT - lausetta käytetään tietojen hakemiseen tietokannasta. Alla olevaa toimintojen järjestystä käytetään tietojen valitsemiseen ja valintatuloksen hakemiseen: SELECT-käskyn valmistelu. Kohdistimen avaaminen. Saadaan kyselyn palauttamien rivien määrä. Kyselyn jokaisen rivin lukitseminen ja haku. Tietojen haku MQL-muuttujiin silmukan sisällä. Kohdistimen sulkeminen. Tietenkin tämä on yleinen järjestelmä, joten kaikkia toimintoja ei tarvita kaikissa tapauksissa. Jos esimerkiksi haluat varmistaa, että taulukossa on jokin rivi (millä tahansa kriteerillä), riittää kyselyn laatiminen, kohdistimen avaaminen, rivien määrä ja kursorin sulkeminen. Itse asiassa pakolliset osat ovat - SELECT-lausekkeen valmistelu, kohdistimen avaaminen ja sulkeminen. Mikä on kohdistin Tämä on viittaus kontekstin muistialueeseen, itse asiassa - tuloksena olevaan arvojen joukkoon. Kun lähetät SELECT-kyselyn, tietokanta varaa tuloksen muistiin ja luo osoittimen riville, jota voit siirtää riviltä toiseen. Tällöin kaikki rivit voidaan käyttää kyselyn määrittelemän jonon järjestyksessä (SELECT-lausekkeen ORDER BY - lauseke). Tiedon valinnassa käytetään seuraavia rajapintoja: Kohdistimen avaaminen: MySqlCursorOpen palauttaa kohdistimen tunnuksen Kursorin sulkeminen on kriittinen toimenpide. Älä unohda sulkea kursoria. Kuvittele, että avaat kohdistimen ja unohdat sulkea sen. Oletetaan, että tiedot haetaan kohdistimelle jokaisella rullaimella, kun käsitellään OnTick () - tapahtumaa, ja aina kun uusi kohdistin avataan, sille varataan muisti (sekä asiakkaan puolella että palvelimen puolella). Jossain vaiheessa palvelin kieltää palvelun, koska avoimien kohdistimien raja on saavutettu ja tämä voi aiheuttaa puskurin ylivuotoa. Tietenkin sen liioiteltu, tällainen tulos on mahdollista, kun työskentelet suoraan libmysql. dll: n kanssa. MQLMySQL. DLL-dynaaminen kirjasto jakaa kuitenkin muistiin osoittimia ja kieltäytyy avaamasta kohdistinta, joka ylittää sallitun rajan. Toteutettaessa todellisia tehtäviä riittää pitämään 2-3 kohdistinta auki. Kukin kohdistin pystyy käsittelemään yhden karteesiläisen datan mittauksen kahdesti kolmella kohdistimella samanaikaisesti (sisäkkäinen esimerkiksi silloin, kun parametrinen riippuvuus toisesta kohdistimesta) kattaa kaksi tai kolme ulottuvuutta. Tämä on täysin hieno useimmille tehtäville. Lisäksi monimutkaisten tietojen valinnan suorittamiseksi voit aina käyttää näitä esineitä edustamaan tietokantaa (VIEW), luoda ne palvelimen puolelle ja lähettää heille kyselyjä MQL-koodista taulukoihin. 1.4. Lisätiedot Lisäominaisuuksina voidaan mainita seuraavat: 1.4.1. Tietojen lukeminen. INI-tiedostosta Usein tietokantaan tallennettujen tietojen (palvelimen IP-osoite, portti, käyttäjätunnus, salasana jne.) Tallentaminen suoraan MQL-koodiin (tai Expert Advisorin parametreihin, komentosarjan indikaattoriin) ei ole koska palvelin voidaan siirtää, sen osoite voi muuttua dynaamisesti, jne. Sinun täytyy muokata MQL-koodia tässä tapauksessa. Näin ollen kaikki nämä tiedot olisi tallennettava paremmin standardin. INI-tiedostoon, kun taas vain sen nimi olisi kirjoitettava MQL-ohjelmaan. Käytä sitten Readini-toimintoa lukemaan yhteysparametreja ja käyttämään niitä. Esimerkiksi INI-tiedosto sisältää seuraavat tiedot: Voit saada palvelimen IP-osoitteen seuraavasti: INI-tiedosto sijaitsee osoitteessa C: MetaTrader5MQL5Experts ja sitä kutsutaan nimellä MyConnection. ini, pääset käsiksi MYSQL-osion Palvelin-avaimeen. Yhdessä INI-tiedostossa voit tallentaa asetuksia eri palvelimiin, joita käytetään projektissa. 1.4.2. Ongelma-alueiden jäljittäminen Käyttöliittymäkirjastossa on jäljitystila, joka voidaan ottaa käyttöön SQL-kyselyiden virheiden suorittamisessa mihin tahansa MQL-ohjelmaan. Määritä seuraava ongelma-alue: Jos otat jäljityksen MQL-ohjelman alkuun ja älä poista sitä, kaikki tietokannasta tulevat puhelut kirjataan. Loki säilytetään päätelaitteessa (käyttäen Tulosta-komentoa). 2. Esimerkkejä Tässä osassa on muutamia esimerkkejä kehitettyjen kirjastojen yhteydestä ja käytöstä. Katso ne ja arvioi ohjelmistoratkaisun käytettävyys. Esimerkissä MySQL-003.mq5 näytetään seuraavat: Tietokantaan yhdistäminen (yhteysparametrit tallennetaan. ini-tiedostoon), taulukon luominen, datan lisääminen (myös usean lausekkeen avulla) ja tiedonsiirto tietokannasta. Esimerkki MySQL-004.mq5 näyttää datan valinnan MySQL-003.mq5-skriptin luomasta taulukosta. Edellä esitetyt esimerkit sisältävät tyypillisen todellisten hankkeiden virheenkäsittelyn. Itse asiassa jokainen MQL-ohjelmassa käytetty kysely on debugoitava mille tahansa MySQL-clientille (PHPMyAdmin, DB Ninja, MySQL-konsoli). Käytän henkilökohtaisesti MySQL: n MySQL: n TOAD-tietokannan kehittämiseen tarkoitettuja ohjelmistoja. Yhteenveto Tässä artikkelissa ei kuvata Microsoft Visual Studio 2010 (CC) - ympäristössä kehitettyä MQLMySQL. DLL-ohjelman toteutusta. Tämä ohjelmistoratkaisu on suunniteltu käytännön käyttöön ja sillä on yli 100 onnistunutta toteutusta MQL-ohjelmistokehityksen eri osa-alueilla (monimutkaisten kauppajärjestelmien luomisesta web-julkaisuun). MQL4: n ja MQL5: n kirjastojen versiot on liitetty alla. Liitetiedostot sisältävät myös zip-tiedoston, jonka lähdekoodi on MQLMySQL. DLL Dokumentaatio sisältyy arkistoihin Esimerkkien käyttämiseen, älä unohda määrittää parametreja yhteyden tietokantaan tiedostossa ScriptsMyConnection. ini. need neuvoja uudelleen: Forex tietosyötte SQL Serverille Vastaamaton: tarvitset neuvoja re: Forex-tietosyötteen SQL Serverille Onko kenelläkään kokemusta syötettäessä reaaliaikaisia ​​Forex-tietoja SQL Serveriin? Yritän saada lisätietoja tästä, jotta voin tehdä analyysin SQL: ssä. Näyttää siltä, ​​että monet palveluntarjoajat tukevat jotain nimeltä DDE, joka on yhteys MSFT Excel: hen tai ne tarjoavat sovellusliittymän pääsyn tietoihin sovelluksen rakentamisesta C: ään tai muuhun vastaavaan. Jos tiedät palvelusta, joka tekee siirtymisen SQL Serverin taulukoihin, mikä olisi ihanteellinen. Koska voimani on SQL Server, etkä mene C-reitille, ja on epäselvää, miten analysoin tietoja, tarvitsen soittaa jokaisesta tapahtumasta viimeisten tuntien ajan ja sitten ohjelmallisesti laittaa SQL-taulukoihin joten voin analysoida Näyttää siltä kuin paljon yläpuolella, myös DDE ei kuulosta paljon paremmalta, se tuntuu silmiinpistävää lähestymistapaa ja mieluummin käsittelee vain raakatiedot, joita voidaan katsella kaikki kerralla w hieman käyttöliittymän yläpuolella. Tämä melkein kuulostaa palvelusopimuksen välittäjältä. Tuin kerran Google-viestien kanssa palvelun välittäjäpohjaista arkkitehtuuria. Kaikki riippuu keskusteluista verkkopalvelun kanssa. Sinun on selvitettävä, mikä on tietoliikenneprotokolla, jonka odotetaan noudattavan. Jos tietomuoto on omaperusteinen (toivottavasti se on kaupankäyntijärjestelmästä lähtien), saatat joutua oppimaan jotain C: ta puhua dekryptorikirjastoon CLR-toimintojen avulla ennen tietojen syöttämistä taulukoihin. Koska forte on SQL Server, etkä mene C-reitille Jos haluat säilyttää SQL: n kuin sinun tietosi, voit aloittaa kaivamisen C: hen ja PowerShell: iin. Rivin tiedot ovat riippuvaisia ​​rekisterin avaimesta, koko avaimesta , ja mitään muuta kuin avain, joten auta minua Codd. quotExecute SQL Metatraderista Ive nähnyt pari kierrettä tietokantojen käyttämisestä Metatraderissa, mutta minulla ei ole havaittavissa mitään erityistä yhteyttä Microsoft SQL Serveriin. Joten ajattelin Id koota nopean opetusohjelman siitä, miten tämä tehdään, jos joku haluaa tehdä jotain vastaavaa. Prosessin pitäisi toimia millä tahansa tietolähteellä, jota voidaan käyttää ADOODBCOLE DB: n (SQL, Access, Excel jne.) Kautta. Seuraavat koodinpätkät ovat vähän teknisiä ja vaativat joitain peruskoodaustietoja. Tätä tehtävää varten aloin ExpertSample C - projektin Metatrader-kansioasiantuntijaasi DLLSample. En halunnut aloittaa tyhjästä selvittää oikeanlaista COM-kirjastoa rakentaa, joten käytin yksinkertaisesti tätä näytehanketta. Kun olet avannut projektin (tarvitset Visual Studio - ohjelmaa), olet valmis käyttämään SQLa neljässä vaiheessa. 1) Lisää viittaus omiin ADO dll - asiisi ExpertSample. cpp-sivun yläosaan, kuten: tuonti C: Program FilesCommon FilesSystemADOmsado15.dll nonamespace rename (EOF, EndOfFile) 2) Sitten olet valmis lisäämään ExecuteScalar-menetelmän koodisi. Tämä toiminto palauttaa vain yhden arvon SQL: stä. (Metatrader voi vastaanottaa vain perustietotyyppejä). MT4EXPFUNC char stdcall ExecuteScalar (char strSQL) HRESULT hr SOK Määritä merkkijonomuuttujat. bstrt strCnn (MYCONNECTIONSTRING) yhteysstrings lisätietoja RecordsetPtr pRstAuthors NULL Call Luo instanssi rekisterikokoonpanon palauttamiseksi ERROR: Rekisteriasennon syntyminen epäonnistui Avaa rekisteriasetus, jolla voit saada rekisteritietoja Author table pRstAuthors-Openista (strSQL, strCnn, adOpenStatic, adLockReadOnly, adCmdText) catch (comerror ce1) return ERROR: SQL Server MQL: n ja tietokantojen avaaminen ei onnistu Onko kukaan tiedä tapa muodostaa yhteyden MT4: n tietokantaan? Kuvittelen, että sen pitäisi olla ulkoinen DLL, koska se ei näytä olevan tietoja pääsy laryer rakennettu MQL, mutta se ei pitäisi olla niin vaikea koota. Mutta ennen kuin teen sen, ihmettelin, että täällä on jo jonnekin. Olin mielessäni yleinen ODBC - tai OLEDB-yhteystyyppi, joten sitä voitaisiin käyttää useiden DBMS-ohjelmien kanssa. MQL amp - tietokannat Kyllä, tarvitset ulkoisen DLL: n tehdäksesi tämän työn puolestasi. Jos sinulla ei ole kokemusta C: stä, katso Powerbasic. Powerbasic voi luoda DLL-tiedostoja, joita voidaan käyttää MT4: ssä ja sen syntaksia on helppo ymmärtää. Hei, yritän seurata tätä opetusohjelmaa kuinka muodostaa yhteyden sql-palvelimeen. Seuraavassa hakemistossa - C: Program FilesCommon FilesSystemADO - Minulla on serveral. dll-tiedostoja. Minulla on seuraavat: on muutama muuta, mutta kaikki nämä ovat otsikkoa. Voiko joku kertoa minulle, mihin minun pitäisi käyttää Myös, voiko joku antaa esimerkin siitä, että lisätään yhteysjono. Ja myös tämä esimerkki on äärimmäisen yksinkertainen - itse asiassa se näyttää olevan jotain Northwindin esimerkkiä. Onko jollakulla esimerkkejä MT-koodien saamisesta ja tallentamisesta MS Sql - palvelimeen? Myös onko kukaan - tai kuka tahansa - käyttänyt MS SQL - palvelinta Metatraderin kanssa. Jos vastaus on myönteinen, voisitko tarkastella yllä olevaa opetusohjelmaa ja ehkä antaa joitain lisäyksiä tai parannuksia . Olen nähnyt muutamia ketjuja tietokantojen käytöstä Metatraderissa, mutta minulla ei ole havaittavissa mitään erityistä yhteyttä Microsoft SQL Server - palveluun. Joten ajattelin Id koota nopean opetusohjelman siitä, miten tämä tehdään, jos joku haluaa tehdä jotain vastaavaa. Prosessin pitäisi toimia millä tahansa tietolähteellä, jota voidaan käyttää ADOODBCOLE DB: n (SQL, Access, Excel jne.) Kautta. Seuraavat koodinpätkät ovat vähän teknisiä ja vaativat joitain peruskoodaustietoja. Tätä tehtävää varten aloin ExpertSample C - projektin Metatrader-kansioasiantuntijaasi DLLSample. En halunnut aloittaa tyhjästä selvittää oikeanlaista COM-kirjastoa rakentaa, joten käytin yksinkertaisesti tätä näytehanketta. Kun olet avannut projektin (tarvitset Visual Studio - ohjelmaa), olet valmis käyttämään SQLa neljässä vaiheessa. 1) Lisää viittaus omiin ADO dll - asiisi ExpertSample. cpp-sivun yläosaan, kuten: tuonti C: Program FilesCommon FilesSystemADOmsado15.dll nonamespace rename (EOF, EndOfFile) 2) Sitten olet valmis lisäämään ExecuteScalar-menetelmän koodisi. Tämä toiminto palauttaa vain yhden arvon SQL: stä. (Metatrader voi vastaanottaa vain perustietotyyppejä). MT4EXPFUNC char stdcall ExecuteScalar (char strSQL) HRESULT hr SOK Määritä merkkijonomuuttujat. bstrt strCnn (MYCONNECTIONSTRING) yhteysstrings lisätietoja RecordsetPtr pRstAuthors NULL Call Luo instanssi rekisteritietueen palauttamiseen ERROR: Rekisteriasetusten syntyminen epäonnistui Avaa rekisteriasetus, jolla voit saada rekisteritietoja Author table pRstAuthors-Openista (strSQL, strCnn, adOpenStatic, adLockReadOnly, adCmdText) catch (comerror ce1) return ERROR: SQL Server 4: n avaaminen ei onnistu 4) Kun olet lisännyt koottavan DLL: n asiantuntijakirjastot-kansioon, voit soittaa DLL-menetelmään lisäämällä seuraavan MQ4-tiedoston yläosaan: merkkijono ExecuteScalar (merkkijono strSQL) Olet siis valmis aloittamaan tietokannan soittamisen suoraan Metatraderista. Im käyttää tätä juuri nyt pelaamaan joitain SELECTINSERT lausuntoja minun SQL Server, yrittää pelata noin pitkälle tilauslogiikkaa. Seuraava tavoite: käyttämällä Sockets of Metatrader - ohjelmaa kommunikoimaan ulkoiseen sovellukseen, mieluiten kirjoitettu C: ään. Olin onnistunut seuraamaan vaiheitasi Visual Studio 2008 - ohjelmalla, mutta koodin koonnuttua sain seuraavan virheen: 1 ------ Build started : Projekti: ExpertSample, Configuration: Debug Win32 ------ 1d: studioexpertsampleexpertsampleexpertsamplesrc. cpp (221). varoitus C4996: strcat: Tämä toiminto tai muuttuja voi olla vaarallinen. Harkitse sen sijaan strcatsia. Käytä CRTSECURENOWARNINGS-toimintoa käytöstä poistamisen poistamiseksi käytöstä. Lisätietoja on online-ohjeessa. 1 c: ohjelmatiedostot Microsoft Visual Studio 9.0vcincludestring. h (79). katso strcat 1d: stä: studioexpertsampleexpertsampleexpertsamplesrc. cpp (235). virhe C2065: MYCONNECTIONSTRING. pimeä tunniste 1d: studioexpertsampleexpertsampleexpertsamplesrc. cpp (287). varoitus C4172: paikallisen muuttujan tai tilapäisen palautusosoite 1Build log tallennettiin tiedostoon: d: StudioExpertSampleExpertSampleDebugBuildLog. htm 1ExpertSample - 1 virhe (t), 2 varoitus (t) Rakenna: 0 onnistui, 1 epäonnistui, 0 ajan tasalla, 0 ohitettu Näyttää siltä, ​​että se ei tunnista MYCONNECTIONSTRINGiä. Olen koonnut alkuperäisen ExpertSample. cpp ennen päivitysten lisäämistä ja se toimi vain DLL: n generoimiseksi. Voitko auttaa. Kiitos jo etukäteen, miten luodaan Forex-ruutu historialliseen tietokantaan ilmaiseksi MYSQL: lle Windows, Linux tai Apple Mac OSX: ssä. Miten luodaan Forex-ruutu historialliseen tietokantaan ilmaiseksi MYSQL: lle Windows, Linux tai Apple Mac OSX: forexille. Se sisältää lähes 300 miljoonaa kirjaa millisekuntipuskusta. Olen tehnyt kaiken tämän käyttäessäsi MYSQL: tä, koska se voidaan helposti siirtää Linuxille Windowsista, jos tarvitsen. Oracle on liian kallis, koska MYSQL on ilmainen. Myös Microsoft SQL Server on melko nopea, mutta perustuu vain Windows. Minulla on kuitenkin jonkin verran viiveitä Windowsilla, joten minun on muistettava tämä kysymys tulevasta toteutuksesta mahdollisesti. Tämä tietokanta sisältää myös 14 suurta valuuttaparia sekä ristihistoriasta. Forex-rastien tiedot-aika on keväästä 2009 syyskuuhun 2011. Olen myös ladannut Forex-tiedot pilkulla erotettuihin arvoihin (CSV). Olen luonut C-ohjelman tietokannan lataamiseen MYSQL: ksi. Lopuksi olen luonut MYSQLDUMP: n SQL-tiedoston, jonka avulla voit luoda tietokannan ja taulukon ja täyttää taulukon forex-rastiin. Lähetän kaikki nämä resurssit pian jäsenyyden latausalueella, johon sinun tulee liittyä, jos haluat käyttää näitä resursseja. Liity tähän kun ilmoitan, että resurssit ovat valmiita lataamaan. HUOMAA Nyt lähetän TRADING ALERTSin henkilökohtaiseen FACEBOOK ACCOUNTiin ja TWITTERiin. Älä huoli, koska en dont post stupid kissa videot tai mitä syön Jaa tämä:

Comments

Popular Posts