Metode Detail submitOrder instuur orde. Teruggekeer orde is in IOrder. State. CREATED status en sal opgedateer word om IOrder. State. OPENED status na bediener bevestiging. Parameters: etiket - die gebruiker gedefinieerde identifiseerder vir die einde. Etiket moet uniek vir die gegewe rekening onder die huidige bestellings wees. Toegelaat karakters: letters, syfers en. Etiket moet op die meeste 256 karakters. instrument - orderCommand - tipe voorgelê orde bedrag - bedrag in miljoene vir die orde prys - voorkeur prys vir orde. As nul is, dan laaste markprys sigbaar op die JForex gebruik sal word. Prys moet deelbaar wees deur 0,1 pitte of orde sal verwerp word. In die geval van die mark bestellings, verkeerde prys (erger as die huidige mark) sal verander word om die huidige prys en glip glip - glip. Die waarde van glip beteken volgende: as negatiewe dan verstek waarde van 5 pitte gebruik as Double. isNaN (glip) waar dan geen glip andersins gebruik, glip af in pitte, moet jy slaag 1, nie 0,0001 stopLossPrice - prys van die stop verlies. Prys moet deelbaar wees deur 0,1 pitte of orde sal takeProfitPrice verwerp - prys van die neem wins te maak. Prys moet deelbaar wees deur 0,1 pitte of orde sal verwerp goodTillTime - hoe lank orde moet leef as dit nie uitgevoer word. Slegs indien 0, dan orderCommand moet nie nie IEngine. OrderCommand. BUY of IEngine. OrderCommand. SELL mark orde. kommentaar - kommentaar wat ten einde opbrengs sal gered word: nuwe orde byvoorbeeld in IOrder. State. CREATED staat Gooi: JFException - as etiket is nie geldig of reeds bestaan, as goodTillTime 0 en orderCommand nie TENDERUITNODIGING / aanbod, indien bedrag minder as is minimum toegelaat, as sommige van die verlangde parameters is nul submitOrder instuur orde. Teruggekeer orde is in IOrder. State. CREATED status en sal opgedateer word om IOrder. State. OPENED status na bediener bevestiging Parameters: etiket - die gebruiker gedefinieerde identifiseerder vir die einde. Etiket moet uniek vir die gegewe rekening onder die huidige bestellings wees. Toegelaat karakters: letters, syfers en. Etiket moet op die meeste 256 karakters. instrument - orderCommand - tipe voorgelê orde bedrag - bedrag in miljoene vir die orde prys - voorkeur prys vir orde. As nul is, dan laaste markprys sigbaar op die JForex gebruik sal word. Prys moet deelbaar wees deur 0,1 pitte of orde sal verwerp word. In die geval van die mark bestellings, verkeerde prys (erger as die huidige mark) sal verander word om die huidige prys en glip glip - glip. Die waarde van glip beteken volgende: as negatiewe dan verstek waarde van 5 pitte gebruik as Double. isNaN (glip) waar dan geen glip andersins gebruik, glip af in pitte, moet jy slaag 1, nie 0,0001 stopLossPrice - prys van die stop verlies. Prys moet deelbaar wees deur 0,1 pitte of orde sal takeProfitPrice verwerp - prys van die neem wins te maak. Prys moet deelbaar wees deur 0,1 pitte of orde sal verwerp goodTillTime - hoe lank orde moet leef as dit nie uitgevoer word. Slegs indien 0, dan orderCommand moet nie nie IEngine. OrderCommand. BUY of IEngine. OrderCommand. SELL mark orde. Opbrengste: nuwe orde byvoorbeeld in IOrder. State. CREATED staat Gooi: JFException - as etiket is nie geldig of reeds bestaan, as goodTillTime 0 en orderCommand nie TENDERUITNODIGING / aanbod, indien bedrag minder as die minimum toegelaat is, as 'n paar van die verlangde parameters is van nul submitOrder instuur orde. Teruggekeer orde is in IOrder. State. CREATED status en sal opgedateer word om IOrder. State. OPENED status na bediener bevestiging Parameters: etiket - die gebruiker gedefinieerde identifiseerder vir die einde. Etiket moet uniek vir die gegewe rekening onder die huidige bestellings wees. Toegelaat karakters: letters, syfers en. Etiket moet op die meeste 256 karakters. instrument - orderCommand - tipe voorgelê orde bedrag - bedrag in miljoene vir die orde prys - voorkeur prys vir orde. As nul is, dan laaste markprys sigbaar op die JForex gebruik sal word. Prys moet deelbaar wees deur 0,1 pitte of orde sal verwerp word. In die geval van die mark bestellings, verkeerde prys (erger as die huidige mark) sal verander word om die huidige prys en glip glip - glip. Die waarde van glip beteken volgende: as negatiewe dan verstek waarde van 5 pitte gebruik as Double. isNaN (glip) waar dan geen glip andersins gebruik, glip af in pitte, moet jy slaag 1, nie 0,0001 stopLossPrice - prys van die stop verlies. Prys moet deelbaar wees deur 0,1 pitte of orde sal takeProfitPrice verwerp - prys van die neem wins te maak. Prys moet deelbaar wees deur 0,1 pitte of orde sal Opbrengste word verwerp: nuwe orde byvoorbeeld in IOrder. State. CREATED staat Gooi: JFException - as etiket is nie geldig of reeds bestaan, indien bedrag minder as die minimum toegelaat is, as 'n paar van die vereiste parameters is nul submitOrder instuur orde. Teruggekeer orde is in IOrder. State. CREATED status en sal opgedateer word om IOrder. State. OPENED status na bediener bevestiging Parameters: etiket - die gebruiker gedefinieerde identifiseerder vir die einde. Etiket moet uniek vir die gegewe rekening onder die huidige bestellings wees. Toegelaat karakters: letters, syfers en. Etiket moet op die meeste 256 karakters. instrument - orderCommand - tipe voorgelê orde bedrag - bedrag in miljoene vir die orde prys - voorkeur prys vir orde. As nul is, dan laaste markprys sigbaar op die JForex gebruik sal word. Prys moet deelbaar wees deur 0,1 pitte of orde sal verwerp word. In die geval van die mark bestellings, verkeerde prys (erger as die huidige mark) sal verander word om die huidige prys en glip glip - glip. Die waarde van glip beteken volgende: as negatiewe dan verstek waarde van 5 pitte gebruik as Double. isNaN (glip) waar dan geen glip andersins gebruik, glip af in pitte, moet jy slaag 1, nie 0,0001 Opbrengste: nuwe orde byvoorbeeld in IOrder. State. CREATED staat Gooi: JFException - as etiket is nie geldig of reeds bestaan, indien bedrag minder as die minimum toegelaat is, as 'n paar van die verlangde parameters is nul submitOrder instuur orde. Teruggekeer orde is in IOrder. State. CREATED status en sal opgedateer word om IOrder. State. OPENED status na bediener bevestiging. Nota: verstek waarde van 5 pitte glip gebruik. Om persoonlike glip, of glip afskakel spesifiseer glad, gebruik asseblief uitgebreide submitOrder (.) Metodes. Parameters: etiket - die gebruiker gedefinieerde identifiseerder vir die einde. Etiket moet uniek vir die gegewe rekening onder die huidige bestellings wees. Toegelaat karakters: letters, syfers en. Etiket moet op die meeste 256 karakters. instrument - orderCommand - tipe voorgelê orde bedrag - bedrag in miljoene vir die orde prys - voorkeur prys vir orde. As nul is, dan laaste markprys sigbaar op die JForex gebruik sal word. Prys moet deelbaar wees deur 0,1 pitte of orde sal verwerp word. In die geval van die mark bestellings, verkeerde prys (erger as die huidige mark) sal verander word om die huidige prys en glip Opbrengste: nuwe orde byvoorbeeld in IOrder. State. CREATED staat Gooi: JFException - as etiket is nie geldig of reeds bestaan, indien bedrag is minder as die minimum toegelaat, as sommige van die verlangde parameters is nul Sien ook: submitOrder (String, instrument, OrderCommand, dubbel, dubbel, dubbel). submitOrder (String, instrument, OrderCommand, dubbel, dubbel, dubbel, dubbel, dubbel). submitOrder (String, instrument, OrderCommand, dubbel, dubbel, dubbel, dubbel, dubbel, lang). submitOrder (String, instrument, OrderCommand, dubbel, dubbel, dubbel, dubbel, dubbel, 'n lang, String) submitOrder instuur orde. Teruggekeer orde is in IOrder. State. CREATED status en sal opgedateer word om IOrder. State. OPENED status na bediener bevestiging. Nota: verstek waarde van 5 pitte glip gebruik. Om persoonlike glip, of glip afskakel spesifiseer glad, gebruik asseblief uitgebreide submitOrder (.) Metodes. Parameters: etiket - die gebruiker gedefinieerde identifiseerder vir die einde. Etiket moet uniek vir die gegewe rekening onder die huidige bestellings wees. Toegelaat karakters: letters, syfers en. Etiket moet op die meeste 256 karakters. instrument - orderCommand - tipe voorgelê orde. Slegs IEngine. OrderCommand. BUY en IEngine. OrderCommand. SELL toegelaat in hierdie metode bedrag - bedrag in miljoene vir die einde Opbrengste: nuwe orde byvoorbeeld in IOrder. State. CREATED staat Gooi: JFException - as etiket is nie geldig of reeds bestaan, indien bedrag minder as die minimum toegelaat, as sommige van die verlangde parameters is nul of orderCommand nie koop of verkoop Sien ook: submitOrder (String, instrument, OrderCommand, dubbel, dubbel, dubbel). submitOrder (String, instrument, OrderCommand, dubbel, dubbel, dubbel, dubbel, dubbel). submitOrder (String, instrument, OrderCommand, dubbel, dubbel, dubbel, dubbel, dubbel, lang). submitOrder (String, instrument, OrderCommand, dubbel, dubbel, dubbel, dubbel, dubbel, 'n lang, String) getOrder Returns bevel deur etiket, of nul indien geen einde is gevind getOrderById Parameters: orderId - bestellings ID Opbrengste: orde of nul. getOrdersHaving bestudeer die anatomie van 'n leë JForex strategie (Deel 1 en Deel 2), sy tyd om 'n werkende een dissekteer. MAPlay is die strategie wat deel uitmaak van elke JForex API aflaai as 'n demonstrasie. Jy kan die volledige bronkode van hierdie strategie in / src / singlejartest / in die JForex API zipped pakket te vind. Onthou dat die eerste Interface metode wat loop aan die begin van die strategie is onStart. Die onStart metode van MAPlay word hieronder weergegee. Die veranderlikes enjin. aanwysers. en konsole is velde van die MAPlay klas. Hulle is globale veranderlikes binne die klas. Wat lyne 42--44 doen, is om die IEngine red. IIndicators. en IConsole voorwerpe vir latere gebruik. Die laaste reël van onStart, lyn 45, is bloot om 'n boodskap te druk op jou JForex program konsole aan die gebruiker dat die strategie begin stel. Sodra onStart klaar verwerking, die bediener is geneig om te bel onTick as 'n mark bosluis kom. As sy nie gedurende mark ure, dan Theres geen bosluis en 'n paar ander gebeurtenis kan gebeur in plaas van onTick. Dink aan die metodes soos gebeure, eerder as 'n lineêre proses. Jy program jou JForex strategie volgens wat jy wil doen met elk van die ses IStrategy Interface gebeurtenis. Vir hierdie spesifieke strategie, die programmeerder besluit om hul strategie aan die bosluis vlak te implementeer. As sodanig, die grootste deel van die handel algoritme woon in onTick vir MAPlay. Let daarop dat hierdie is 'n ontwerp keuse, kan jy gebruik onBar as jy wil hê dat jou strategie te verwerk op die bar vlak (of jy kan beide onTick en onBar gebruik). Hier is die bronkode vir onTick in MAPlay. By 'n kort, kan jy sien dat die veranderlikes ma0 en Ma1 speel 'n belangrike rol in die bepaling van die opstel. Wenk: Om reverse engineering 'n strategie, kan dit makliker om agteruit te werk uit wanneer die bestelling geplaas word, wat word gedoen deur engine. submitOrder in hierdie geval wees. ma0 en Ma1 hou resultate van eksponensiële bewegende gemiddeldes (EMA). ma0 is die huidige waarde. Ma1 is die vorige bars waarde. Lyne 56--63 tjek met behulp INDIEN toetse (lyne 56 en 60) om te sien of enige van die veranderlikes hou ongeldig data. As die data is ongeldig, is die aanduiding bereken en die res van die onTick oorgeslaan met die terugkeer verklaring lyn 62. Nota: aanwyser waardes kan soms ongeldig (nul, negatiewe, of Double. NaN afhangende van die spesifieke aanwyser implementering. ) As daar nie genoeg data om dit te bereken of 'n fout, vir voorbeelde. Van die EMAS is vergesog in lyne 57 en 59 met behulp van die IIndicators n voorwerp (wat geïnisialiseer in onStart). Die JForex Wiki bied 'n verduideliking van die gebruik daarvan. Let daarop dat Ma1 is 'n skikking, wat in lyn 38 met 'n grootte gelyk aan die getal van alle beskikbare JForex instrumente verklaar. In die besonder, is dit gebruik word met 'n spesiale indeks waarde soos in ma1instrument. ordinal (). Met ander woorde, is dit vra vir die huidige instrumente gleuf in die Ma1 skikking. Die huidige instrument is die een wat in die metode geslaag in lyn 55. afbeweeg die kode, 'n ander punt van belang is lyn 65, wat die gebruik van instrument. getPipValue (). Line 67 tjeks indien die huidige totale getal posisie is nul. As dit is, wat beteken dat geen oop posisie, dan is die strategie voort om die inskrywing sein na 'n handelsmerk (lyne 68--76) betree kyk. positionsTotal () is 'n persoonlike metode gedefinieer in lyne 84--92. Dit maak gebruik van 'n FOR-lus te ry deur al die inligting wat uit engine. getOrders (instrument) bestellings Sodra een van die lang of kort toestand, lyne 68 en 72, onderskeidelik, voldoen word, die strategie lê 'n bevel in lyne 69 vir 'n kort en lyn 73 na 'n lang. Die besonderhede van die indiening van die mark bestellings word beskryf in die JForex Wiki. Wanneer jy hierdie strategie te stop, is onStop (lyne 48--53) genoem. Om hierdie strategie, die programmeerder lusse deur al die bestellings weer met behulp van engine. getOrders () en sluit elk van die posisie met 'n order. close () bevel in lyn 50. Dit is dit vir hierdie triviale strategie. As daar een punt wat jy moet onthou. Let my gebruik van die vele skakels na die JForex javadoc en JForex Wiki regdeur hierdie post. Jy is geneig om baie van jou antwoorde uit die twee bronne te vind. Indien nie, Theres altyd die JForex Support Board. Nou dat youve het 'n idee van hoe MAPlay. java werk, sy tyd om dit te toets. In die volgende pos in Januarie sal ons die JForex Historiese Tester en wat bespreek om te kyk vir wanneer die bestuur van 'n strategie live. Ons kyk na vier van die ses metodes in die IStrategy Interface in 'n vorige post. Die laaste twee metodes, onTick en onBar, is waar jou strategie aan te sluit met die mark data. Óf een, of albei, van hierdie metodes is waar jy jou handel algoritme in. Jou strategie sal dan in staat wees om die mark data te verwerk soos dit kom een blok / bar op 'n slag. Onthou dat IStrategy Interface is die geraamte van jou strategie. En dit IContext voorwerp is die hart van jou strategie. onTick / onBar is die hoof van jou strategie, wat jou handel algoritme, wat is die brein bevat. onTick Heres die metode definisie van onTick. Belangrik: onTick genoem vir elke instrument wat jou JForex platform is ingeskryf by (die lys instrument in jou werkspasie boks). Laat my sê dat weer onTick genoem vir elke instrument wat jou JForex platform is ingeskryf is. Die standaard praktyk is om uit te filtreer bosluise vir instrumente wat jy nie wil met 'n eenvoudige AS-opbrengs verklaring. As (instrument myInstrument) terugkeer Werklike bosluis data oorgedra word na jou strategie met behulp van die ITick voorwerp van die metodes parameter onTick. Neem 'n blik op die ITick javadoc inskrywing om te sien wat dit bied. onBar onBar werk in 'n soortgelyke wyse as onTick. In watter onBar genoem vir elke referenties instrument en tydperk bekend te JForex. Net so, jy het om uit te filtreer al die ongewenste instrumente en tydperke of anders sal daar verwag word resultate van jou strategie. Nog 'n punt om daarop te let is dat onBar bied beide 'n IBar askBar en IBar bidBar, wat die vra en bid bars. Vraag: Wat gebeur wanneer twee of meer periodes oorvleuel soos in 13:45 1, 5 en 15-minute bars almal wat by die dieselfde tyd (nie die tydperke in sekondes te noem). Antwoord: Volgens Dukascopy Ondersteuning in die forum, Hulle kom in 'n streng bevel, byvoorbeeld Hulle kom in siklusse, waar kleiner periodes eerste kom (1min 1min 1min 1min 1min 5min 1min 1min 1min 1min 1min 5min.). JForex Support Forum As jy jou strategie met JForex program, jy sal ongetwyfeld kom met vrae van jou eie. Die beste plek om te vra, is by die amptelike JForex Support Forum. Dit is die laaste van die drie noodsaaklike hulpbronne JForex dat ek verwys na vroeër. Selfs as jy dit nie enige spesifieke vraag, is daar monster kodes, kodering bespreking, en honderde bestaande QampA van ander JForex ontwikkelaars gepos word in die forum. Opsomming Die bespreking tot dusver 'n baie hoë vlak is. Om jou wat jy eintlik kan doen in 'n IStrategy wys, sal ons 'n werkende strategie in die volgende post dissekteer. En wat anders beter om te ondersoek as die gewildste JForex strategie van hulle almal - MAPlay. java. Voortgesette op uit Deel 1 van hierdie reeks: Aan die begin leer JForex programmering. nou gereed om die ware jakob te bespreek. Jy bou JForex strategieë deur die gebruik van die IStrategy Interface (Wat is 'n koppelvlak). Kortom, 'n koppelvlak is 'n kode geraamte met 'n stel van vooraf gedefinieerde leë metodes wat jy sal nodig het om jouself te implementeer. Die ses standaard metodes van die IStrategy Interface is: Hier is 'n leë IStrategy Interface implementering, ook bekend as 'n JForex strategie. Hierdie kode sal goed saam te stel in JForex en jy kan selfs voer dit uit. Maar dit nie die geval iets te doen op alle want daar is geen kode uitgevoer word in elk van die metodes. Elk van die ses metodes sal net genoem word en uitgang onmiddellik. Elkeen van die metode word veroorsaak deur 'n spesifieke gebeurtenis. Jy kan seker raai wat hulle is uit hul naam. onStart (reël 5) Dit is die eerste metode wat genoem word wanneer jy jou strategie uit te voer. Dit sal keer en slegs een keer uitgevoer word aan die begin van jou strategie. Normaalweg jy jou inisialisering hier. Die ding om daarop te let vir onStart is in lyn 5 van die kode. Die metode ondertekening van onStart is die voorwerp in die parameter en aan jou gegee in hierdie metode is 'n IContext voorwerp. As IStrategy is die geraamte, dan IContext is die hart van die strategie. Neem asseblief 'n blik op hierdie javadoc skakel na IContext om te sien wat hierdie voorwerp doen. Javadoc. Nou is 'n goeie tyd om die tweede van die drie noodsaaklike hulpbronne van 'n JForex programmeerder stel. Die JForex Javadoc is die enkele mees up-to-date API dokumentasie verduidelik elke voorwerp en metodes van die JForex API. Dink aan dit as 'n verwysing handleiding. Let daarop dat hoewel sy omvattende, die meeste van die verklaring is baie yl en moontlik onvolledig. IContext is 'n kern JForex voorwerp te bekom baie belangrike komponente van die JForex stelsel, soos die bestel enjin, kaarte, konsole, aanwysers. Jy kry die idee. Dit is belangrik dat jy wil tipies na 'n plaaslike kopie daarvan hou, want dit is die enigste keer (in onStart) dat hierdie voorwerp aan jou deurgegee sal word in IStrategy. onStop (lyn 26) Soos die naam suggereer, hierdie metode genoem word wanneer jy 'n stop opdrag stuur om jou strategie. Jy doen jou program wrap-up soos meld en spoel data hier. Nie veel uit die gewone met hierdie een. onMessage (lyn 18) AANGESIEN ons weet wanneer onStart en onStop sal genoem word, onMessage is 'n asinchrone metode in die sin dat jy dit nie weet presies wanneer dit sal loop. Hierdie metode staan bekend as die Dukascopy bediener stuur jou strategie 'n boodskap. Byvoorbeeld, die bediener oproepe onMessage om jou te laat weet dat jou bestelling is gevul. Jy ontvang en verwerk die bediener boodskap deur toegang tot die iMessage voorwerp wat aan jou oorgedra word. Belangrik: Daar is geen waarborg dat jy elke boodskap aan jou strategie gestuur van die bediener ontvang. Miskien is jou strategie proses is verstop. Of miskien het jou internet konneksie n hik. As jou strategie onMessage nie die geval kry genoem deur die bediener vir watter rede ook al, die bediener kon nie sorg minder en gewoond wees nagaan of weer probeer. So moenie iets krities soos die bestuur van jou bestellings in onMessage onAccount (lyn 22) Hierdie metode staan bekend as wanneer jou rekening inligting update ontvang nie. Die metode bied toegang tot die IAccount voorwerp. wat jy gebruik om jou rekening inligting te kry. Sê as jy 'n oop posisie, jou rekening inligting verander op elke tik, want jou aandele is kontant ongerealiseerde wins / verlies. In daardie geval, is onAccount genoem elke 5 sekondes deur die bediener by die meeste om te verhoed dat die oorstromings jou strategie. Meer belangrik: Die IAccount voorwerp nie live gekoppel aan jou rekening in die bediener. Dit is bloot 'n momentopname van jou rekening. Byvoorbeeld, as jy 'n plaaslike kopie van 'n IAccount voorwerp hou. Doen 'n bietjie handel om jou balans te verander. Vra dan dieselfde IAccount vir rekeningsaldo inligting, sal jy nie sien 'n verandering. As sodanig, altyd jou plaaslike kopie van IAccount werk binne die onAccount metode om jou rekening inligting up-to-date vir jou strategys gebruik. Word vervolg onStart, onStop, onMessage, en onAccount metodes is administratiewe metodes vir jou strategie. Die laaste twee metodes wat goed bespreek, onTick en onBar, is waar die magic gebeur in 'n strategie. Ek spaar die beste vir laaste in die volgende post. Die grootste probleem wat ek gehad het toe leer om my eie handel strategieë in JForex program is om waar te leer begin. Daar was min JForex dokumentasie beskikbaar by die tyd en ek moes myself leer deur middel van deurdagte verhoor en fout met die hulp van Dukascopys tegniese ondersteuning. Dinge het beslis ten goede verander as 'n JForex gemeenskap is besig om te ontkiem en dokumentasie want dit is ten minste voldoende iemand begin om te kry. Hierdie pos is die eerste van 'n reeks van vinnige beginners gids tot leer JForex ontwikkeling deur om al hierdie hulpbronne in 'n handleiding. JForex is 'n Java program JForex is eintlik nie 'n programmeertaal. Dit is 'n aansoek-koppelvlak (API) vir gebruik met die standaard Java-programmeertaal. As sodanig, die eerste stap om te leer om die program in JForex is om te leer Java. Gelukkig, Java is een van die gewildste programmeertale. So therere baie hulpbronne op en af van die web te Java-programmeertaal te leer. 'N Paar voorbeelde van gratis aanlyn tutoriale is: Die Java Tutoriale - Dit is 'n amptelike handleiding van die ontwikkelaar van Java hulself. Sterk aanbeveel. Beginners Java handleiding - Meer gerat vir die absolute beginners tot programmering. Indien u verkies om 'n boek, sou ek kop eerste Java, 2de Uitgawe beveel. Ek gesmeer op my Java uit hierdie boek. Moenie woon op Java te veel al as jy net nodig het om die basiese beginsels ken om te begin met JForex. Lees net 'n paar hoofstukke om die Java syntax verstaan en beweeg dan op. Jy kan altyd later terug te verwys na hulle. Duik in JForex Die JForex Wiki is een van die drie noodsaaklike hulpbronne vir JForex programmeerders. Ek sal verwys na 'n paar spesifieke bladsye van die Wiki in die grootste deel van hierdie reeks van poste. As jy dit nog havent gedoen, aanteken vir 'n demo rekening by Dukascopy. stapel te stuur dan die JForex platform en volg die instruksies op die gebruik in JForex wiki bladsy by jou eerste JForex strategie Opsomming vergader So ver so goed By hierdie punt, ek hoop jy kan basiese Java bronkode verstaan en weet hoe om te begin / oop, stel, en hardloop 'n JForex strategie. In die volgende pos in hierdie leer JForex reeks, sal ons die anatomie van 'n JForex strategie. Having bestudeer die anatomie van 'n leë JForex strategie (Deel 1 en Deel 2) bestudeer, is dit tyd om 'n werkende een dissekteer. MAPlay is die strategie wat deel uitmaak van elke JForex API aflaai as 'n demonstrasie. Jy kan die volledige bronkode van hierdie strategie in / src / singlejartest / in die JForex API zipped pakket te vind. Onthou dat die eerste Interface metode wat loop aan die begin van die strategie is onStart. Die onStart metode van MAPlay word hieronder weergegee. Die veranderlikes enjin. aanwysers. en konsole is velde van die MAPlay klas. Hulle is globale veranderlikes binne die klas. Wat lyne 42--44 doen, is om die IEngine red. IIndicators. en IConsole voorwerpe vir latere gebruik. Die laaste reël van onStart, lyn 45, is bloot om 'n boodskap te druk op jou JForex program konsole aan die gebruiker dat die strategie begin stel. Sodra onStart klaar verwerking, die bediener is geneig om te bel onTick as 'n mark bosluis kom. As sy nie gedurende mark ure, dan Theres geen bosluis en 'n paar ander gebeurtenis kan gebeur in plaas van onTick. Dink aan die metodes soos gebeure, eerder as 'n lineêre proses. Jy program jou JForex strategie volgens wat jy wil doen met elk van die ses IStrategy Interface gebeurtenis. Vir hierdie spesifieke strategie, die programmeerder besluit om hul strategie aan die bosluis vlak te implementeer. As sodanig, die grootste deel van die handel algoritme woon in onTick vir MAPlay. Let daarop dat hierdie is 'n ontwerp keuse, kan jy gebruik onBar as jy wil hê dat jou strategie te verwerk op die bar vlak (of jy kan beide onTick en onBar gebruik). Hier is die bronkode vir onTick in MAPlay. By 'n kort, kan jy sien dat die veranderlikes ma0 en Ma1 speel 'n belangrike rol in die bepaling van die opstel. Wenk: Om reverse engineering 'n strategie, kan dit makliker om agteruit te werk uit wanneer die bestelling geplaas word, wat word gedoen deur engine. submitOrder in hierdie geval wees. ma0 en Ma1 hou resultate van eksponensiële bewegende gemiddeldes (EMA). ma0 is die huidige waarde. Ma1 is die vorige bars waarde. Lyne 56--63 tjek met behulp INDIEN toetse (lyne 56 en 60) om te sien of enige van die veranderlikes hou ongeldig data. As die data is ongeldig, is die aanduiding bereken en die res van die onTick oorgeslaan met die terugkeer verklaring lyn 62. Nota: aanwyser waardes kan soms ongeldig (nul, negatiewe, of Double. NaN afhangende van die spesifieke aanwyser implementering. ) As daar nie genoeg data om dit te bereken of 'n fout, vir voorbeelde. Van die EMAS is vergesog in lyne 57 en 59 met behulp van die IIndicators n voorwerp (wat geïnisialiseer in onStart). Die JForex Wiki bied 'n verduideliking van die gebruik daarvan. Let daarop dat Ma1 is 'n skikking, wat in lyn 38 met 'n grootte gelyk aan die getal van alle beskikbare JForex instrumente verklaar. In die besonder, is dit gebruik word met 'n spesiale indeks waarde soos in ma1instrument. ordinal (). Met ander woorde, is dit vra vir die huidige instrumente gleuf in die Ma1 skikking. Die huidige instrument is die een wat in die metode geslaag in lyn 55. afbeweeg die kode, 'n ander punt van belang is lyn 65, wat die gebruik van instrument. getPipValue (). Line 67 tjeks indien die huidige totale getal posisie is nul. As dit is, wat beteken dat geen oop posisie, dan is die strategie voort om die inskrywing sein na 'n handelsmerk (lyne 68--76) betree kyk. positionsTotal () is 'n persoonlike metode gedefinieer in lyne 84--92. Dit maak gebruik van 'n FOR-lus te ry deur al die inligting wat uit engine. getOrders (instrument) bestellings Sodra een van die lang of kort toestand, lyne 68 en 72, onderskeidelik, voldoen word, die strategie lê 'n bevel in lyne 69 vir 'n kort en lyn 73 na 'n lang. Die besonderhede van die indiening van die mark bestellings word beskryf in die JForex Wiki. Wanneer jy hierdie strategie te stop, is onStop (lyne 48--53) genoem. Om hierdie strategie, die programmeerder lusse deur al die bestellings weer met behulp van engine. getOrders () en sluit elk van die posisie met 'n order. close () bevel in lyn 50. Dit is dit vir hierdie triviale strategie. As daar een punt wat jy moet onthou. Let my gebruik van die vele skakels na die JForex javadoc en JForex Wiki regdeur hierdie post. Jy is geneig om baie van jou antwoorde uit die twee bronne te vind. Indien nie, Theres altyd die JForex Support Board. Nou dat youve het 'n idee van hoe MAPlay. java werk, sy tyd om dit te toets. In die volgende pos in Januarie sal ons die JForex Historiese Tester en wat bespreek om te kyk vir wanneer die bestuur van 'n strategie live.
No comments:
Post a Comment