Help ! appel a debug ! pyramidage avec sortie flat

Forum d'entraide ProRealTime : prise en main, réglages, indicateurs, programmation ProBuilder et ProOrder, astuces entre utilisateurs de la plateforme.
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

Bon ça fait deux jour que je tourne en rond ....

Voila j ai un indicateur qui renvoit des 1 et des -1

quand ça fait -1 j achete un lot avec un take profit de 20 point :

Code : #

if signal=-1 and not on market then 
buy 1 contract at market 
set target pPofit 20
endif 
donc apres y a deux solutions soit ça tape le take profit a 20 point , et la pas de soucis ,si on a nouveau signal=-1 c est la meme chose .

Soit ça va vers le sud et la au prochain signal=-1 je cumule un autre ordre d achat pour sortir avec un benef de 0 .

Code : #

if signal=-1 and countofposition=1  then 
buy 1 contract at market 
if positionperf=0 then 
sell at market 
endif 
Mais bien sur ça marche pas , j ai essaye aussi tradeprice

même en calculant moi même les niveaux , ça marche pas ...

tout essaye dans tous les sens ....

j ai passe toute l apreme et la soirée ...

en résumé c est coder une situation de pyramidage avec sortie flat ...

si quelqu un a une idée ..... :prier:
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par falex »

Hi F,

Quelques questions :

Ton signal passe de 0 à +1 sur une bougie puis redescend à 0 sur la bougie suivante ? (indicateur ternaire en résumé)
Ou bien il passe de +1 à -1 sur un contre signal ? (signal binaire) ?

Dans ton premier bout de code :
Tant que ta position est en stock, PRT ne prendra pas un deuxième lot.

Dans ton deuxième bout de cotre, effectivement si signal = -1 ET que tu as déjà un lot en stock alors tu lances ordre d'achat.

Donc ton souci vient de la deuxième partie qui ne rentre pas un deuxième lot ?
Est-ce que ta marge/solde de ton compte est suffisament haut pour avoir el droit d'ouvrir un deuxième lot (marge)?
Est-ce que tu as vérifié , tout en haut du code, que tu as mis la directive "DEFPARAM
CumulateOrders= True "ou un truc de ce gout là, regarde dans la doc, j'ai pas de PRT sous la main.

C'est surtout le "Defparam cumulateorder" qui me fait dire que ton PRT n'ouvre pas de deuxième lot.

---

