ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Re: Bug ou pas bug telle est la question.

par Doudidoudou » 24 avr. 2018 08:43

Bon,
J'ai eu un déclic au réveil... remplacement d'un AND par un OR est mon stop garanti en over fonctionne.

Nouveau code:
-------------------------------------
DEFPARAM CumulateOrders = true

heureouv = 090000
heureclot = 173000

condvalind2 = CALL "condvalind2"

IF condvalind2=1 AND time >= heureouv AND time <= heureclot THEN
SELLSHORT 1 CONTRACTS AT MARKET
endif

IF onmarket AND time >= heureouv AND time <= heureclot THEN
SET STOP %loss 0
SET STOP %TRAILING 1
endif

IF onmarket AND (time < heureouv OR time > heureclot) THEN
SET STOP %TRAILING 0
SET STOP %loss 1
ENDIF
--------------------------------------------


Le problème du stop étant résolu, que me conseilles-tu pour le "CALL"?

Après on passera au pyramidage... :P

Re: Bug ou pas bug telle est la question.

par Toto le Héros » 24 avr. 2018 09:12

Bonjour,
L'instruction call fonctionne parfaitement et elle permet d'alléger le programme et d'accélérer les calculs du robot. Je la recommande.
Dans ton cas qui plus est l'indicateur ne retourne qu'une seule valeur.
Dans un cas multiple, call se code ainsi :
ignored, indicator1, ignored = call "NOM DE L INDICATEUR" // tu appelles ici la 2ème valeur renvoyée par l'indicateur
Dans ton cas çà doit faire :
indicator1 = call "NOM DE L INDICATEUR" // copier/coller du nom de l'indicateur pour être sûr de la "casse".

Pyramidage : ambitieux... On pourra en reparler.
A+

Re: Bug ou pas bug telle est la question.

par Doudidoudou » 24 avr. 2018 09:33

Merci beaucoup!
J'avais justement hier soir un indicateur avec valeurs multiples:
-ma valeur biaire + le close de la veille
J'ai retourné les deux valeurs sur un graph pour vérifier les prises de position mais après je n'étais pas arrivé à extraire les valeurs de manière individuelle pour faire fonctionner mon code. Je teste donc ça ce soir...

Re: Bug ou pas bug telle est la question.

par Doudidoudou » 25 avr. 2018 00:43

Bon... j'avais rédigé un message de trois kilomètres mais le fait d'avoir mis mon code pour l'indicateur ci-dessous ma fait passer pour un robot = suppression du message.
GRRR!
Nouveau Document Microsoft Office Word.jpg
rose=over
blanc=heure de cotation du CAC
Noir=cours
Vert=condition des -1% sur clôture veille
trait vertical=prise de position

Merci pour ton explication sur le CALL... C'est trop cool de ne plus devoir avoir un indicateur pour analyser les prises de position et un indicateur pour le code. :merci:

Du coup je te demandais de jeter un coup d’œil sur la rédaction mais on verra ça plus tard... Je suis HS!

Une dernière chose: Est-ce que tu connaîtrais un manuel ou tuto un peu plus poussé que le PDF de prorealtime?

Et encore merci!
Seuls les membres inscrits peuvent voir les fichiers.
L'inscription au forum prend moins de 30 secondes.

Re: Bug ou pas bug telle est la question.

par Toto le Héros » 25 avr. 2018 08:28

Salut Doudidoudou,
Content de voir que çà fonctionne. Le backtest de prt est très efficace, et le langage de programmation très abordable. Seuls bémols en-cours de résolution : l'impossibilité du x-tick, mais surtout l'impossibilité du multi time frame.
Les tutoriels du site prorealcode sont bien faits. Mieux que la doc ? Pas sûr.
Au final le + important reste de garder à l'esprit :
- qu'il te faut toujours savoir exactement ce que tu veux coder,
- que les conditions seront vérifiées à chaque clôture de Bougie et pas ailleurs
(- que les ordres STOP et LIMITE n'ont une durée de vie que d'une Bougie, il faut donc faire en sorte que le code les repasse si pas exécutés : çà te sera utile si tu cherches à programmer du pyramidage...)
Bonne chance.

Re: Bug ou pas bug telle est la question.

par Doudidoudou » 25 avr. 2018 18:27

Nouveau jour, nouveau soucis, code différent.

Avant d'aborder le pyramidage, j'ai voulu tester différentes fermetures de position en fonction de différents facteurs.
Ex: dans le code j'ai une stratégie de sortie si je suis en journée et une autre pour les overs. Pas de problème, ca marche.

