Friday 6 October 2017

Jforex Api Doc


Hur detta API-dokument organiseras Detta API-dokument (Application Programming Interface) har sidor som motsvarar objekten i navigeringsfältet, beskrivet enligt följande. Översiktssidan är framsidan för det här API-dokumentet och innehåller en lista över alla paket med en sammanfattning för varje. Den här sidan kan också innehålla en övergripande beskrivning av paketpaketet. Varje paket har en sida som innehåller en lista över sina klasser och gränssnitt, med en sammanfattning för varje. Den här sidan kan innehålla sex kategorier: ClassInterface Varje klass, gränssnitt, kapslade klass och kapslade gränssnitt har en egen separat sida. Var och en av dessa sidor har tre sektioner som består av en beskrivning av klassinterface, sammanfattande tabeller och detaljerade medlemsbeskrivningar: Klassarvärddiagram Direkta underklasser Alla kända delgränssnitt Alla kända implementeringsklasser Klassinterfacedeklaration Klassgränssnittsbeskrivning Nested Class Sammanfattning Fält Sammanfattning Konstruktör Sammanfattning Metod Sammanfattning Fältdetalj Konstruktördetalj Metoddetalj Varje sammanfattande post innehåller den första meningen i den detaljerade beskrivningen för den aktuella artikeln. Sammanfattningsuppgifterna är alfabetiska, medan de detaljerade beskrivningarna är i den ordning de visas i källkoden. Detta bevarar de logiska grupperingar som programmeraren bestämmer. Annotationstyp Varje annoteringstyp har sin egen separata sida med följande avsnitt: Angivning av antecknings typ Anmärkning Typbeskrivning Obligatorisk Element Sammanfattning Valfritt Element Sammanfattning Element Detalj Varje enum har sin egen separata sida med följande avsnitt: Enum deklaration Enum beskrivning Enum Konstant Sammanfattning Enum Constant Detalj Varje dokumenterat paket, klass och gränssnitt har en egen användningssida. På den här sidan beskrivs vilka paket, klasser, metoder, konstruktörer och fält som helst, vilken del av den angivna klassen eller paketet. Med en klass eller ett gränssnitt A innehåller användningssidan underklasser av A, fält som deklareras som A, metoder som returnerar A och metoder och konstruktörer med parametrar av typ A. Du kan komma åt den här sidan genom att först gå till paketet, klassen eller gränssnittet , Sedan klicka på länken Använd i navigeringsfältet. Trä (Klasshierarki) Det finns en klasshierarki-sida för alla paket, plus en hierarki för varje paket. Varje hierarkisida innehåller en lista över klasser och en lista över gränssnitt. Klasserna är organiserade av arvstrukturen som börjar med java. lang. Object. Gränssnittet ärver inte från java. lang. Object. När du tittar på Översiktssidan, klickar du på Tree i hierarkin för alla paket. När du tittar på ett visst paket, klass eller gränssnittssida, klickar Tree på hierarkin för endast det paketet. Utdaterad API Den avkodade API-sidan visar alla de API som har avlägsnats. Ett avstängt API rekommenderas inte för användning, vanligtvis på grund av förbättringar, och ett ersättnings-API ges vanligtvis. Utdaterade API: er kan tas bort i framtida implementeringar. Indexet innehåller en alfabetisk lista över alla klasser, gränssnitt, konstruktörer, metoder och fält. Dessa länkar tar dig till nästa eller föregående klass, gränssnitt, paket eller relaterad sida. FramesNo Frames Dessa länkar visar och döljer HTML-ramarna. Alla sidor är tillgängliga med eller utan ramar. Alla klasser länken Alla klasser visar alla klasser och gränssnitt förutom icke-statiska indelade typer. Serialiserad form Varje serialiserbar eller utbytbar klass har en beskrivning av dess serialiseringsfält och metoder. Denna information är av intresse för re-implementorer, inte för utvecklare som använder API. Medan det inte finns någon länk i navigeringsfältet kan du komma till den här informationen genom att gå till en seriell klass och klicka på Serialized Form i avsnittet Se även i klassbeskrivningen. Konstanta fältvärden På sidan Konstant fältvärden listas de statiska slutfälten och deras värden. Den här hjälpfilen gäller API-dokumentation som genereras med standarddokumentet. Det största problemet jag hade när jag lärde mig att programmera mina egna handelsstrategier i JForex är att hitta var man ska börja lära. Det fanns lite JForex dokumentation tillgänglig då och jag var tvungen att lära mig själv genom noggrann försök och fel med hjälp av Dukascopys tekniska support. Saker har säkert förändrats till det bättre som ett JForex-samhälle börjar spira och dokumentation för det är åtminstone tillräckligt för att få någon att börja. Det här inlägget är det första av en serie snabba nybörjarguider för att lära sig JForex-programmering genom att lägga alla dessa resurser i en handledning. JForex är ett Java-verktyg JForex är egentligen inte ett programmeringsspråk. Det är ett applikationsprogrammeringsgränssnitt (API) för användning med det vanliga Java-programmeringsspråket. Som sådant är det första steget att lära sig att programmera i JForex att lära sig Java. Lyckligtvis är Java ett av de mest populära programmeringsspråk. Så det finns massor av resurser på och från nätet för att lära dig Java-programmering. Några exempel på gratis online tutorials är: Java Tutorials - Detta är en officiell handledning från Java-utvecklaren själva. Högt rekommenderad. Nybörjare Java Tutorial - Mer inriktad på de absoluta nybörjare till programmering. Om du föredrar en bok skulle jag rekommendera Head First Java, 2nd Edition. Jag borstade upp på min Java från den här boken. Dont bo på Java för mycket, eftersom du bara behöver veta grunderna för att komma igång med JForex. Läs bara några kapitel för att förstå Java-syntaxen och fortsätt sedan. Du kan alltid referera till dem senare. Dykning till JForex JForex Wiki är en av de tre väsentliga resurserna för JForex-programmerare. Jag kommer att referera till några specifika sidor i Wiki i mycket av denna serie inlägg. Om du inte har gjort det redan, registrera dig för ett DEMO-konto hos Dukascopy. Sedan startar du JForex-plattformen och följer instruktionerna på sidan Använda på JForex-wikisidan för att montera din första JForex-strategi. Hittills så bra Förhoppningsvis hoppas jag att du kan förstå grundläggande Java-källkod och veta hur man startar, sammanställer och kör en JForex strategi. I nästa post i denna lärande JForex-serien studerar vi anatomin i en JForex-strategi. När vi studerat anatomin i en tom JForex-strategi (Del 1 och Del 2), är det dags att dissekera en fungerande. MAPlay är den strategi som ingår i varje JForex API-nedladdning som en demonstration. Du kan hitta den fullständiga källkoden för denna strategi i srcsinglejartest i JForex API-paketet. Kom ihåg att den första gränssnittsmetoden som körs i början av strategin är onStart. OnStart-metoden för MAPlay återges nedan. Variablerna motor. indikatorer. och konsol är fält i klassen MAPlay. De är globala variabler inom klassen. Vilka linjer 42-44 gör är att spara IEngine. IIndicators. Och IConsole objekt för senare användning. Den sista raden av onStart, linje 45, är bara att skriva ut ett meddelande på din JForex-programkonsol för att meddela användaren att strategin har börjat. När onStart har slutförts bearbetar servern sannolikt att call on Tick om en marknadspark kommer fram. Om det inte är under marknads timmar, så finns det ingen kryssning och någon annan händelse kan hända istället för onTick. Tänk på metoderna som händelser snarare än en linjär process. Du programmerar din JForex-strategi enligt vad du vill göra med var och en av de sex IStrategy Interface-händelserna. För den här strategin beslutar programmeraren att genomföra sin strategi på fältnivå. Som sådan finns mycket av handelsalgoritmen i onTick for MAPlay. Observera att detta är ett designval, du kan använda onBar om du vill att din strategi ska behandlas i barnivån (eller du kan använda både onTick och onBar). Här är källkoden för onTick in MAPlay. I ett ögonblick kan du märka att variablerna ma0 och ma1 spelar en nyckelroll för att bestämma inställningen. Tips: För att omvända en strategi kan det vara lättare att arbeta bakåt från när beställningen är placerad, vilket görs av engine. submitOrder i det här fallet. ma0 och ma1 håller resultat från exponentiella glidande medelvärden (EMA). ma0 är det aktuella värdet. ma1 är föregående stapelvärde. Linjer 56-63 kontrollerar med IF-test (linjer 56 och 60) för att se om någon av variablerna innehåller ogiltiga data. Om uppgifterna är ogiltiga beräknas indikatorn och resten av onTick hoppas över med returräkningen på rad 62. Obs! Indikatorvärdena kan ibland vara ogiltiga (noll, negativ eller dubbel. NaN. Beroende på den specifika indikatorimplementeringen ) om det inte finns tillräckligt med data för att beräkna det eller ett fel inträffade, för exempel. EMA: erna hämtas i linjerna 57 och 59 med hjälp av IIndicators-objektet (som initialiserades i onStart). JForex Wiki ger en förklaring av dess användning. Observera att ma1 är en array som deklarerades i rad 38 med en storlek som motsvarar antalet tillgängliga JForex-instrument. I synnerhet används den med ett speciellt indexvärde som i ma1instrument. ordinal (). Med andra ord, det ber om den aktuella instrumentplatsen i ma1-arrayen. Det aktuella instrumentet är det som passeras in i metoden i rad 55. Vid nedtryckning av koden är en annan punkt av intresse 65, som visar användningen av instrument. getPipValue (). Linje 67 kontrollerar om nuvarande totalt antal positioner är noll. Om det är, vilket betyder inget öppet läge, fortsätter strategin att kontrollera inmatningssignalen för att komma in i en handel (linjer 68-76). PositionsTotal () är en anpassad metod som definieras i linjerna 84-92. Den använder en FOR-slinga för att cykla genom alla order som erhållits från engine. getOrders (instrument) När endera av de långa eller korta förhållandena, linjerna 68 och 72 är uppfyllda, lämnar strategin en order i rad 69 för en kort och linje 73 för en lång. Uppgifterna om att lämna in marknadsordningar beskrivs i JForex Wiki. När du stoppar den här strategin heter OnStop (linjerna 48--53). För denna strategi sluter programmeraren igenom alla order igen med hjälp av engine. getOrders () och stänger var och en av positionen med ett order. close () kommando i rad 50. Det är det för denna triviala strategi. Om det finns en poäng som du bör komma ihåg. Notera min användning av de många länkarna till JForex javadoc och JForex Wiki i hela det här inlägget. Du kommer sannolikt att hitta många av dina svar från dessa två källor. Om inte, är det alltid JForex Support Board. Nu när du har fått en uppfattning om hur MAPlay. java fungerar, är det dags att testa det. I nästa post i januari kommer vi att diskutera JForex Historical Tester och vad du ska titta på när du kör en strategi live. Vi tittade på fyra av de sex metoderna i IStrategy-gränssnittet i ett tidigare inlägg. De två sista metoderna, onTick och onBar, är där din strategi förbinder med marknadsdata. Endera eller båda av dessa metoder är där du lägger in din handelsalgoritm. Din strategi skulle då kunna bearbeta marknadsdata när de anländer en tickbar åt gången. Minns att IStrategy Interface är skelettet i din strategi. Och det IContext-objektet är hjärtat av din strategi. onTickonBar är chef för din strategi, som innehåller din handelsalgoritm, vilken är hjärnan. Här är metoden definition av onTick. Viktigt: onTick kallas för varje instrument som din JForex-plattform är ansluten till (instrumentlistan i din arbetsfält). Låt mig säga det igen, onTick kallas för varje instrument som din JForex-plattform är ansluten till. Standardpraxis är att filtrera bort ticks för instrument som du inte vill ha med ett enkelt IF-retur uttalande. Om (instrument myInstrument) returnera Faktiska fältdata skickas till din strategi med hjälp av ITick-objektet från parametern onTick-metoder. Ta en titt på ITick javadoc-posten för att se vad den erbjuder. onBar fungerar på liknande sätt som onTick. I vilken onBar kallas varje undertecknat instrument och period som är känd för JForex. På samma sätt måste du filtrera bort alla oönskade instrument och perioder, annars kommer det att förväntas resultat från din strategi. En annan sak att notera är att onBar ger både en IBar askBar och IBar bidBar, som representerar ask och bud barer. Fråga: Vad händer när två eller flera perioder överlappar varandra som i klockan 13:45 1, 5 och 15 minuter anländer alla samtidigt (för att inte tala om perioderna i sekunder också). Svar: Enligt Dukascopy Support i forumet kommer de i sträng ordning, till exempel (1min 1min 1min 1min 1min 5min 1min 1min 1min 1min 1min 1min 5min.) De kommer i cykler, där mindre perioder kommer först. JForex Support Forum När du programmerar din strategi med JForex kommer du utan tvekan att komma med egna frågor. Det bästa stället att fråga är på det officiella JForex Support Forum. Det här är den sista av de tre väsentliga JForex-resurserna som jag påpekade tidigare. Även om du inte har någon specifik fråga finns det exempelkoder, kodningsdiskussion och hundratals existerande QampA från andra JForex-utvecklare som publiceras i forumet. Diskussionen hittills har varit mycket hög nivå. För att visa dig vad du faktiskt kan göra i en IStrategy, kommer vi att dissekera en arbetsstrategi i nästa post. Och vad bättre att undersöka än den mest populära JForex-strategin för dem alla - MAPlay. java. Fortsätter från Del 1 i denna serie: Komma igång med att lära dig JForex programmering. Nu var redo att diskutera den verkliga saken. Du bygger JForex-strategier genom att använda IStrategy-gränssnittet (What is a Interface). I grund och botten är ett gränssnitt ett kodskelett med en uppsättning fördefinierade tomma metoder som du måste implementera dig själv. De sex standardmetoderna för IStrategy-gränssnittet är: Nedan följer en tom implementering av IStrategy Interface, även känd som en JForex-strategi. Denna kod kommer att kompilera böter i JForex och du kan även köra den. Men det gör ingenting alls eftersom det inte finns någon kod att köra i varje metod. Var och en av de sex metoderna kommer bara att ringas och avslutas omedelbart. Varje metod utlöses av en specifik händelse. Du kan noga gissa vad de är från deras namn. onStart (rad 5) Detta är den första metoden som heter när du kör din strategi. Det kommer att köra en gång och en gång i början av din strategi. Normalt gör du din initialisering här. Saken att notera för onStart finns i rad 5 i koden. Metods signaturen för onStart är Objektet i parametern och ges till dig i denna metod är ett IContext-objekt. Om IStrategy är skelettet, är IContext hjärtat av strategin. Titta på denna javadoc länk till IContext för att se vad detta objekt gör. Javadoc. Nu är det dags att introducera den andra av de tre grundläggande resurserna hos en JForex-programmerare. JForex Javadoc är den enklaste, aktuella API-dokumentationen som förklarar varje objekt och metoder för JForex API. Tänk på det som en referensmanual. Observera att även om det är heltäckande, är förklaringen mycket sparsom och eventuellt ofullständig. IContext är ett kärna JForex-objekt för åtkomst till många viktiga komponenter i JForex-systemet, såsom beställningsmotorn, diagram, konsol, indikatorer. Du får tanken. Det är viktigt Du vill vanligtvis behålla en lokal kopia av det eftersom det här är den enda gången (i onStart) att detta objekt skickas till dig i IStrategy. onStop (linje 26) Som namnet antyder kallas den här metoden när du skickar ett stoppkommando till din strategi. Du gör ditt program omslag, till exempel loggning och spolning data här. Inte mycket vanligt med den här. OnMessage (linje 18) Vi vet när OnStart och onStop kommer att ringas, onMessage är en asynkron metod genom att du inte vet exakt när den ska springa. Denna metod kallas när Dukascopy-servern skickar din strategi ett meddelande. Servern ringer till exempel påMessage för att meddela att din order har fyllts. Du tar emot och bearbetar serverns meddelande genom att komma åt det IMessage-objekt som skickats till dig. Viktigt: Det finns ingen garanti för att du kommer att få varje meddelande som skickas till din strategi från servern. Kanske är din strategiprocess igensatt. Eller kanske hade din internetanslutning en hicka. Om din strategi onMessage inte kallas av servern av någon anledning, kan servern inte bryr sig mindre och brukar inte kontrollera eller försöka igen. Så gör inte någonting kritiskt som att hantera dina beställningar i onMessage onAccount (rad 22) Denna metod kallas när din uppdatering av kontouppgifter är mottagen. Metoden ger åtkomst till IAccount-objektet. Som du använder för att få din kontoinformation. Säg om du har en öppen position, ändras din kontoupplysning på varje tick eftersom ditt eget kapital är kontant orealiserad vinstlösning. I så fall kallas onAccount varje 5 sekunder av servern högst för att undvika att översvämma din strategi. Viktigare: IAccount-objektet är inte direkt kopplat till ditt konto på servern. Det är bara en ögonblicksbild av ditt konto. Om du till exempel behåller en lokal kopia av ett IAccount-objekt. Gör lite handel för att ändra din balans. Fråga sedan samma IAccount för kontobalansinformation, du kommer inte se en förändring. Som sådan uppdatera alltid din lokala kopia av IAccount inom onAccount-metoden för att hålla din kontoinformation aktuell för din strategys användning. För att fortsätta onStart, onStop, onMessage och onAccount-metoderna är administrativa metoder för din strategi. De två sista metoderna som diskuteras väl, påTick och onBar, är där magiken händer i en strategi. Jag sparar bäst för senast i nästa inlägg. Det största problemet jag hade när jag lärde mig att programmera mina egna handelsstrategier i JForex är att hitta var man ska börja lära sig. Det fanns lite JForex dokumentation tillgänglig då och jag var tvungen att lära mig själv genom noggrann försök och fel med hjälp av Dukascopys tekniska support. Saker har säkert förändrats till det bättre som ett JForex-samhälle börjar spira och dokumentation för att det åtminstone är tillräckligt för att få någon att börja. Det här inlägget är det första av en serie snabba nybörjarguider för att lära sig JForex-programmering genom att lägga alla dessa resurser i en handledning. JForex är ett Java-verktyg JForex är egentligen inte ett programmeringsspråk. Det är ett applikationsprogrammeringsgränssnitt (API) för användning med det vanliga Java-programmeringsspråket. Som sådant är det första steget att lära sig att programmera i JForex att lära sig Java. Lyckligtvis är Java ett av de mest populära programmeringsspråk. Så det finns många resurser på och offline på webben för att lära dig Java-programmering. Några exempel på gratis online tutorials är: Java Tutorials - Detta är en officiell handledning från Java-utvecklaren själva. Högt rekommenderad. Nybörjare Java Tutorial - Mer inriktad på de absoluta nybörjare till programmering. Om du föredrar en bok skulle jag rekommendera Head First Java, 2nd Edition. Jag borstade upp på min Java från den här boken. Dont bo på Java för mycket, eftersom du bara behöver veta grunderna för att komma igång med JForex. Läs bara några kapitel för att förstå Java-syntaxen och fortsätt sedan. Du kan alltid referera till dem senare. Dykning i JForex JForex Wiki är en av de tre väsentliga resurserna för JForex-programmerare. Jag kommer att referera till några specifika sidor i Wiki i mycket av denna serie inlägg. Om du inte har gjort det redan, anmäl dig till ett DEMO-konto hos Dukascopy. Sedan startar du JForex-plattformen och följer instruktionerna på sidan Använda på JForex-wikisidan för att montera din första JForex-strategi. Hittills så bra Förhoppningsvis hoppas du kan förstå grundläggande Java-källkod och veta hur man startar, sammanställer och kör en JForex strategi. I nästa post i den här lärande JForex-serien studerar vi anatomin i en JForex-strategi. Forex trading Java API Java och gränssnitt för att stödja Forex-mäklare på ett lagligt och robust sätt. Tjänsteleverantörer använder den till. Bygg WEB-plattformar för Forex-handlare över olika mäklare. Design mobila Forex-applikationer. Ge olika Forex-konto kopiator kapacitet. Skapa avancerade WEBmobile gränssnitt till Mäklare-handelsservrarna. Genomför mycket skalbara distribuerade cloud trading applikationer. Individuella kan utveckla Java MTS med hjälp av deras favorit IDE (IntelliJ IDEA, MS VS2010, NetBeans, Eclipse etc). Aktivera flera handelskonton Skriv komplexa och välstrukturerade mekaniska handelssystem. Andra språk passar inte för Använd NJ4Xtrade-biblioteket för att hantera forexkonton. Du kan utveckla ett mekaniskt handelssystem i rent Java eller C programmeringsspråk, medan andra språk fortfarande är tillgängliga för att skapa anpassade indikatorer (om det behövs). Du kan också använda NJ4Xtrade-biblioteket för att behålla samtidiga anslutningar till flera av Forex-mäklare från en singel-multiplicerad nätverksfördelad Java-applikation (er), få ​​offerter, gör handel, ring standardkustomindikatorer etc. Felsökningsverktyg för vilket språk som helst är ovärderligt - NJ4Xtrade tillåter dig att Påskynda utvecklingen genom att upptäcka fel i din kod och eventuella fallgropar som kan hända. Personlig prisplan kräver att du endast licensierar Windows-maskiner som kör NJ4X Terminal Server (Obs: det är också möjligt att köra NJ4X TS under Linux WINE-miljöerna). Handel med olika datakällor analyserade. Basera dina handelsstrategier på. Fördjupad analys av realtidsgener av olika mäklarsdata källor (t ex DukasCopy, LMAX, TradingView). Tillförlitliga signalleverantörshändelser. Avancerad utvecklingsteknik (som LMAX disruptor). Gör dina applikationer snabbt snabbt Genom att tillämpa icke-blockeringsknäppor konstruerar processorer Utför självständiga uppgifter (positionsanalys, loggning, GUI-reflektion) parallellt Förenkling av övergripande programstruktur Genom att gå bort från en begränsad handelskontext för vissa Forex-plattformar, det vill säga flera order av Samma konto utförs parallellt.

No comments:

Post a Comment