ProRealTime
Pour discuter sur l’interface de ProRealTime Software, nos configurations graphiques...
Répondre • Page 1 sur 1

Backtest: buy1>sell1 ; buy2>sell2

par Raiko » 03 mars 2015 20:17

Bonsoir,

Je fais mes premiers essaies "backtest".
J'ose espèrer qu'il est possible d'associer un ordre d'achat avec un ordre de vente et donc de conditionner la vente à un type d'achat. Ainsi, si "LongOnMarket" pour achat1 et que signal vente2 se produit, il n'y a pas de vente car il n'y a pas eu de signal d'achat2 précédemment.
Encore une fois j'ai besoin de votre lumière pour guider mes pas.
J'ai essayé la condition imbriquée sauvagement commme à mon habitude sans succés :D .
:merci:

Re: Backtest: buy1>sell1 ; buy2>sell2

par koub » 03 mars 2015 20:23

Plop Raiko, si j'ai bien compris ce que tu souhaites faire, tu veux avoir la possibilité de lancer plusieurs trades, hedging?? il faut que tu valides le paramètre CumulateOrder au début de ton code:

Code : #

DEFPARAM CumulateOrders = True
Par défaut, tu ne lances qu'un trade, donc si tu cherches à éviter de nouveaux trades lorsqu'un est en cours, ça doit fonctionner d'origine...

Soit plus clair...

?

Re: Backtest: buy1>sell1 ; buy2>sell2

par Raiko » 03 mars 2015 21:17

Salut Koub!

J'avais deja activé le cumul et ca marche.
Je prends un exemple détaillé.

ordre achat1=CCI>0 THEN
BUY 2 SHARES AT MARKET
ordre achat2=RSI>30 THEN
BUY 2 SHARES AT MARKET

ordre vente1= cci>50 THEN
SELL 2 SHARES AT MARKET
ordre vente2 = RSI>70 THEN
SELL 2 SHARES AT MARKET

Dans ce cas, si "LongOnMarket" avec une seul position et que le signal de vente2 se produit ensuite, alors la position est vendu. Je veux qu'elle soit vendu uniquement si le signal d'achat était le nuléro 2. Donc lier une condition d'achat à une condition de vente.

J'ai essayé deux formes différentes:

Code : #

IF A1 THEN
BUY 2 SHARES  AT MARKET
ELSIF V1  THEN
SELL  2 SHARES AT MARKET
ENDIF
//2

IF  A2 THEN
BUY 2 SHARES  AT MARKET
ENDIF
IF V2 THEN
SELL  2 SHARES AT MARKET
ENDIF

Re: Backtest: buy1>sell1 ; buy2>sell2

par koub » 03 mars 2015 21:34

hummm... ONCE?

Code : #

ONCE ACHAT1 = 0
ONCE ACHAT2 = 0

IF A1 THEN
BUY 2 SHARES  AT MARKET
ACHAT1 = 1
ACHAT2 = 0
ELSIF V1  THEN
SELL  2 SHARES AT MARKET
ENDIF
//2

IF  A2 THEN
BUY 2 SHARES  AT MARKET
ACHAT1 = 0
ACHAT2 = 1
ENDIF
IF V2 AND ACHAT2=1 THEN
SELL  2 SHARES AT MARKET
ENDIF
?

Re: Backtest: buy1>sell1 ; buy2>sell2

par Raiko » 03 mars 2015 23:37

Encore quelques modifs à faire sur ce code. J'ai besoin que achat et vente puissent se produire plusieurs fois (a chaque fois que je ne suis pas en position sur ce signal pour acheter et lorsque je suis en postotoon pour vendre au signal correspondant).
Faut-il donc bien enlever la fonction "once"?
Ajouter ACHAT1 = 1 apres "buy market" me semble pertinent alors je teste des codes à taton à partir de la base que tu m'as donné. C'est sur la bonne voie. ;)

Re: Backtest: buy1>sell1 ; buy2>sell2

par Raiko » 03 mars 2015 23:42

Mon "ordre vente2 " n'est plus pris en compte...

Re: Backtest: buy1>sell1 ; buy2>sell2

par Raiko » 03 mars 2015 23:44

Raiko a écrit :Mon "ordre vente2 " n'est plus pris en compte...
J'ai tester ca:

Code : #

IF  A AND NOT LongOnMarket THEN
BUY 2 SHARES  AT MARKET
ACHAT1 = 1
ACHAT1 = 0
ELSIF  B  AND ACHAT1=1 THEN
SELL  2 SHARES AT MARKET
ENDIF
//2

IF  C THEN
BUY 2 SHARES  AT MARKET
ACHAT2 = 0
ACHAT2 = 1
ELSIF D AND ACHAT2=1 THEN
SELL  2 SHARES AT MARKET
ENDIF

Re: Backtest: buy1>sell1 ; buy2>sell2

par Raiko » 04 mars 2015 00:10

Celui-ci semble fonctionner, youpiiii haha. Coup de chance ou ca parait logique?

Code : #

ONCE ACHAT1 = 0
ONCE ACHAT2 = 0

IF  A THEN
BUY 2 SHARES  AT MARKET
ACHAT1 = 1

ELSIF  B  AND ACHAT1=1 THEN
SELL  2 SHARES AT MARKET
ACHAT1 = 0
ENDIF
//2

IF  C THEN
BUY 2 SHARES  AT MARKET
ACHAT2 = 1

ELSIF D AND ACHAT2=1 THEN
SELL  2 SHARES AT MARKET
ACHAT2 = 0
ENDIF

Re: Backtest: buy1>sell1 ; buy2>sell2

par koub » 04 mars 2015 06:27

:bravo:

je dirai que ça parait logique, on a rarement de la chance en programmation... si tu regardes le code qui ne fonctionnait pas, les variables de tes conditions: 2 x ACHAT1 puis 2 x ACHAT2...
------------------------------------------
IF A AND NOT LongOnMarket THEN
BUY 2 SHARES AT MARKET
ACHAT1 = 1
ACHAT1 = 0

------------------------------------------
IF C THEN
BUY 2 SHARES AT MARKET
ACHAT2 = 0
ACHAT2 = 1

------------------------------------------

+, koub. ;)

Sujets similaires
Pro Backtest
par VinceMan » 17 juil. 2012 14:30 (4 Réponses)
backtest PRT?
Fichier(s) joint(s) par Djobydjoba » 05 avr. 2013 09:26 (11 Réponses)
Backtest et Excel
par Greg31600 » 18 avr. 2013 01:26 (4 Réponses)
code PRT > RSBoll/Seuil backtest
par newworld » 16 juin 2013 17:57 (4 Réponses)
ProRealTime backtest : appel à témoin
par falex » 17 août 2013 16:19 (1 Réponses)
Backtest Prorealtime
par Fredo » 04 oct. 2013 16:34 (5 Réponses)
Backtest : Pour ou contre les optimisations
Fichier(s) joint(s) par teg54 » 23 avr. 2014 15:00 (21 Réponses)
Idées d'améliorations PRT backtest
par takapoto » 29 juil. 2014 07:26 (13 Réponses)
comportement différent pro-Order / backtest pour même code
Fichier(s) joint(s) par Ernesto » 15 août 2014 16:28 (5 Réponses)
Backtest prometeur
Fichier(s) joint(s) par Tomm » 11 sept. 2014 20:12 (32 Réponses)