Aujourd’hui j'ai voulu tester des sorties différentes sur un autre code et là impossible...

le code simplifié en UT 10min sur france 40:

Code : #

DEFPARAM CumulateOrders = false

moy300 = average[300]

IF  close[1] crosses under moy300  THEN
SELLSHORT 1 CONTRACTS AT MARKET
set stop ptrailing 25
endif
J'obtiens ceci:
1.jpg
Jusque là tout vas bien...

Si je rajoute une condition: fermer la position si on repasse au dessus de la moyenne... Mon stop suiveur ne fonctionne plus!

le code donne:

Code : #

DEFPARAM CumulateOrders = false

moy300 = average[300]

IF  close[1] crosses under moy300  THEN
SELLSHORT 1 CONTRACTS AT MARKET
set stop ptrailing 25
endif

IF onmarket AND close > moy300 THEN
set stop ptrailing 0
exitshort 1 CONTRACTS AT MARKET
endif
Et voila:
2.jpg
Mes Stops suiveurs ont disparu... J'ai esayé deux milles solution mais rien...

Existe t'il une solution?
Seuls les membres inscrits peuvent voir les fichiers.
L'inscription au forum prend moins de 30 secondes.

Re: Bug ou pas bug telle est la question.

par Toto le Héros » 26 avr. 2018 09:05

Bonjour,
Je ne suis pas sûr de comprendre et je n'ai pas testé le code.
Mais à le lire, çà semble logique que ton trailing stop n'agisse jamais. Ton EXITSHORT s'applique immédiatement si close>moy300 (ta condition Traling Stop à breakeven n'est jamais enclenchée puisque tu EXITSHORT la ligne suivante).
Peut-être as-tu oublié une condition additionnelle qui fait que si close>moy300 et que... alors TrailingStop à breakeven et sinon EXITSHORT. Non ?

Re: Bug ou pas bug telle est la question.

par Doudidoudou » 26 avr. 2018 10:05

Toto :"Ton EXITSHORT s'applique immédiatement si close>moy300 (ta condition Traling Stop à breakeven n'est jamais enclenchée puisque tu EXITSHORT la ligne suivante)."

L'exitshort fonctionne bien puisque je voulais qu'il me protège si close>moy300
par contre le traillingstop devrait agir tant que close<moy300. Non?


Grosso modo, sur ce petit bout de code j'attendais:

1) si le cours descend en dessous de la moyenne alors ouverture de position short
1) si le cours reste en dessous de la moyenne je souhaite être en stop suiveur.
1) Si par malheur le cours remonte jusqu’à la moyenne alors je ferme tout.

J'aimerais une solution "propre" sans appel à un indicateur mais je patauge...

Re: Bug ou pas bug telle est la question.

par Toto le Héros » 26 avr. 2018 10:33

Ok, je comprends le principe.
Peut-être les 25 points nécessaires (en clôture 10') au lancement du trailing stop ne sont jamais ou rarement atteints ?
Essaie avec une valeur + faible dans un premier temps.

Tu peux supprimer la ligne TrailingStop 0 avant la condition EXITSHORT. Elle ne sert à rien.

Re: Bug ou pas bug telle est la question.

par Doudidoudou » 26 avr. 2018 10:50

J'ai justement choisi 25 pts dans l'exemple car le trailingstop peut l’atteindre
Sur l'avant dernière image on peu voir les losanges du déclenchement du trailingstop.

J'ai l'impression que le code doit trancher entre les deux modes de fermeture et qu'il considère l'exit comme prioritaire même si close est encore inférieur à la moyenne.

Sujets similaires
Pourquoi une telle hausse du nasdaq ?
par lepierot » 30 juil. 2020 22:59 (7 Réponses)
Bug?
par Benoist Rousseau » 13 sept. 2011 11:39 (12 Réponses)
Bug IG market - iPhone ?
par Benoist Rousseau » 30 sept. 2011 11:07 (3 Réponses)
bug Demo IG Market?
par Fatah » 27 févr. 2012 08:03 (3 Réponses)
Bug Prorealtime avec IG MArkets et Dax ?
par DéBé » 27 févr. 2012 10:03 (55 Réponses)
Bug PRT - Temps & Horaires
par Fatah » 16 juil. 2012 13:45 (4 Réponses)
bug ordinateur
par LVO » 24 juil. 2012 18:19 (6 Réponses)
Petit bug
par Benoist Rousseau » 06 août 2013 09:29 (5 Réponses)
bug plateforme démo, confirmé par IG
par DeXTeR » 09 janv. 2014 09:11 (3 Réponses)