Mise à jour le 7 décembre 2010: J'ai gagné quelques fois de plus dans ce concours, y compris une première place et une troisième place. Dukascopy m'a transporté à Genève en septembre pour une entrevue. Les résultats préliminaires du Dukascopy JForex Strategy Contest le mois dernier montrent que j'ai terminé avec une sixième place. C'est une victoire de 1 000 USD pour moi. C'est la deuxième fois que je gagne depuis avril. Comme d'habitude, j'ai accepté de divulguer ma stratégie afin que je puisse recevoir 100 du prix en argent. Vous trouverez le code source en bas de ce message. Je suis très reconnaissant à Dukascopy d'avoir offert cette opportunité. Ce concours m'a donné une incitation à apprendre leur API de négociation que j'ai prévu de toute façon. J'ai un compte de trading en direct et financé à Dukascopy qui n'a pas encore été touché. Quoi qu'il en soit, je vais expliquer ma stratégie comme la dernière fois. Celui-ci est une amélioration de mon canal de Keltner et la configuration de bougeoir comme je l'ai discuté précédemment. La dernière fois que j'ai eu 200 lignes de code. Cette fois, ses presque 500 lignes. La plupart des nouveaux codes sont pour la gestion de position. La configuration de base est similaire conceptuellement. Acheter sur retracement dans une tendance haussière, et vice versa à court. Voyant que ma stratégie est assez longue, je doute que je puisse l'expliquer entièrement dans un seul post. En tant que tel, je diviserai cette tâche en une série de futurs postes qui seront affichés ce mois d'août. (Mise à jour: Le premier post de la série est publié discuter de l'utilisation de plusieurs temps dans JForex.) Dans l'intervalle, voici le code source complet de ma stratégie. Ou, vous pouvez télécharger le fichier source ici directement via Dropbox. No tengo ni idea de programacin, cmo se que 1,2,3 no forman parte de la estrategia Te pongo el cdigo fuente: importation java. text. DecimalFormat import java. text. SimpleDateFormat import java. util. TimeZone import com. dukascopy. api. Import com. dukascopy. api. IEngine. OrderCommand importation com. dukascopy. api. indicators. IIndicator import java. math. BigDecimal import java. util. Calendar public class StruddleDistance implémente IStrategy privé IEngine moteur privé IConsole console privé IHistory historique privé Indicateurs indicateurs privés Int counter 0 Configurable (quotInstrumentquot) public Instrument instrument Instrument. EURUSD Configurable (quotLong order Offre sidequot) public OfferSide longOfferSide OfferSide. BID Configurable (quotShort order Offre sidequot) public OffreSide shortOfferSide OfferSide. BID Configurable (quotAmountquot) publique double quantité 0.02 Configurable (quotSlippagequot ) Public double slppage 10 Configurable (quotTake profit pipsquot) public int takeProfitPips 20 Configurable (quotStop perte dans pipsquot) public int stopLossPips 20 Configurable (quotOrder open distancequot) public double openDistance 10 Configurable (quotLong Stop order open sidequot) public Offre OffreSideLongOrd OfferSide. ASK Configurable (quotShort Stop order open sidequot) public Offre OffreSideShortOrd OfferSide. BID Configurable (quotBreak even (pips) quot) public double breakEven 0.5 Configurable (quotBreak even trigger (pips) quot) public double beTrig 3 Configurable (quotTrailing stop trigger (pips) quot ) Public double trailingStopTrigPips 4 Configurable (quotTrailing stop (pips) - ie (buystop - sellstop) 2quot) public double trailingStopPips 1 Configurable (quotOrder expiration time - minutesquot) public int expireTimeMin 30 Configurable (quotOrder expiration time - secondsquot) public int expireTimeSec 0 Configurable (QuotStart time - hours (24 heures) quot) public int hour Calendar. getInstance (TimeZone. getDefault ()). Get (Calendar. HOUROFDAY) Configurable (quotSart time - minutesquot) public int minute Calendar. getInstance (TimeZone. getDefault Get (Calendar. MINUTE) Configurable (quotSart time - secondsquot) public int second Calendar. getInstance (TimeZone. getDefault ()). Get (Calendar. SECOND) Configurable (quotReopen ordersquot) public boolean réouvrir true public boolean ouvert false private Long expireTime 0 privé boolean isStarted false privateSimpleDateFormat sdf new SimpleDateFormat (quotyyyy-MM-dd HH: mm: ssquot) setTimeZone (TimeZone. getTimeZone (quotGMTquot)) privé IOrder buyOrder private IOrder sellOrder privé Calendar startTime Override public void OnStart (contexte IContext) jrows JFException this. console context. getConsole () this. indicators context. getIndicators () this. history context. getHistory () this. engine context. getEngine () ITick tick history. getLastTick (instrument) submit if ( BuyOrder null ampamp sellOrder null ampamp (reouverture ouverte)) if (buyOrder null ampamp sellOrder null ampamp open) ouvert true buyOrder submitBuyStop (tick) sellOrder submitSellStop (tick) Calendrier cal Calendar. getInstance () cal. setTimeInMillis (tick. getTime ()) Cal. add (calendrier. MINUTE, expireTimeMin) cal. add (Calendar. SECOND, expireTimeSec) expireTime cal. getTimeInMillis () acheter quand longOfferSide tombe par trailingPips ITick tick history. getLastTick (instrument) startTime Calendar. getInstance (TimeZone. getDefault () ) StartTime. setTimeInMillis (tick. getTime ()) startTime. set (Calendar. HOUROFDAY, heure) startTime. set (Calendar. MINUTE, minute) startTime. set (Calendar. SECOND, second) if (startTimepareTo (Calendar. getInstance () ) Lt 0) startTime. add (Calendar. DATE, 1) Substituer public void onBar (instrument Instrument, Period period, IBar askBar, IBar bidBar) jrows JFException public void onTick (Instrument instrument, tick ITick) jrows JFException if (instrument this. ) If (startTime. getTimeInMillis () lt tick. getTime ()) isStarted true else retour ordre IOrder ordre null expiré if (0 expireTime ampamp expireTime lt tick. getTime ()) si (buyOrder null ampamp (buyOrder () IOrder. State. CREATED) buyOrder. getState ().) BuyOrder. close () buyOrder null expireTime 0 agd-divisas. blogspot. es Négociation réelle avec Dukascopy Bank SA Ao 1: 30,74 Ao 2: 12,97 Ao 3: 4,43 Actualizado a 231216 SEMANA 12 DE 52 Hola mscara, il probado con otras Estrategias y consigo ponerlo en Remote Run, Que es de Dukascopy, me fallo al compilarla, copi lo que me dijiste debajo de. This. engine context. getEngine () pero no funciona. Je peux vous aider Si vous pouvez faire pour que vous puissiez coger le par de divises que quiera tant mieux, je veux avoir plusieurs autres en même temps, et la façon dont est programmé l'Estrategia Pas de podra StopManager. java version 1.0 Copyright 2010 Quantisan Déplacez-vous au seuil de rentabilité quand équidistance à l'arrêt original perte de classe publique StopManager implémente IStrategy privé IEngine moteur privé IConsole console privé IContext contexte Configurable (quotLock-in Pips pour Breakevenquot) public int lockPip 3 Configurable (quotMove stop to Breakevenquot) public boolean moveBE vrai public void onStart (contexte IContext) jrows JFException this. engine context. getEngine () java. util. SetltInstrumentgt instruments new java. util. HashSetltInstrumentgt () instruments. add (instrument) context. setSubscribedInstruments (instruments, true ) This. console context. getConsole () this. context contexte public void onAccount (compte IAccount) jrows JFException public void onMessage (message d'IMessage) jrows JFException public void onStop () jrows JFException public void onTick (instrument de l'instrument, tick ITick) jrows JFException (Order. getState () IOrder. State. FILLED) boolean isLong double ouvert, stop, diff, newStop Label de chaîne order. getLabel () Graphique IChart isLong order. isLong () Open order. getOpenPrice () stop order. getStopLossPrice () diff ouvert - stop stop loss distance si (isLong) if (moveBE ampamp diff gt 0 ampamp tick. getBid () gt (open diff) Pips newStop open instrument. getPipValue () lockPip order. setStopLossPrice (newStop) console. getOut (). Println (étiquette quot: Arrêt déplacé au breakevenquot) diagramme this. context. getChart (instrument) chart. draw (label quotBEquot, IChart. Type. SIGNALUP, tick. getTime (), newStop) else Déplacez-vous au seuil de rentabilité si (moveBE ampamp diff lt 0 ampamp tick. getAsk () lt (diff)) le rendent breakeven trade lock en quelques pips newStop open - (instrument. getPipValue () Lock. Print) order. setStopLossPrice (newStop) console. getOut (). Println (label quot: Arrêt déplacé au breakevenquot) diagramme this. context. getChart (instrument) chart. draw (label quotBEquot, IChart. Type. SIGNALDOWN, cocher. GetTime (), newStop) public void onBar (instrument instrument, Période, IBar askBar, IBar bidBar) jrows JFException Adjuntos Variables Jstore ltima edicin par eurer el 28 Jul 2014 23:54, editado 6 veces en total. Agd-divisas. blogspot. es Trading réel avec Dukascopy Bank SA Ao 1: 30,74 Ao 2: 12,97 Ao 3: 4,43 actualizado a 231216 SEMANA 12 DE 52 StopManager. java version 1.0 Copyright 2010 Quantisan Déplacez-vous au seuil de rentabilité Lorsque l'équidistance à l'importation d'origine stop loss com. dukascopy. api. Import java. util. Public class StopManagerInstruments implémente IStrategy privé IEngine moteur privé IConsole console privé IContext contexte Configurable (quotInstrumentsquot) public SetltInstrumentgt eInstruments new HashSetltInstrumentgt (Instrument9193 Instrument. EURUSD, Instrument. EURGBP)) Configurable (quotLock-in Pips for Breakevenquot) public int LockPip 3 Configurable (quotMove stop to breakevenquot) boolean public moveBE true public void onStart (contexte IContext) jrows JFException this. engine context. getEngine () this. console context. getConsole () contexte this. context context. setSubscribedInstruments (eInstruments) nos subscribimos A los pares seleccionados. Public void onAccount (compte IAccount) jrows JFException public void onMessage (Message d'IMessage) jrows JFException public void onStop () jrows JFException public void onTick (Instrument, ITick tick) jrows JFException si (eInstruments. contains (instrument) (Order. getState () IOrder. State. FILLED) boolean isLong double ouvert, stop, diff, newStop Label de chaîne order. getLabel () Graphique IChart isLong order. isLong () open order. getOpenPrice () Stop order. getStopLossPrice () diff open - stop stop distance de perte si (isLong) if (moveBE ampamp diff gt 0 ampamp tick. getBid () gt (open diff)) fermer la serrure dans quelques pips newStop ouvrir l'instrument. getPipValue () lockPip order. setStopLossPrice (newStop) console. getOut (). Println (étiquette quot: Arrêt déplacé à breakevenquot) diagramme this. context. getChart (instrument) chart. draw (label quotBEquot, IChart. Type. SIGNALUP, tick. getTime (), newStop) else Déplacez-vous au seuil de rentabilité si (moveBE ampamp diff lt 0 ampamp tick. getAsk () lt (open diff)) le verrouillage de rentabilité dans quelques pips newStop ouvert - (instrument. getPipValue () lockPip) Order. setStopLossPrice (newStop) console. getOut (). Println (label quot: Arrêt déplacé au breakevenquot) diagramme this. context. getChart (instrument) chart. draw (label quotBEquot, IChart. Type. SIGNALDOWN, tick. getTime (), NewStop) fin if (eInstruments. contains (instrument)) public void onBar (instrument instrument, Période, IBar askBar, IBar bidBar) jrows JFException En el log aucune vente rien écrit. No s por qu no lo habr hecho pero creo que de todas formas no lo habra hecho como esperas. Si vous me permettez de le faire, je vous remercie. (Pour longs, qui est le cas). Calcula la différence entre le prix de l'Open et le StopLoss, dans ce cas, supposant que 101,99 est le StopLoss original que le pusiste à l'ordre sera (1) diff 102,09 - 101,99 0,1 Si esta diferencia es Positiva (par ser longs, supposé qui est seul pour une seule fois, et que l'on a posé en breakevent cette resta ser négative dans le cas longs) Que el Ouvrir les 0,1 précédents, modifier StopLoss. (2) 102 208 gt (102,09 0,1). (Même si les habra se sont complétés). Maintenant calcula, nouveau StopLoss tal que sea el Ouvrir les pips que le indicaste. En savoir plus (3) StopLoss 102,09 10Pips 102,19. (2) no s porque no habr cumplido la condicin pero de todas las formas, el pto (3) te habra puesto el StopLoss 10 pips pour plus de prix, Y ponerlo a 0 de breakevent. Pour reprendre avec d'autres mots, a ver si me explico. Parece que si vous voulez faire un breakevent quand il est possible de faire une demande pour l'ouverture de la liste des mots-clés (2). (3) del Ouvrir quand lleves ganados 30 pips (2).
No comments:
Post a Comment