Dopo aver studiato l'anatomia di una strategia JForex vuoto (Parte 1 e Parte 2), il suo tempo per sezionare uno funzionante. Maplay è la strategia che è incluso in ogni JForex API scaricare come una dimostrazione. È possibile trovare il codice sorgente completo di questa strategia nel srcsinglejartest nel pacchetto zippato JForex API. Ricordiamo che il metodo prima interfaccia che corre all'inizio della strategia è onStart. Il metodo onStart di maplay è riportato di seguito. Il motore variabili. indicatori. e la consolle sono i campi della classe maplay. Sono variabili globali all'interno della classe. Quali linee 42--44 fare è quello di salvare il IEngine. IIndicators. e IConsole oggetti per un uso successivo. L'ultima riga di onStart, la linea 45, è semplicemente quello di stampare un messaggio sulla tua console programma JForex per informare l'utente che la strategia è iniziata. Una volta onStart è terminata l'elaborazione, il server è in grado di mettere onTick se una zecca mercato arriva. Se la sua non durante le ore di mercato, quindi non c'è nessun segno di spunta e qualche altro evento potrebbe accadere invece di onTick. Pensate ai metodi come eventi piuttosto che un processo lineare. Si programma la vostra strategia JForex in base a ciò che si vuole fare con ciascuno dei sei eventi IStrategy Interface. Per questa particolare strategia, il programmatore decide di attuare la loro strategia a livello di zecca. Come tale, gran parte del algoritmo di negoziazione risiede in onTick per maplay. Si noti che questa è una scelta di progettazione, è possibile utilizzare onBar se si desidera che la strategia per elaborare a livello di bar (o si può utilizzare sia onTick e onBar). Ecco il codice sorgente per onTick in maplay. A colpo d'occhio, si può notare che le variabili MA0 e MA1 svolgono un ruolo chiave nel determinare la configurazione. Suggerimento: per decodificare una strategia, può essere più facile lavorare a ritroso dal momento in cui viene effettuato l'ordine, che è fatto da engine. submitOrder in questo caso. ma0 e MA1 tengono i risultati di medie mobili esponenziali (EMA). ma0 è il valore corrente. MA1 è il valore barre precedente. Linee 56--63 controllo con se i test (linee 56 e 60) per vedere se una delle variabili contenere i dati non validi. Se i dati non è valido, l'indicatore viene calcolato e il resto del onTick viene saltata con l'istruzione di ritorno sulla linea 62. Nota: I valori degli indicatori possono talvolta essere valido (zero, negativo o Double. NaN seconda della particolare implementazione dell'indicatore. ) se non vi sono dati sufficienti per calcolare o si è verificato un errore, per gli esempi. Gli EMA sono recuperati nelle linee 57 e 59 utilizzando i IIndicators oggetto (che è stato inizializzato in onStart). Il JForex Wiki fornisce una spiegazione del suo utilizzo. Si noti che MA1 è una matrice, che è stata dichiarata in linea 38 con una dimensione equivalente al numero di tutti gli strumenti JForex disponibili. In particolare, viene utilizzato con un valore speciale indice come in ma1instrument. ordinal (). In altre parole, si chiede la scanalatura strumenti attuali nella matrice MA1. Lo strumento corrente è quella che viene passato al metodo in linea 55. Scendendo il codice, un altro punto di interesse è la linea 65, che mostra l'uso di instrument. getPipValue (). Linea 67 verifica se il numero totale corrente di posizione è zero. Se lo è, il che significa posizione non aperto, quindi la strategia procede a controllare il segnale di entrata per entrare in un commercio (linee 68--76). positionsTotal () è un metodo personalizzato definito nelle linee 84--92. Esso utilizza un ciclo for per scorrere tutti gli ordini ottenuti da engine. getOrders (strumento) Una vota che della condizione lungo o corto, le linee 68 e 72, rispettivamente, è soddisfatto, la strategia sottopone un ordine in linea 69 per un breve e linea 73 per lungo. Le indicazioni di presentare ordini di mercato sono descritti nel JForex Wiki. Quando si smette di questa strategia, OnStop (linee 48--53) è chiamato. Per questa strategia, il programmatore ciclo in tutti gli ordini di nuovo utilizzando engine. getOrders () e chiude ogni della posizione con un comando order. close () in linea 50. Questo è per questa strategia banale. Se c'è un punto che si dovrebbe ricordare. Nota il mio uso dei molti collegamenti al javadoc JForex e JForex Wiki corso di questo post. Si rischia di trovare molti dei vostri risposte da queste due fonti. In caso contrario, c'è sempre la scheda di supporto JForex. Ora che hai avuto un'idea di come funziona MAPlay. java, il suo tempo per testarlo. Nel prossimo post nel mese di gennaio, si discuterà il JForex storico tester e cosa guardare per quando si esegue una strategia dal vivo. Abbiamo esaminato quattro dei sei metodi nel IStrategy di interfaccia in un post precedente. Gli ultimi due metodi, onTick e onBar, è dove la vostra strategia di connettersi con i dati di mercato. Uno dei due, o entrambi, di questi metodi è dove si mette il algoritmo di negoziazione in. La vostra strategia sarebbe quindi in grado di elaborare i dati di mercato man mano che arrivano uno tickbar alla volta. Ricordiamo che IStrategy Interface è lo scheletro della vostra strategia. E quell'oggetto IContext è il cuore della vostra strategia. onTickonBar è il capo della vostra strategia, che contiene l'algoritmo di trading, che è il cervello. Ecco la definizione del metodo di onTick. Importante: onTick viene chiamato per ogni strumento che la vostra piattaforma JForex è sottoscritto (la lista strumento nella tua casella di lavoro). Permettetemi di dire che ancora una volta, onTick viene chiamato per ogni strumento che la vostra piattaforma JForex è sottoscritto. La pratica standard è di filtrare le zecche per gli strumenti che non volete con una semplice dichiarazione IF-ritorno. se (strumento myInstrument) restituisce i dati tick effettivo viene passato alla vostra strategia utilizzando l'oggetto ITick dal parametro metodi onTick. Date un'occhiata all'ingresso javadoc ITick per vedere quello che offre. onBar funziona in modo simile a onTick. In quale onBar è chiamata per ogni strumento inscritto e il periodo noto per JForex. Allo stesso modo, si deve filtrare tutti gli strumenti e periodi indesiderati o risultati altrimenti non ci sarà da aspettarsi da vostra strategia. Un altro punto da notare è che onBar fornisce sia una IBar Askbar e IBar bidBar, che rappresentano le barre di chiedere e offerta. Domanda: Cosa succede quando due o più periodi si sovrappongono come in 13:45 1, 5, e 15-minuti bar sono tutti arrivano allo stesso tempo (per non parlare dei periodi in pochi secondi troppo). Risposta: Secondo Dukascopy supporto nel forum, sono disponibili in un ordine rigoroso, per esempio Essi sono disponibili in cicli, in cui i periodi più piccoli viene prima (1 min 1 min 1 min 1 min 1min 5min 1min 1min 1min 1min 1min 5min.). Assistenza JForex Come si programma la vostra strategia con JForex, è senza dubbio venire con domande di tua scelta. Il posto migliore da porsi è al Forum ufficiale di supporto JForex. Questa è l'ultima delle tre risorse essenziali JForex che ho accennato in precedenza. Anche se non avete qualsiasi domanda specifica, ci sono codici di esempio, la discussione di codifica, e centinaia di QampA esistenti da altri sviluppatori JForex postato nel forum. La discussione è stata finora molto elevato. Per mostrare ciò che si può effettivamente fare in caso di IStrategy, ci sarà sezionare una strategia di lavoro nel prossimo post. E che altro di meglio da esaminare che il più popolare strategia di JForex di tutti - MAPlay. java. Proseguendo da parte 1 di questa serie: Per iniziare l'apprendimento di programmazione JForex. ora erano pronti a discutere la cosa reale. Si costruisce strategie JForex utilizzando l'interfaccia IStrategy (Che cosa è un Interface). In sostanza, l'interfaccia è uno scheletro di codice con una serie di metodi vuoti predefiniti che il youll necessità di attuare da soli. I sei metodi standard della IStrategy Interface sono: Di seguito è un'implementazione vuota IStrategy Interface, noto anche come strategia JForex. Questo codice verrà compilato bene in JForex e si può anche funzionare. Ma si pretende molto fare nulla, perché non esiste un codice per l'esecuzione in ciascuno dei metodi. Ognuno dei sei metodi sarà solo chiamato e uscire immediatamente. Ogni del metodo è innescato da un evento specifico. Probabilmente si può indovinare quello che sono dal loro nome. onStart (linea 5) Questo è il primo metodo che viene chiamato quando si esegue la vostra strategia. Verrà eseguito una sola volta, all'inizio della vostra strategia. Normalmente fate la vostra inizializzazione qui. La cosa da notare per onStart è in linea 5 del codice. La firma del metodo di onStart è l'oggetto nel parametro e dato a voi in questo metodo è un oggetto IContext. Se IStrategy è lo scheletro, poi IContext è il cuore della strategia. Si prega di dare un'occhiata a questo link javadoc per IContext per vedere che cosa questo oggetto fa. Javadoc. Ora è un buon momento per introdurre il secondo dei tre risorse essenziali di un programmatore JForex. Il JForex Javadoc è il singolo documentazione delle API più up-to-date spiegare ogni singolo oggetto e metodi dell'API JForex. Pensate a come un manuale di riferimento. Si noti che, sebbene la sua completa, la maggior parte della spiegazione è molto scarsa e anche incompleta. IContext è un oggetto nucleo JForex accedere a molte importanti componenti del sistema JForex, quali motore ordinamento, grafici, console, indicatori. Si ottiene l'idea. E 'importante in genere si desidera mantenere una copia locale di esso in quanto questo è l'unica volta (in onStart) che questo oggetto verrà passato a voi in IStrategy. onStop (linea 26) Come suggerisce il nome, questo metodo viene chiamato una volta che si invia un comando di arresto per la vostra strategia. Voi fate il vostro programma di wrap-up come la registrazione e dati di lavaggio qui. Non molto fuori dal comune con questo. onMessage (linea 18) considerando sappiamo quando verranno chiamati onStart e onStop, onMessage è un metodo asincrono in quanto non si sa esattamente quando verrà eseguito. Questo metodo viene chiamato quando il server invia Dukascopy vostra strategia di un messaggio. Ad esempio, il server chiama onMessage per farvi sapere che l'ordine è stato riempito. È ricevere ed elaborare il messaggio del server accedendo l'oggetto IMessage che viene passato a voi. Importante: Non vi è alcuna garanzia che riceverete ogni messaggio inviato alla vostra strategia dal server. Forse il vostro processo strategico è intasato. O forse la tua connessione a Internet ha avuto un incidente di percorso. Se la strategia di onMessage non ottiene chiamato dal server per qualsiasi ragione, il server couldnt cura meno e di solito essere il controllo né di riprovare. Quindi non fare nulla critici come la gestione degli ordini in onMessageQ onAccount (linea 22) Questo metodo viene chiamato ogni volta che viene ricevuto l'aggiornamento informazioni relative all'account. Il metodo prevede l'accesso all'oggetto IAccount. che si usa per ottenere informazioni sul tuo conto. Dire se si dispone di una posizione aperta, le informazioni dell'account cambia su ogni tick perché il capitale è in contanti profitloss non realizzati. In tal caso, onAccount è chiamato ogni 5 secondi dal server al massimo per evitare di intasare la vostra strategia. Più Importante: L'oggetto IAccount non è collegata in diretta al tuo account nel server. Si tratta semplicemente di una fotografia istantanea del vostro conto. Ad esempio, se si mantiene una copia locale di un oggetto IAccount. Fare qualche trading per cambiare il vostro equilibrio. Poi fare la stessa IAccount per le informazioni saldo del conto, non si vedrà un cambiamento. Come tale, aggiornare sempre il copia locale del IAccount all'interno del metodo onAccount per mantenere le informazioni conto up-to-date per le Strategie di utilizzo. To be continued onStart, onStop, onMessage e metodi onAccount sono metodi amministrativi per la vostra strategia. Gli ultimi due metodi che ben discutono, onTick e onBar, è dove la magia accade in una strategia. Sto salvando il meglio per ultimo nel prossimo post. Il problema più grande che ho avuto quando si impara a programmare le mie strategie di trading in JForex sta trovando dove cominciare apprendimento. Ci sono stati pochi documentazione JForex disponibile al momento e ho dovuto insegnare a me stesso attraverso tentativi ed errori scrupoloso con l'aiuto di supporto tecnico Dukascopys. Le cose sono certamente cambiate per il meglio come comunità JForex sta cominciando a germogliare e la documentazione perché è almeno sufficiente per ottenere chiunque iniziato. Questo post è il primo di una serie di Guida pratica ai principianti di imparare la programmazione JForex mettendo tutte queste risorse in un tutorial. JForex è uno strumento di Java JForex non è in realtà un linguaggio di programmazione. Si tratta di un'interfaccia di programmazione delle applicazioni (API) per l'utilizzo con il linguaggio di programmazione Java standard. Come tale, il primo passo per imparare a programmare in JForex è imparare Java. Fortunatamente, Java è uno dei linguaggi di programmazione più popolari. Quindi therere abbondanza di risorse e fuori dal web per saperne di programmazione Java. Alcuni esempi di tutorial online gratuiti sono: I tutorial Java - Si tratta di un tutorial ufficiale da parte dello sviluppatore di Java se stessi. Altamente raccomandato. I principianti Java Tutorial - più adatto per i principianti assoluti alla programmazione. Se si preferisce un libro, mi sento di raccomandare Head First Java, 2nd Edition. Ho spazzolato sulla mia Java da questo libro. Dont soffermarsi su Java troppo però come avete solo bisogno di conoscere le basi per iniziare con JForex. Basta leggere alcuni capitoli per capire la sintassi di Java e poi andare avanti. Si può sempre fare riferimento a loro più tardi. Tuffarsi JForex La JForex Wiki è uno dei tre risorse essenziali per i programmatori JForex. Sarò riferisco ad alcune pagine specifiche del Wiki in gran parte di questa serie di post. Se havent già fatto, iscrizione per un account demo a Dukascopy. Quindi lanciare la piattaforma JForex e seguire le istruzioni per l'uso in pagina wiki JForex per assemblare la vostra prima strategia JForex Fin qui tutto bene A questo punto, spero che tu possa capire il codice sorgente Java di base e saper startopen, compilare ed eseguire un strategia JForex. Nel prossimo post di questa serie di apprendimento JForex, studieremo l'anatomia di una strategia JForex. JForex Plateforme et Java API Membre trs actif 961 messaggi Inscrit le. 1 ottobre 2011 Genere. m Trading. Rel 86.902 Messaggio le 22 nov 2013 17:27 Bonjour tous, Je vous propose douvrir nell'opinione Un sur La Plateforme JForex, afin dy partager nos connaissances sur le sujet. JForex est plateforme de commerciale au meme titre que MetaTrader, dapres ce que jai pu trouver elle est propos par les mediatore suivant: Dukascopy Bank SA. Dukascopy UE. FXDD. Alpari-USA. Chemeximbank Russia. Ava FX Giappone. VPE Bank AG. Halifax. Min Bank Russia. Forex FS. EverestMarkets, KaKaKuFx Giappone. En ce qui concerne me je nai saggio que chez Dukascopy. Pourquoi utiliser JForex plutot que Metatrader Tout dabord La Plateforme est bien faite et completo, donc Quon ai di ou lintention de programmatore elle non est apprezzabile. Mais pour moi qui tuta developpeur JAVA, Le Gros Avantage CEST justement Lapi java qui permet de ses propres sviluppatore di script, EA ou indicateurs. Lautre gros avantage est de pouvoir programmatore dans des Editeurs fait versare una, tel que Eclipse ou Netbeans qui sont deux plateforme extrmement complte et entirement gratuite, jutilise Dailleurs quotidiennement Eclipse de manire professionnel. Il existe une autre Plateforme dont la versione Pro (payante) un rputation une excellente. Il Sagit IntelliJ IDEA. Vu Quil ne sagit pas du sujet de ce postale, ceux qui voudrait Apprendre le JAVA devrait pouvoir trouver énormément de risorse sur le net, le site du ZrO fait generalement de tres bon tutoriel, Voici le lien vers celui sur JAVA: Hormis les tecnica considration tel que la programmazione orientare oggetti, JEE et la moltitudine de possibilit quoffre JAVA, lavantage non ngligeable qui vient immdiatement un Lesprit concernant java CEST un langage qui tourne aussi bien sur Windows, Linux ou Mac. Vous connaissez certainement ProRealTime qui est un logiciel fait en JAVA, ce qui vous montre bien letendu des possibilit quoffre ce langage en plus Detre Multi Piattaforma Voici vers un lien La Plateforme JForex de Dukascopy: dukascopyswissfrenchforexdealstationc1JForex Un compte DMO se cr it 2 minuti et nengage rien , donc Si vous etes curieux, ya pas de raisons de ne pas essayer. Les liens si indispenssable su souhaite coder en java, sont le wiki de Dukascopy qui est tres complet: dukascopywiki Et la javadoc de Lapi JForex: dukascopyclientjavadoc Pour ceux qui aime avoir des esempi, il suffit de se rendre sur la pagina du concours de commercio automatis mensuel de Dukascopy. par exemple voici le classement du mois dernier: dukascopystrategycontestactioncontestResults La on peut cliquer sur nimporte Quel pseudo, par exemple Le Premier (tant qua faire) et tlcharger sa strategia. Voila donc del codice de lexpert Advisor qui un gagn Le concours du mois doctobre 2013: Je marrete la pour le attimo, mais je reviendrais manifesto sur ce sujet, en attendant nhsitez pas un participer duna maniere ou dune autre. trs Membre Actif 961 messaggi Inscrit LE. 1 ottobre 2011 Genere. m Trading. Rel 87038 Messaggio Le 26 Nov 2013 12:13 Dans JForex versare ouvrir lediteur de strategia Il suffit de faire Outils gt Editeur stratgies Lediteur Souvré alors avec le modele duna strategie: strategia public class implementa IStrategy Cest la première ligne, Cest la dichiarazione di classe, par defaut elle sappelle strategia, on peut lui donner un autre nom, il Faudra juste sassurer que le nom du fichier sieri Le même avec lextension. java quotimplements IStrategyquot signifie juste que la classe que vous vous appretez ecrire rispettare le contrat IStrategy, en gros ca veut dire que classe notre aura le fonctionnement attendu par JForex, si Lune des fonctions est manquante la compilazione ne passera pas motore privato IEngine console privato IConsole storia privata IHistory contesto IContext privato indicatori IIndicators private privato IUserInterface UserInterface Ce Bloque est la dichiarazione des Attributi de notre strategia, ils sont pas obligatoire, mais ils sont Utile. IEngine est la qui se carica des passaggi dordre IConsole est la Classe ici Permet Décrire dans la console JForex IHistory est la Classe ici Gere lhistorique des Donnes des cours IContext, est la classe centrale, CEST Le contesto dexecution IIndicator est la classe qui comme son nom lindique proporre les subacquei indicateurs de la Plateforme IUserInterface est la classe qui modelise linterface de la Plateforme public void onAccount (conto IAccount) getta JFException onAccount est appel modifica chaque des Donnes du compte, par exemple una modifica chaque de lequity, en gros un segno di spunta chaque posizione lorsquune est ouverte. En parametre lobjet conto modelise le compte et permet dacceder un toutes les Donnes du compte. onMessage public void (messaggio IMessage) getta JFException Cette Methode est appel un chaque fois que le serveur un messaggio un inviato una strategico notre, par exemple chaque fois quun ordre est valido par le serveur du Borker, la convalida nous segnale est par la ricezione dun messaggio public void onStop () genera JFException Methode appel une seul et fois unico, Lorsque la stratgie sarrte vuoto onTick (strumento a strumento, ITick tick) pubblica getta JFException Methode appel chaque nouveau tick vuoto onBar (strumento pubblico Instrument, periodo, IBar Askbar, IBar bidBar) getta JFException Methode appel chaque nouvelle Bar quelque soit sa priode, modifi le 2013/11/26 11:14:11 par ShipIt
Comments
Post a Comment