Friday, 1 December 2017

Forexconnect api download


Teknik Cloud Providers Behöver implementera priser och kontouppgifter och möjligheten att skicka eller ändra order För mer teknisk API-användning erbjuder vi alternativ för en högre nivå av teknik. Våra API för tekniker och molnleverantörer ger dig låg bandbredd, dra arkitektur, inga konton miniminivåer, ett komplett utbud av handelsorder och tillgång till historisk forex och CFD-data. Forexconnect API ForexConnect är vår mest flexibla API8212 använd med NinjaTrader. ForexConnect är kompatibel med Linux, Mac, IOS och Android. Kod på 30 olika funktioner och funktioner Använda lågnivå meddelandestrukturer eller tabellstrukturer med beräknade fält Anslut till MATLAB för att köra avancerad analys av prisdata Komma igång Alltid ha ett FXCM-konto Hämta Forexconnect SDK Ett FXCM-konto, inklusive fri praxis konto8212någosaldo krävs inte En IDE eller textredigerare som kör LUA (dvs. Visual Studio) Behöver mer information Besök ForexConnect Wiki för att läsa våra guider för Java. NET och C och se exempel på komplexa kodutdrag för åtgärder som satskommandon och beredskapsgrupper. Vill du skapa en applikation för klient eller server-sida Java är ett skalbart, lätt och robust API baserat på FIX-specifikationen för forex och anpassad för handel med FXCM. Kompatibel med vilket Java-kompatibelt operativsystem som helst Lättviktigt och baserat på FIX-meddelanden Komma igång Har du redan ett FXCM-konto Hämta Java SDK Ett FXCM-konto, inklusive fri praxis konto8212no minsta balans krävs En IDE (dvs. Netbeans, Eclipse) Visa exempelkod och se dokumentation på FXCMs Java API GitHub-sida. 1 VPS Free Hosting: Håll en balans på 5 000 basvaluta (eller 500k JPY och 40k HKD) på ditt MT4-konto, och VPS är din utan kostnad. (Till exempel, om ditt kontobeteckning är australiska dollar (AUD), det är en kontosaldo på 5.000 AUD). Om du inte uppfyller detta krav i slutet av månaden kan en avgift på 30 basvaluta (eller 3k JPY och 240 HKD) debiteras från något av ditt FXCM-konto (er) för att täcka VPS-kostnaden. Länkar från tredje part: Länkar till tredje parts webbplatser tillhandahålls för din bekvämlighet och endast för informationsändamål. FXCM påtar sig inget ansvar för exaktheten, innehållet eller andra frågor som är relaterade till den externa webbplatsen eller för efterföljande länkar, och tar inget ansvar för förlust eller skada som uppstår på grund av användningen av detta eller annat innehåll. Sådana webbplatser är inte inom vår kontroll och kan inte följa samma integritets-, säkerhets - eller tillgänglighetsstandarder som vår. Läs användarvillkoren för länkade webbplatser. Riskvarning: Vår service omfattar produkter som handlas marginellt och medför risk för förluster som överstiger dina deponerade medel. Produkterna kanske inte är lämpliga för alla investerare. Se till att du fullt ut förstår riskerna. High Risk Investment Warning: Handel med utländsk valuta och kontrakter om skillnader i marginal medför en hög risknivå och kan inte vara lämplig för alla investerare. Möjligheten finns att du kan behålla en förlust som överstiger dina deponerade medel. Innan du bestämmer dig för handeln med de produkter som FXCM erbjuder, bör du noggrant överväga dina mål, ekonomiska situation, behov och erfarenhetsnivå. Du bör vara medveten om alla risker som är förknippade med handel med marginaler. FXCM ger generell rådgivning som inte tar hänsyn till dina mål, ekonomiska situation eller behov. Innehållet på denna webbplats kan inte tolkas som personlig rådgivning. FXCM rekommenderar dig att söka råd från en separat finansiell rådgivare. Vänligen klicka här för att läsa fullständig riskvarning. Forex Capital Markets Limited (FXCM LTD) är ett verksamhetsdotterbolag inom FXCM-koncernen (gemensamt FXCM-koncernen). Alla referenser på denna sida till FXCM hänvisar till FXCM-gruppen. Forex Capital Markets Limited är auktoriserad och reglerad i Storbritannien av Financial Conduct Authority. Registreringsnummer 217689. Skattebehandling: Den brittiska skattebehandlingen av dina ekonomiska vadslagningsaktiviteter beror på dina individuella omständigheter och kan komma att ändras i framtiden eller kan skilja sig från i andra jurisdiktioner. Copyright kopia 2017 Forex Capital Markets. Alla rättigheter förbehållna. Northern Amp Shell Building, 10 Lower Thames Street, 8: e våningen, London EC3R 6AD Bolag bildat i England Amp amp Wales nr.04072877 med säte som ovan. Vi använder cookies för att förbättra prestanda och funktionalitet på vår webbplats, vilket i slutändan förbättrar din webbläsarupplevelse. Genom att fortsätta att bläddra på den här sidan godkänner du vår användning av cookies. Du kan ändra dina cookieinställningar när som helst. Läs mer Din webbläsare är föråldradAPI Trading Har din egen mäklare Sedan kräver du den högsta tekniken med FIX. VPS Free Hosting: Håll en balans på 5.000 basvaluta (eller 500k JPY och 40k HKD) på ditt MT4-konto, och VPS är din utan kostnad. (Till exempel, om ditt kontobeteckning är australiska dollar (AUD), det är en kontosaldo på 5.000 AUD). Om du inte uppfyller detta krav i slutet av månaden kan en avgift på 30 basvaluta (eller 3k JPY och 240 HKD) debiteras från något av ditt FXCM-konto (er) för att täcka VPS-kostnaden. Riskvarning: Vår service omfattar produkter som handlas marginellt och medför risk för förluster som överstiger dina deponerade medel. Produkterna kanske inte är lämpliga för alla investerare. Se till att du fullt ut förstår riskerna. High Risk Investment Warning: Handel med utländsk valuta och kontrakter om skillnader i marginal medför en hög risknivå och kan inte vara lämplig för alla investerare. Möjligheten finns att du kan behålla en förlust som överstiger dina deponerade medel. Innan du bestämmer dig för handeln med de produkter som FXCM erbjuder, bör du noggrant överväga dina mål, ekonomiska situation, behov och erfarenhetsnivå. Du bör vara medveten om alla risker som är förknippade med handel med marginaler. FXCM ger generell rådgivning som inte tar hänsyn till dina mål, ekonomiska situation eller behov. Innehållet på denna webbplats kan inte tolkas som personlig rådgivning. FXCM rekommenderar dig att söka råd från en separat finansiell rådgivare. Vänligen klicka här för att läsa fullständig riskvarning. Forex Capital Markets Limited (FXCM LTD) är ett verksamhetsdotterbolag inom FXCM-koncernen (gemensamt FXCM-koncernen). Alla referenser på denna sida till FXCM hänvisar till FXCM-gruppen. Forex Capital Markets Limited är auktoriserad och reglerad i Storbritannien av Financial Conduct Authority. Registreringsnummer 217689. Skattebehandling: Den brittiska skattebehandlingen av dina ekonomiska vadslagningsaktiviteter beror på dina individuella omständigheter och kan komma att ändras i framtiden eller kan skilja sig från i andra jurisdiktioner. Copyright kopia 2017 Forex Capital Markets. Alla rättigheter förbehållna. Northern Amp Shell Building, 10 Lower Thames Street, 8: e våningen, London EC3R 6AD Bolag bildat i England Amp amp Wales nr.04072877 med säte som ovan. Vi använder cookies för att förbättra prestanda och funktionalitet på vår webbplats, vilket i slutändan förbättrar din webbläsarupplevelse. Genom att fortsätta att bläddra på den här sidan godkänner du vår användning av cookies. Du kan ändra dina cookieinställningar när som helst. Läs mer Din webbläsare är föråldradOctave-API Den 27 februari 2013 11:52, ramack lthidden email gt skrev: gt En av medlemmarna svarade: gt quotY Du kan arbeta med Matlab via ForeXConnect från vilket språk som Matlab api existerar. Här är en artikel hur man arbetar med gt C: codeprojectArticles. LAB-Engine-API gt Jag hoppas att det kommer att hjälpa till med gt gt Har aldrig använt API-apparater, jag är vilse och inte riktigt säker på var du ska börja, förutom GT med grunderna och bygga vidare på det. Så det varför jag ställde frågan om en bra startplats med Octave API. I denna contet betyder quotOctave APIquot vissa funktioner som ForeXConnect tillhandahåller som kan kallas på oktavsspråket. Den personen gav dig ett orelaterat svar om hur man ringer C från Matlab och är helt orelaterat med ditt problem. När folk säger quotAPIquot glömde jag att säga att de också betyder quotwebadresser för att manipulera dataquot, det vill säga ett web-API: Till exempel ger följande bitbucket-URL dig några data om ett repository: Tanken är att denna URL och olika HTTP-metoder ( till exempel GET, POST) kan du manipulera dessa data. Uppgifterna som du ser ovan överförs som JSON. Det du vill ha är att hitta något webb API för den webbplats du bryr dig om, och sedan kan du använda Octaves urlread och urlwrite-kommandon för att manipulera data med hjälp av dessa webbadresser. Öppna det här inlägget i gängad vy Rapportera innehåll som olämpligt Re: Octave API den 27 februari 2013 12:10, Jordi Gutirrez Hermoso lthidden email gt skrev: gt Den 27 februari 2013 11:52, ramack lthidden email gt skrev: gtgt En av medlemmarna svarade: gtgt quotYYou kan arbeta med Matlab via ForeXConnect från vilket språk som gtgt Matlab api existerar. Här är en artikel hur man arbetar med gtgt C: codeprojectArticles. LAB-Engine-API gtgt Jag hoppas att det kommer att hjälpa till med gtgt gtgt Har aldrig använt API, jag är vilse och inte riktigt säker på var du ska börja, förutom gtgt med grunderna och bygga på det. Så det var därför jag ställde frågan om en bra startplats med Octave-API. gt gt i denna contet betyder quotOctave APIquot vissa funktioner som ForeXConnect gt tillhandahåller som kan kallas på oktavsspråket. Den personen gav dig ett orelaterat svar om hur man ringer C från Matlab och är helt orelaterat med ditt problem. Jag missförstod vad ForexConnect var. Jag trodde att det var en hemsida. Om det är ett program måste du ta reda på vilka funktioner det här programmet tillåter dig att ringa från C. För detta skulle du behöva skriva ett C-program som fungerar med ForexConnect och Octave. ForexConnect verkar dock vara icke-fri. Det betyder att du inte kan distribuera detta hypotetiska program, eftersom det här skulle vara en GPL-överträdelse. För ditt mål att få forex citat finns det många webbplatser som tillhandahåller denna funktionalitet med ett web API. Till exempel, här är en: Ändra webbadressen på det uppenbara sättet för att få andra härdigheter. Detta togs härifrån: Öppna det här inlägget i gängad vy Rapportera innehåll som olämpligt Re: Octave API Hej, jag har inte tittat på länken du refererar till. Men Google och Yahoo Fx tabeller går bara ut till 2 decimaler. Jag behöver minst 4. Lager - och kommdata ser ut som sin normallty ut till 2 ställen. Det var inte förrän jag hade ett fungerande manus för att uppgifterna inte är lika exakta som jag behöver eller är vanligtvis citerade för Forex. Tack, Rich Öppna det här inlägget i gängad vy Rapportera innehåll som olämpligt Re: Octave API Den 27 februari 2013 13:30, ramack lthidden email gt skrev: gt Jag har inte tittat på länken du refererar till. Men Google och Yahoo Fx tabeller gt går bara ut till 2 decimaler. Jag behöver minst 4. Då kanske du borde se länken och se hur den har mycket mer än 2 decimaler. Öppna det här inlägget i gängad vy Rapportera innehåll som olämpligt Re: Octave-API Jag hade hittat den stackoverflow-länken förra veckan. Länken som har mer signifikanta decimaler, matar inte ut historiska data, utan realtidsnoteringar. Jag har hittat lite mer information när det gäller ForexConnect, så för tillfället fortsätter jag med det. Tack för förslagen men. Rich Öppna det här inlägget i gängad vy Rapportera innehåll som olämpligt Re: Octave API den 28 februari 2013 10:05, ramack lthidden email gt skrev: gt Jag har hittat lite mer info när det gäller ForexConnect, så för gt-ögonblicket Ill fortsätt med den där. Tack för förslagen men. gt Rich Om du länkar Octave till ForexConnect, glöm inte dina GPL-förpliktelser: Så här börjar du med ForexConnect API (Win32Win64) Den här artikeln beskriver hur du börjar använda ForexConnect API. Här kan du hitta de grundläggande API-principerna och steg-för-steg-instruktionerna om att skapa ett arbetsprov av en enkel handelsapplikation. Plattform. Microsoft Framework 2.0 och senare på MS Windows 32-bit64-bitarsversion Språk. C IDE. Microsoft Visual Studio 2005, 2008, 2010 ForexConnect-bibliotekets användning med Microsoft Silverlight-applikationsramen stöds inte. ForexConnect-biblioteket som körs med Mono stöds inte. Komma igång och installera ForexConnect API-bibliotek Ladda ner den senaste versionen av ForexConnect API: Om du har en 32-bitarsversion av Microsoft Windows, ladda ner 32-bitarsversionen av ForexConnect API. Om du har en 64-bitarsversion av Microsoft Windows, ladda ner 64-bitars byggnad av ForexConnect API. Se dialogrutan Systemegenskaper för information om din systemversion. Observera att om ditt system är Windows XP och du inte ser x64 Edition som anges i dialogrutan Systemegenskaper, kör du en 32-bitarsversion av Windows XP. Starta installationsprogrammet och följ sedan instruktionerna i installationsguiden. Vidare antar vi att ForexConnect API är installerat i C: Program FilesCandleworksForexConnectAPI. Använda ForexConnect API med Microsoft Visual Studio Du bör göra följande ändringar i ditt C-projekt: 1. Konfigurera händelsen efter byggandet av ditt projekt för att kopiera ForexConnect API-bibliotek och stödja filer till mappen där ditt program är byggt: I projektet Egenskaper rarr Bygg händelser rarr Post-Build händelse kommandorad, lägg till följande text: kopiera C: Program FilesCandleworksForexConnectAPIbin. (TargetDir) 2. Lägg till en referens till fxcore2.dll-enheten till ditt projekt. Om du använder 4.0 använder du lämplig fxcore2.dll-enhet som finns i mappen C: Program FilesCandleworksForexConnectAPIbinnetdotnet40. Om du använder 2.0 använder du fxcore2.dll-montering från mappen C: Program FilesCandleworksForexConnectAPIbinnetdotnet20. 3. Lägg till namespace fxcore2 i din kod: Distribution Du måste distribuera ditt program med alla binära bibliotek och stödja filer från C: Program FilesCandleworksForexConnectAPIbin. ForexConnect-bibliotek och stödfiler måste placeras i den mapp där din applikation är installerad. Observera att fxcore2.dll-montering måste placeras i den mapp där din applikation är installerad. ForexConnect API-funktioner Event Driven Architecture Alla API-er som används av ForexConnect är asynkrona, så du måste implementera en händelsedriven arkitektur i din kod. En händelsesdriven arkitektur är ett mjukvaruarkitekturmönster som hanterar beteendet för produktion, upptäckt och konsumtion av händelser samt de svar som de framkallar. I detta sammanhang bör en händelse behandlas som ett värde eller ett meddelande som kan identifieras inom en pågående ström av övervakade ingångar, såsom specifika förhållanden eller signaler eller något annat. Händelsesdrivna arkitekturer består vanligtvis av evenemangsproducenter och evenemangskonsumenter. Händelsekunder abonnerar på en händelsehanterare, och händelseproducenter publicerar till denna chef. När chefen får en händelse från en producent, skickar den den här händelsen till alla registrerade konsumenter eller lagrar händelsen för senare vidarebefordran. En händelsehanterare är en återkopplingsrutin som fungerar asynkront och hanterar ingångar som tas emot i ett program (händelser). I detta sammanhang är en händelse ett meningsfullt element av applikationsinformation från en underliggande utvecklingsram, vanligtvis från ett grafiskt användargränssnitt (GUI) verktygsverktyg eller någon form av inmatningsrutin. På GUI-sidan, till exempel, inkluderar händelser nyckeltryck, musaktivitet, åtgärdsval eller tidsfördröjningar. På ingångssidan innefattar händelser att öppna eller stänga filer och dataströmmar, läsdata och så vidare. Händelsehantering är mottagandet av en händelse vid en händelsehanterare från en händelseproducent och efterföljande processer. Processerna som är inblandade i händelsehantering inkluderar: Identifiera var händelsen ska vidarebefordras Gör det framåt Ta emot den vidarebefordrade händelsen Ta någon form av lämplig åtgärd som svar, t. ex. skriva till en logg, skicka ett fel eller återställningsrutin eller skicka ett meddelande. Händelsen handlaren kan slutligen vidarebefordra händelsen till en evenemangskonsument. Fördelen med händelsesdrivna arkitekturer är att de tillåter godtyckligt stora samlingar av konsumenter och producenter, tillsammans med ett antal ledare, att utbyta pågående status och responsinformation. De är också vanligtvis ganska mottagliga för händelser som de uppträder och fungerar bra i oförutsägbara och asynkrona kommunikationsmiljöer. ForexConnect Event Handling Egenskaper ForexConnect API har redan implementeringar av IO2GSessionStatus och IO2GResponseListener gränssnitt för att få meddelanden om sessionsstatusändringar och dataförmåga. Så du kan använda lämpliga händelser i O2GSession-objektet istället för att implementera de gränssnitten själv. Men du kan implementera dem och använda dem för att få meddelanden från sessionsobjektet efter abonnemang om det här är mer lämpligt för dig. Observera att alla händelsehanterare som du har implementerat för O2GSession-händelser kallas i en separat tråd. Så du måste tänka på följande: Du måste alltid tillhandahålla trådlös åtkomst till alla data som är lagrade i din ansökan, som uppdateras från dina händelsehanterare. Du behöver inte synkronisera händelsehanteringssamtal och behöver inte tänka på händelsehanteraren igen, eftersom alla händelser från API redan är synkroniserade i en tråd. Därför kallas händelsehanterare i följd. Du bör hantera varje händelse så snabbt som möjligt eftersom de synkroniseras i hanteringsgängan av ForexConnect-biblioteket. Du kan köra dina egna trådar för att accelerera händelsehanteringen. Objekt Lifetime Management Du behöver inte någon extra resurshantering för objekt som erhållits med ForexConnect API. Det rekommenderas dock att anropa Dispose () - metoden för alla erhållna objekt som implementerar det. Med dessa samtal kan du frigöra oanvända systemresurser mer effektivt. Du kan använda användningsberättelsen för detta ändamål: Provprogram med ForexConnect API Detta prov är en enkel konsol-applikation som använder ForexConnect API. Den här applikationen har följande funktioner: Anslutning till en handelsserver med de fördefinierade användaruppgifterna Hämta priser för EURUSD Hämtar kontotabellen för användaren Skapa en öppen marknadsorder för EURUSD när du anger b (buy) eller s (sälja) Hämta orderen tabell och mottagande av meddelanden om uppdateringar i den här tabellen Avsluta programkörningen när du matar in q (avsluta) För att förenkla urvalet implementeras hela programlogiken i en klass MyApp. Du kan ladda ner hela källkoden för urvalet: Fil: ForexConnect Sample Net. zip Ansluta till Trade Server Huvudobjektet med ForexConnect API är ett sessionsobjekt O2GSession i fxcore2 namespace. Detta objekt representerar en session av användaranslutning och kan skapas med en statisk metod för O2GTransport-klassen: O2GSession-objektet meddelar abonnenter av alla ändringar av anslutningstillståndet genom följande händelser: eller genom återuppringningsgränssnittet IO2GSessionStatus. Dataremottagningsanmälningarna kan hanteras med följande O2GSession-händelser: eller via återuppringningsgränssnittet IO2GResponseListener. För att ansluta till en handelsserver med ForexConnect API gör du följande: Skapa ett sessionsobjekt. Implementera hanterare för händelseobjekthändelser för att få meddelanden om sessionsstatusändringar. Ring inloggning () för sessionen och vänta tills inloggningsprocessen är klar. Behandla de mottagna meddelandena om anslutningsstatusändringar i onSessionStatusChanged för att hantera tillståndet för inloggningsprocessen. Se följande källkod för detaljer om implementering: Observera att vi väntar på en anmälan av inloggningsfärdigställandet eftersom ltcodegtlogin () - samtalet är asynkront. För detta använder vi en särskild synkroniseringssignal. När onSessionStatusChanged kallas, är signalen inställd för att återuppta trådkörningen efter mSyncSessionEvent. WaitOne (5000) i run () - metoden. Logga in med val av handelssession När ett användarkonto har flera handelssessioner, är inloggning en process i flera steg: 1. Kalla inloggningsmetoden () för sessionsobjektet med ett användarnamn, lösenord, serveradress och angiven databasnamn. 2. Behandla den mottagna statusen TradingSessionRequested i händelsehanteraren onSessionStatusChanged. Det följer vanliga steg för att behandla statusen TradingSessionRequested: 2.1. Hämta handelssessionlistan från O2GSession-objektet med metoden getTradingSessionDescriptors (). 2,2. Ge ett val av handelssessionen för användaren. 2,3. Begär en hemlig PIN-kod från användaren. 2,4. Ange det angivna handelssession ID och PIN med setTradingSession (). Visa Källa Hantera Priser Hantering av priser omfattar följande steg: Kontrollera om det finns prisuppgifter som automatiskt begärs under inloggningen. Om ja, gå till steg 2. Om nej, skicka en begäran om aktuella priser för alla instrument. Hantera svaret. Hantera prisuppdateringen för ett visst instrument. För att få meddelanden om förfrågningsreaktioner eller servernobjekt anger ändringar måste du implementera och prenumerera händelsehanterare på lämpliga händelser i O2G2Session-förekomsten. För detta ändrar du MyApp-klassen för att hantera dessa händelser: Begär aktuella priser Beroende på inställningar på handelsservern kan nuvarande priser på alla instrument antingen mottas automatiskt under inloggningsprocessen eller du kan uttryckligen begära dessa data från handelsservern . Så, för att få de aktuella priserna bör du göra följande åtgärder: 1. Kontrollera om det finns prismöjligheter mottagna vid inloggning med metoden isTableLoadedByDefault () i O2GLoginRules-förekomsten. 2. Om de laddas får du det redan mottagna erbjudandesvarobjektet med hjälp av getTableRefeshResponse (Offers) - metoden i O2GLoginRules-förekomsten. Detta svarobjekt kan bearbetas för att extrahera erbjudandensdata. För att få en läsare för att läsa svardata gör du följande: Hämta svarläsarefabriken med metoden getResponseReaderFactory () i sessionsobjektet. Skapa en läsare med metoden createOffersTableReader () i O2GResponseReaderFactory-förekomsten. 3. Om erbjudanden inte mottogs vid inloggningen, skicka en förfrågan till offertabellen som uttryckligen använder metoden sendRequest () för sessionsobjektet. Gör följande för att skapa en lämplig förfrågan: Få begäran från fabriken med metoden getRequestFactory () i sessionsobjektet. Skapa förfrågan med metoden createRefreshTableRequest () i O2GRequestFactory-förekomsten. För att begära de aktuella priserna, lägg till följande källkod i run () - metoden för vårt prov efter inloggningsprocessen: I provet väntar vi på att ta emot förfrågningssvaret med en synkroniseringssignal. Så vi tar ögonblicket för att börja övervaka prisändringen för EURUSD från. Självklart bör vi ställa in den här signalen när prisdata är mottagna. I vårt prov används ett trick för att undvika koddubbling. Som du kommer att se vidare är responsbehandling densamma när erbjudandensdata tas emot från objektet O2GLoginRules och när vi explicit hämtar erbjudandensdata. Så att bearbeta svarobjektet som tas emot från O2GLoginRules. Du kan direkt ringa den implementerade händelsehanteraren i begäranCompleted-händelsen i sessionsobjektet. Mottagande av prisdata Som ett samtal på sendRequest () är asynkron, för att få svar med prisdata måste du implementera händelsehanteraren för RequestCompleted-händelse för sessionsobjekt. Eftersom denna händelsehanterare används för att få meddelanden om svar på alla förfrågningar, bör du göra följande: Kontrollera om svarstypen är GetOffers. Hämta O2GOffersTableResponseReader-responsläsaren med O2GResponseReaderFactory för att få prisdata från svarobjektet. Bearbeta alla rader i tabellen Specialerbjudanden med läsaren. Du måste tillhandahålla trådlös åtkomst till de erbjudanden som sparas i din ansökan. Se källkoden nedan för ett urval av hur du hanterar mottagandet av ett svar. För att lagra de aktuella priserna för EURUSD definieras lämpliga variabler och tråksäker åtkomst till dem genomförs. En synkroniseringssignal ställs in när mottagning av erbjudandendata är klar. Detta knep tillåter att vänta på att ta emot de aktuella priserna i huvudgänget efter att ha skickat begäran. Vårt provprogram hanterar RequestComplete-händelsen och extraherar EURUSD-budet och priset. De mottagna frågorna och budpriserna lagras i variablerna mEURUSDBid och mEURUSDAsk, nivågängliga metoder för att läsa och ändra dessa variabler implementeras. Uppdatering av mottagningserbjudanden Observera att meddelandet är mottaget i en separat tråd, därför måste du använda trådläst läsning och uppdatering av variablerna som lagrar mottagna data. Lägg till följande kod i MyApp för att hantera prisuppdateringen EURUSD: Behandling av uppdateringstabelluppdateringen innehåller följande steg: 1. Hämta O2GResponseReaderFactory från sessionsobjektet. 2. Hämta en O2GTablesUpdatesReader-läsare med hjälp av fabriken via createTablesUpdatesReader-metoden. 3. Gör en slinga för att räkna upp varje element i uppdateringslistan eftersom den mottagna data kan innehålla uppdateringar för alla typer av objekt, inte bara för tabellen Specialerbjudanden. Så du måste kontrollera varje objekt i uppdateringslistan för den obligatoriska typen av tabelltyp och uppdateringstyp. 4. För att bearbeta ändringen, använd läsaren getOfferRow () för att hämta ett objekt av typen O2GOfferRow: Observera att meddelandet är mottaget i en separat tråd, därför måste du använda trådsäker läsning och uppdatering av variablerna som lagra mottagna data. Lägg till följande kod i MyClass för att hantera uppdateringen av EURUSD-pris: I vårt prov bearbetar vi endast prisuppdateringar för EURUSD och lagrar deras senaste värden i variablerna mEURUSDBid och mEURUSDAsk. Vi har implementerat trådsäkra metoder för att komma åt dessa variabler. Order Creation För att skapa en order gör du följande: 1. Kontrollera att du minst har ett användarkonto-ID och ett erbjudande-ID som krävs för att skapa en order. Om inte, fråga dem först. 2. Använd en O2GRequestFactory-instans för att skapa O2GValueMap för att ange orderparametrarna. 3. Fyll i värdekartan med nödvändiga parametrar för att skapa en viss typ av order. Se ForexConnectAPI SDK för detaljer om parametrar för kommandon för att skapa order. 4. Skapa ett O2GRequest-objekt med O2GRequestFactory för den fyllda värdesedeln. 5. Starta utförandet av förfrågan. 6. Ta emot förfrågningssvaret för att vara säker på att genomförandet av förfrågan är framgångsrikt. Eftersom vi behöver ett konto-ID för vårt prov kan vi först hämta konton tabellen. Att hämta data i kontotabellen liknar att hämta data från tabellen Specialerbjudanden. För att förenkla urvalet får du det första kontot från användarkonto listan och lagra det i en variabel på klassnivå för ytterligare användning. Vi väntar på svaret för att undvika beställningsskapande innan konto-id hämtas. Den bästa praxisen är inkapsling av ordningsskapande logiken till en separat metod i MyApp-klassen. Du bör också hantera svaret på beställningsuppdragsförfrågan i onRequestCompleted Event Handler för att se till att ordern skapas. Se följande källkod som skapar en köp - eller säljorder för EURUSD-instrumentet med 100K-belopp: Observera att det finns några användbara hjälparklasser i fxcore2.Constants namnrymden för att fylla i ValueMap-objektet med orderparametrar: Du kan behålla begäran ID till bearbeta svar av en viss begäran: Hämtning av beställningsbord All information om tillstånd av befintliga beställningar kan hämtas från Order-tabellen. ForexConnect API tillåter hämtning av beställningstabellen endast för ett angivet konto. Så du behöver göra följande: Hämta kontotabellen. Vänta tills konton data har tagits emot. Hämta Order-tabellen för varje mottaget konto med hjälp av createRefreshTableRequestByAccount () i O2GRequestFactory-förekomsten. Hantera begäran om svar i en händelsehanterare i RequestComplete-händelsen. Hantera ordertabelluppdateringen i en händelsehanterare i tabellen Uppdaterad händelse. För att förenkla vårt prov tar vi det lagrade konton-idet och använder det i exemplet för orderhämtning. Observera att om du lagrar beställningsdata måste du tillhandahålla trådlös tillgång till denna data och korrigera hanteringen av referensräknare för de lagrade objekten. I vårt prov lagras orderdata inte, så synkroniseringen implementeras inte. Slutför ansökan. Logga ut Som du kan se, frigör stop () - metoden i vår MyApp-klass alla använda systemresurser och avbryter alla händelsehanterare från sessionshändelser för att sluta ta emot meddelanden. Du måste ringa utloggning () innan ansökan avslutas. Du borde också kalla Dispose () - metoden i sessionen före TMain () returnerar kontrollen. Hantering av förfrågningsfel När ett fel uppstår under asynkron utförande av en förfrågan åberopas händelsehanteraren för RequestFailed-händelsen. I vårt exempel hanterar vi felet genom att lägga till felbeskrivningen i konsolutmatningen och genom att stoppa programmet: Starta provet Nu kan vårt prov logga in, hämta EURUSD prisändringar, visa information om befintliga beställningar och har en metod att skapa en öppen marknadsorder. För att starta provet på detta stadium måste vi genomföra användningen av vår MyApp-klass. För detta gör du följande: Inne i huvudfunktionen för vår konsolansökan, skapa en instans av vår MyApp-klass. Kalla metoden run () i instansen för att logga in på handelsservern och börja ta emot uppdateringar av EURUSD. Ge läsning av användarnas inmatning för att utföra kommandon: När b är inmatat, skapa en köpmarknadsorder när s är inmatat, skapa en försäljningsorderordning när q är inmatat, avsluta applikationen. Procedurens run () - metod förbereder ansökan för handel. När förberedelsen är gjord returnerar den sant om allt är bra. Som du kan se kallar denna metod alla API-funktioner asynkront men väntar på deras svar med speciella synkroniseringsobjekt. Observera att detta inte är en effektiv metod att använda ForexConnectAPI, men det är lätt att förstå. Glöm inte att ange ett giltigt användarnamn och lösenord för ett samtal av login () - metoden. Nu kan du bygga och springa provet. Om du har några problem med att bygga provet, jämför det med hela källkoden för provet: Fil: ForexConnect Sample Net. zip. Vad är nästa För detaljerad information om alla API-klasser och deras metoder, se ForexConnectAPI SDK. Denna artikel i andra språk

No comments:

Post a Comment