Attend y'a aussi un autre truc qui me revient en tête : y'avait un mecahtn bug avec "countofposition" ce qui oblige à utiliser COUNTOFSHORTSHARESet COUNTOFLONGSHARESà la place, car countofposition ne renvoit pas le bon nombre (je ne sais pas plus dans quel cas mais la directive ne marchait pas y'a un an environ).
Depuis je n'utilise plus que countofshort... et countoflong...
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

ok merci flo. je repond apres la pause ...
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

back.
Ton signal passe de 0 à +1 sur une bougie puis redescend à 0 sur la bougie suivante ? (indicateur ternaire en résumé)
Ou bien il passe de +1 à -1 sur un contre signal ? (signal binaire) ?
binaire , je vise l indicateur avec le module de aide a la programmation .
Dans ton premier bout de code :
Tant que ta position est en stock, PRT ne prendra pas un deuxième lot.
Dans ton deuxième bout de cotre, effectivement si signal = -1 ET que tu as déjà un lot en stock alors tu lances ordre d'achat.
non il prend bien la deuxieme position , dans le graph j ai bien les fleches sous les bougies qui correspondent au signaux , d ailleurs il ouvre a l open de bougie +1 et pas a la cloture .

Donc la soucis c est la sortie , jamais il ne me sort a " flat " .

Quand la position est cloturée on est souvent sur le niveau d entree du premier trade . Il cloture les deux a ce moment .

Et bien sur des fois il cloture pas , selon ce que j ai code .

j ai verifie la version de prt c est bon > a 10

peut etre ça bug car j ai prt demo ...
Est-ce que tu as vérifié , tout en haut du code, que tu as mis la directive "DEFPARAM
CumulateOrders= True "ou un truc de ce gout là, regarde dans la doc, j'ai pas de PRT sous la main.
oui ça c est bon .
Attend y'a aussi un autre truc qui me revient en tête : y'avait un mecahtn bug avec "countofposition" ce qui oblige à utiliser COUNTOFSHORTSHARESet COUNTOFLONGSHARESà la place, car countofposition ne renvoit pas le bon nombre (je ne sais pas plus dans quel cas mais la directive ne marchait pas y'a un an environ).
bon je vais checker ça ... mais ça metonnerait .

En resume ça prend la deuxieme position mais ça doit s emmeler les pinceaux sur les sortie , c est dingue ...

Dans ton api t as un truc come ça non ? , sortir flat ... donc je comprend pas que prt le fasse pas .

j avait beaucoup d espoir pour POSITIONPERF et POSITIONPRICE mais rien n y fait . page 19 de la doc

j essaye de mettre des captures ...

a+
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par falex »

API et PRT sont deux truc qui n'ont rien à voir.

---

Ok donc si je reformule ;: ton deuxième lot est bien entrée mais ça ne sort pas au PRU ?

En règles générale dans mes codes je mets un truc du genre :

Code : #

If on market then
    sell nb_pos (= ton nombre d eposition en cours) shares at XXXX'ici tu met ton level calculé)
    exit nb_pos shares at XXXX(XXX = ton niveau de sortie
endif
tu peux envoyer les ordres sell et exit short en même temps, le programme n'utilisera que celui qui correspond à ton sens.

---

Mais je vais franc avec toi, autant j'adorre PRT pour sa rapidité, simplicité, autant pour tout ce qui est gestion des lot, niveau de sortie ... c'est vraiment pas ça dès qu'il y aplusieurs lots en même temps.

En plus le module de backtest est buggé, la variable traderprice (ou un truc du genre) ne renvoi pas le prix du dernier lot entrée mais du PRU ... alors qu'en pro-order c'est bon ...

En fait il manque une vrai gestion des lots, lot par lot.

Ce soft a été fait pour les action au début et ça se voit encore beaucoup dans son usage et son langage.
Alors que MT4 qui était plus pour le forex et donc moins dans une logique PRU est bien meilleur/fin sur la gestion des lots (voir meêm presque casse-bonbon ... mais là c'est HS).
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

merci pour ta reponse , royal comme d - , j implemente ça ce soir et je tiens au courant ....

j espere que ça va marcher :prier:
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

hier je suis tombe sur ça , bien interressant sur l evolution de langage prt

https://www.prorealtime.com/fr/changelog_probacktest_10_1-pop
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

j avais demandé a pro real time via le formulaire de leur site .....

je colle la reponse :
Votre demande de programmation -- Ticket #XXXXXXXXXX

Bonjour Mr XXXX,
Veuillez trouver ci-dessous un exemple de code basé sur notre compréhension de certaines ou de toutes les conditions que vous nous avez envoyées.
Nous pensons que le code suivant peut répondre à votre demande.

Si ce n'est pas le cas, merci de revenir vers nous en nous expliquant le problème.
Code

Code : #

if signal=-1 and not onmarket then
buy 1 contract at market
endif

if signal=-1 and countofposition=1 then
buy 1 contract at market
endif
if countofposition=2 then
sell at (tradeprice+tradeprice(2))/2 limit
endif
set target pProfit 20
j ai pas veirfié encore ....

Ils sont bien ces gens de chez pro real time .....
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

le formulaire
Spoiler:
https://trading.prorealtime.com/fr/aide-a-la-programmation
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

Un grand merci a falex pour son code et sa disponibilité andilienne désormais légendaire qui de toute façons servira , y a pleins d idées dedans .

je suis reparti du code de la team de pro real time et je suis arrive a ce que je voulais , j ai du reecrire un peu , et par tatonnement ça fait ce que je voulait ...

Code : #

if signal=-1  and not onmarket then
buy 1 contract at market
set target pProfit 20
endif

if signal=-1 and countofposition=1 then
buy 1 contract at market

endif
if countofposition=2 then
sell at (((tradeprice(2)-tradeprice)/2)+tradeprice) limit
endif
en esperant que ça serve .....

edit : si je remplace le " limit "par " stop " ça fait plus ce que je veut , donc je me mefie , je prefere le stop , en tout cas en backtest ça le fait mais en reel pro order je sais pas .
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par falex »

Stop et limit ont exactement la même logique que sur de vrai ordre:

Je feux rentrer long sur x pips plus haut : Stop
Je veux rentrer short sur x pips plus haut :limit
Etc
Etc
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

bon alors , j ai voulu faire l ordre " mirroir " et bien sur sa marche pas .... c est trop bete.....

Code : #

if signal=1 and not onmarket then
sellshort 1 contract at market
set target pProfit 10
endif

if signal=1 and shortonmarket=1 then
sellshort 1 contract at market

endif
if countofposition=2 then

sellshort at ((tradeprice-tradeprice(2))/2)+tradeprice stop
endif
ça rentre bien en position 1 et 2 fois sauf que ça sort pas flat , ça sort plus proche du premier ordre .... c est fou .

J avait le meme soucis sur les achat et j ai resolu , mais la je sait pas , j ai mis stop et limit , les deux marchent donnent la meme chose .

J ai mis toutes les formule possible....

si quelqu un a une idee ....
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

Spoiler:
28graph34.jpeg
28graph34.jpeg (28.12 Kio) Vu 4047 fois
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

28graph35.jpeg
28graph35.jpeg (37.8 Kio) Vu 4045 fois
voila on compend mieux , ça sort pas flat , au milieu des deux ordres ....
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par falex »

Ça c'est normal c'est le "bug" du backtest dont je t'ai déjà parlé.

En pro-ordre c' est bon.
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

falex a écrit :Ça c'est normal c'est le "bug" du backtest dont je t'ai déjà parlé.

En pro-ordre c' est bon.
ah wais ?

c est bizzarre quand meme .....

quand j ai fait les achat ça faisait pareil , genre ça sortait a 2/3 on aurait dit , et apres j ai resolu , et la ça fait pareil .....

je lancerai sur pro order on verra bien ....

je rempli le formulaire de prt pour le code on verra bien la reponse ....

ok a demain a+
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

je rempli le formulaire de prt pour le code on verra bien la reponse ....
voici ....reçu ce lundi .....

Code : #

if signal=1 and not onmarket then
sellshort 1 contract at market
set target pProfit 10
endif

if signal=1 and shortonmarket=1 then
sellshort 1 contract at market
endif

if countofposition=-2 then
calcul=((tradeprice+tradeprice(2))/2)
if close > calcul then
exitshort at ((tradeprice+tradeprice(2))/2) limit
else
exitshort at ((tradeprice+tradeprice(2))/2) stop
endif
endif
big up a la team pro real time .... :merci:

le -2 pour le count of position , je savais qu ilfallaite faire ça .... ainsi que le "calcul " intermediaire , je me disait bien qu il fallait ruser pourtant ... :mur:

:top:
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

bon on s est pris la tete pour rien , c etait baucoup plus simple qu on ne pense , oubliez tradeprice ..............

ça donne ça

Code : #

//x valeur de votre stop a mettre en variable 
if signal=-1 and not onmarket then
buy 1 contract at market
set target pProfit x
endif

if signal=-1 and countofposition=1 then
buy 1 contract at market
set target pProfit 0.001
endif

if signal=1 and not onmarket then
sellshort 1 contract at market
set target pProfit x

endif

if signal=1  and countofposition=-1 then
sellshort 1 contract at market
set target pProfit 0.001
endif
voila vous avez compris

set target pProfit 0.001 ça sort flat .

j ai trouve ça par tatonnement .... ne mettez pas 0 ça sort une erreur .
ladefense92800
Maître Jedi
Messages : 4289
Enregistré le : 18 déc. 2011 18:21

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par ladefense92800 »

Du coup j ai un autre soucis ....

signal = -1 j achete

signal = 1 je shorte

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

Donc signal = -1 j achete 1 lot

puis j ai un signal = 1 je shorte 2 lots , je pyramide donc , sauf que quand je shorte 2 lots ça vend le tout premier lot et je me retrouve en short de 1 lot . pas du tout ce que je veux .

Moi je veux etre en position avec 2 lots short et un lot achat en meme temps .

Comment faire ? si quelqu un a une idee ......
Avatar du membre
falex
Le Gladiateur
Messages : 34267
Enregistré le : 12 févr. 2013 15:41

Re: Help ! appel a debug ! pyramidage avec sortie flat

Message non lu par falex »

Pas possible PRT ne sais pas faire de hedging.

Au mieux tu te fais deux backtests l'un avec les short, l'autre avec les long et tu consolides le résultat à la main