Pronostiquez l'évolution du
CAC 40
entre ce vendredi et vendredi prochain
Entrez votre email et recevez gratuitement le consensus du
CAC 40 ce dimanche. Nos membres ont raison 75% du temps,
profitez-en! (AaZSysteme ne spamme pas et ne donne pas vos
emails).
Bonjour (et merci de vous prendre la tête avec mon cas désespéré ),
Dans mon système, construit sur des moments particuliers, je ne peux pas me servir du temps, et je ne peux pas savoir quand le break va avoir lieu, ni dans quel sens. En une minute il peut très bien y avoir un break dans un sens ou dans l'autre.
Je désire réellement dissocier deux choses. D'une part mes instructions easylanguage qui se lance toute les barres (dans mon cas en 1 mn), et qui gère mes entrées de trade, et d'autre part, la plate forme tradestation qui gère elle même en temps réel les sorties par les stops de protection et les objectifs de gain. Donc deux solutions se présentent à moi à mon avis :
- Soit j'ai moyen de savoir en tick par tick quel ordre a été exécuté, dans ce cas j'annule celui que je ne désire plus.
- Soit, et là si c'est possible, cela m'éviterait de longues heures de programmation, je souhaiterai non seulement programmé en easylanguage des OSO (par exemple si un ordre long est executé, un ordre limit (objectif de gain) et un ordre stop (stop de protection) se lanceraient automatiquement), mais aussi des OCO (le premier de l'ordre limit, ou du stop qui est touché dans l'exemple précédent annulerait automatiquement l'autre).
A nouveau tu n'as pas besoin. Les ordres en EasyLanguage ne sont valables qu'une barre et Tradestation NE PEUT PAS ENTRER 2 FOIS EN POSITION A MOINS QUE TU NE LUI SPECIFIES.
Donc si a la fin d'une barre tu precises en EasyLanguage d'acheter a seuil de declenchement (sur un palier donne) et de vendre a decouvert a seuil de declenchement egalement alors le premier ordre qui sera execute sur la barre suivante de 1min ne permettra pas a l'autre d'etre execute. Ca ressemble a du OCO non ? Pour les sorties tu lui precises If marketPosition = 1 Then ... Sell at MonNiveau next bar at market If marketPosition = -1 Then ... BuyToCover at MonNiveau next bar at market
De la meme facon le premier ordre qui s'execute entraine le passage a 0 de marketposition et donc l'ordre inverse est annule.
La seule raison du look inside bar dans ce cas est de permettre a Tradestation sur du backtest de savoir qui, de l'ordre Achat, ou Vente a decouvert sera execute en premier. Dans ce cas tu peux utiliser le Look inside Bar en ticks qui te limite a 90j d'historique.
Donc pour l'exemple si ton chandelier de 1min cloture a 1200 avec un plus haut a 1205 et un plus bas a 1195 et que tu veux rentrer long sur breakout de 1205 ou vente a decouvert sur franchissement (baissier) de 1195 tu ecris ce que j'ai mis plus haut soit
IF marketposition = 0 then begin
buy next bar at 1205 stop; sellshort next bar at 1195 stop;
end;
Si le marche franchit sur la barre suivante 1205 alors l'ordre d'achat est execute. Si la barre suivante franchit 1195 alors l'ordre de vente a decouvert est execute et si le chandelier japonais suivant a un plus haut au dessue de 1205 et un plus bas en dessous de 1195 alors tradestation evalue le look inside bar pour savoir si l'ordre d'achat ou de vente a decouvert aurait ete execute en 1er... Pour les stops tu mets
If marketposition= -1 then buyToCover next bar at 1210 stop; //(stop a 15pts)
If marketposition= 1 then Sell next bar at 1190 stop; //(stop a 15pts egalement)
et Tradestation gerera tout pour toi. Tu n'as pas besoin de regarder a chaque tick pour voir si c'est execute ou non...
Je pense qu'il y a peut etre une subtilité que je ne saisissais pas dans Tradestation, mais je voudrais etre bien sur d'avoir compris ce que vous me dites.
Pour les entrées :
marcd a écrit:
De la meme facon le premier ordre qui s'execute entraine le passage a 0 de marketposition et donc l'ordre inverse est annule.
La seule raison du look inside bar dans ce cas est de permettre a Tradestation sur du backtest de savoir qui, de l'ordre Achat, ou Vente a decouvert sera execute en premier. Dans ce cas tu peux utiliser le Look inside Bar en ticks qui te limite a 90j d'historique.
Donc pour l'exemple si ton chandelier de 1min cloture a 1200 avec un plus haut a 1205 et un plus bas a 1195 et que tu veux rentrer long sur breakout de 1205 ou vente a decouvert sur franchissement (baissier) de 1195 tu ecris ce que j'ai mis plus haut soit
IF marketposition = 0 then begin
buy next bar at 1205 stop;
sellshort next bar at 1195 stop;
end;
Si le marche franchit sur la barre suivante 1205 alors l'ordre d'achat est execute. Si la barre suivante franchit 1195 alors l'ordre de vente a decouvert est execute et si le chandelier japonais suivant a un plus haut au dessue de 1205 et un plus bas en dessous de 1195 alors tradestation evalue le look inside bar pour savoir si l'ordre d'achat ou de vente a decouvert aurait ete execute en 1er...
Est ce que cela signifie que si je pose ce stop d'achat et de vente à découvert, Tradestation rentrera au bon moment, n'importe ou dans la barre, et pas uniquement à chaque début de barre ? Tradestation évalue tout au long de la barre si le stop est franchi ou non si je comprends bien ?
Pour les sorties :
(Stop de protection)
marcd a écrit:
A nouveau tu n'as pas besoin. Les ordres en EasyLanguage ne sont valables qu'une barre et Tradestation NE PEUT PAS ENTRER 2 FOIS EN POSITION A MOINS QUE TU NE LUI SPECIFIES.
Donc si a la fin d'une barre tu precises en EasyLanguage d'acheter a seuil de declenchement (sur un palier donne) et de vendre a decouvert a seuil de declenchement egalement alors le premier ordre qui sera execute sur la barre suivante de 1min ne permettra pas a l'autre d'etre execute. Ca ressemble a du OCO non ?Pour les sorties tu lui precises If marketPosition = 1 Then ... Sell at MonNiveau next bar at marketIf marketPosition = -1 Then ... BuyToCover at MonNiveau next bar at market
Pour les stops tu mets
If marketposition= -1 thenbuyToCover next bar at 1210 stop; //(stop a 15pts)
If marketposition= 1 thenSell next bar at 1190 stop; //(stop a 15pts egalement)
et Tradestation gerera tout pour toi. Tu n'as pas besoin de regarder a chaque tick pour voir si c'est execute ou non...
La encore, j'ai du mal a comprendre comment Tradestation fait pour executer le stop au bon moment avec l'instruction Marketposition.
Comme avec l'entrée en position, Tradestation peut donc (si j'ai bien saisi) rentré n'importequand "dans la barre, dés le franchissement du prix", et non pas uniquement en début de barre. Dans une unité en minute, l'instruction marketposition est elle évalué une et une seule fois par barre, ou bien à n'importe quelle moment "dans" la barre quand si le prix du stop est franchi ?
Est ce que je peux utiliser, pour mon cas, les instructions Setstopcontract, setstoploss qui sont présenté sur votre site a l'adresse suivante : http://www.aazsysteme.com/logiciel-bourse/tradeStation/syste me-trading-4.htm
Pouvez vous me confirmez qu'avec ces instructions, Tradestation ne les prendrait pas en compte si nous ne sommes pas en position, et d'autre part, qu'il ne serait pas besoin de lui spécifier si je suis long ou short?
Et pour les sorties sur gain, puis je me servir de setprofittarget sur le meme principe ?
Enfin, et si tout ce qui est dit ici est bien confirmé, dois je écrire les Setstopcontract, setstoploss et setprofittarget en meme temps que l'instruction d'entrée, par exemple comme votre exemple:
IF marketposition = 0 then begin
buy next bar at 1205 stop;
sellshort next bar at 1195 stop;
Egalement dans les guides Tradestation il est detaille comment le moteur de backtest de Tradestation fonctionner et comment Tradestation / easylanguage determine si un ordre de trading valide sur une barre est execute ou non. Je te conseille de t'y referer
Sinon, oui Tradestation place les ordres en cloture de barre mais l'ordre est valide sur toute la duree de la barre suivante (que ce soit en day trading 1min, 10min, ... ou en swing trading 1 journee, 1semaine ou 1 tick) et ce quelque soit le symbole affiche sur ton graphe va verifier (Nasdaq, futures, ect...).
Heureusement que Tradestation fait cela sinon cela serait "longuet" a programmer comme tu as pu t'en rendre compte
Je cherche à savoir sur easylanguage comment avoir le nombre de trade gagnant ?
Je sais que pour avoir le nombre de trade (fini) total, c'est le mot totaltrades qu'il faut choisir, mais comment savoir le nombre gagnant ?
merci. Effectivement peut-etre utilise pour batir son systeme de trading ... meme si cela pourrait etre utilise pour faire du trade sur l'equity curve ce qui n'est -en general- pas une bonne idee.
et NumLoseTrades pour le contraire ou bien numTrades - numWinTrades ?
Je continue dans l'élaboration de mon programme, mais je me demandais s'il était possible d'appliquer mon système sur toutes les actions du Nasdaq 100 ?
En effet, pour l'instant, je me fais la main sur une action, AAPL que je télécharge après 18h sur Visual Chart 4, qui me permet d'avoir les historiques en tick par tick, sur environ 1 mois (pour le lookinside bar).
Comment puis je faire pour appliquer mon système sur toutes les valeurs du nasdaq 100 (après que j'ai télécharger tous les historiques de chaque action sur deux mois evidemment...), puis que le logiciel me sorte quelles sont les 5 actions sur lesquelles mon système est le plus performant ?
(j'avoue que de faire un rapport de performance sur chaque action, en le lançant à la main tous les jours, me découragerait...)
1) pourquoi utilises-tu Visual Chart si tu as Tradestation. As-tu Tradestation 2000i?
2) Tu ne peux pas pour le probleme des 100 actions sur tradestation. Tu ne peux appliquer un systeme de trading que sur 1 action a la fois. Je crains que tu ne sois oblige de le faire a la mimine ...
1/ j'utilise Visual chart pour télécharger les historiques, que je mets dans Tradestation 8(version pas officiel, hum...). Je veux tester le logiciel avant de l'acheter, ce qui est normal, car par exemple si je n'arrive pas à avoir exactement ce que je désire, je ne l'achèterai pas. Je trouve ça dommage qu'on ne puisse pas le tester avant en toute légalité, mais bon.
Après si j'ai ce que je désire, je n'aurais plus besoin de télécharger les historiques, et je m'abonnerai à tradestation.
2/ Je trouve cela dommage que l'on ne puisse pas appliquer à plusieurs actions d'un coup... Je vais devoir le faire à la main pour toutes les 100 actions, tous les jours ? N'y a t'il vraiment pas moyen de sélectionner par exemple dans une liste d'action, et qu'il nous sorte un tableau récapitulatif des performances de chaque actions (comme dans l'exemple de votre site, tout en bas de la page :
http://www.aazsysteme.com/logiciel-bourse/tradestation_old/s ysteme-trading-5.htm) ?
PS : Je crois que Amibroker semble pouvoir faire cela, avec le backtest sur Portfolio : est ce que quelqu'un connait et pourrait confirmer ?