N'hésite pas si tu as besoin d'un coup de main
Proorder de PRT fonctionne t'il correctement ?
-
Stark
- Compagnon Jedi
- Messages : 1482
- Enregistré le : 01 nov. 2015 10:06
Re: Proorder de PRT fonctionne t'il correctement ?
Salut G'sT, j'utilise tous les jours ProOrder en réel, et mes résultats sont semblables à mes backtests. Je pense qu'il faut que tu intègres tes indicateurs maisons directement dans ton robot ProOrder.
N'hésite pas si tu as besoin d'un coup de main
N'hésite pas si tu as besoin d'un coup de main
-
Benoist Rousseau
- Trader Futures / CME Member
- Messages : 174758
- Enregistré le : 06 sept. 2011 22:45
Re: Proorder de PRT fonctionne t'il correctement ?
vu ce que tu décris c'est un problème de if G'sT, perso je n'ai pas de soucis avec proorder
les if then else if ça me rappelle le Turbo Pascal et ses boucles infinies
les if then else if ça me rappelle le Turbo Pascal et ses boucles infinies
-
G'sT
- Maître Jedi
- Messages : 4719
- Enregistré le : 01 mars 2012 18:45
Re: Proorder de PRT fonctionne t'il correctement ?
Msg recu Stark 
J examinerai tout ca ce soir. Merci a tous pour votre collaboration collective.
En y reflechissant a nouveau, je viens de prendre conscience (grace a vous
) de la necessite d alleger, de simplifier mon "code proorder".
Effectivement ma 3e variable (signal.bdc achat") fait appel a un indicateur maison binaire qui lui meme fait appel (puisqu il est binaire) a un autre indicateur maison externe "bdc".
Proorder fait donc reference a 2 indicateurs externes imbriques.
De meme l'indicateur "signal bdc achat", contient aussi un if/then qui entre peut etre "en conflit" avec mon if/then dans proorder.
Idem pour une nomenclature "A=" qui intervient dans BDC / signal bdc achat / et proorder... d ou peut etre une confusion des genres....
Je vais simplifier mon code proorder et je vous tiendrai informés
J examinerai tout ca ce soir. Merci a tous pour votre collaboration collective.
En y reflechissant a nouveau, je viens de prendre conscience (grace a vous
Effectivement ma 3e variable (signal.bdc achat") fait appel a un indicateur maison binaire qui lui meme fait appel (puisqu il est binaire) a un autre indicateur maison externe "bdc".
Proorder fait donc reference a 2 indicateurs externes imbriques.
De meme l'indicateur "signal bdc achat", contient aussi un if/then qui entre peut etre "en conflit" avec mon if/then dans proorder.
Idem pour une nomenclature "A=" qui intervient dans BDC / signal bdc achat / et proorder... d ou peut etre une confusion des genres....
Je vais simplifier mon code proorder et je vous tiendrai informés
-
Jim
- Chevalier Jedi
- Messages : 2373
- Enregistré le : 24 févr. 2016 10:39
Re: Proorder de PRT fonctionne t'il correctement ?
Hello G'sT,
Je suis un utilisateur régulier de ProOrder, et je suis souvent agacé par des différences avec PBT. Les conséquences peuvent être très lourdes. A titre personnel, pour un même système de trading, j'ai un code spécifique pour PBT et un code spécifique pour ProOrder.
J'ai lu que tu utilises des Close et des Close[1] dans ton code, et là je dis : Aïe ! Perso, quand je passes de PBT à PO, je remplace les Close par des Close[1], et les Close[1] par des Close[2].
En effet, PBT fait un test de condition en fin de chandelier, et si le test est positif il ouvre une position en début de chandelier suivant. PO fait un test de condition en début de chandelier, et si le test est positif il ouvre une position immédiatement.
En conséquence, tu te retrouves avec Close = Close[1] (si absence de glissement).
Je suis un utilisateur régulier de ProOrder, et je suis souvent agacé par des différences avec PBT. Les conséquences peuvent être très lourdes. A titre personnel, pour un même système de trading, j'ai un code spécifique pour PBT et un code spécifique pour ProOrder.
J'ai lu que tu utilises des Close et des Close[1] dans ton code, et là je dis : Aïe ! Perso, quand je passes de PBT à PO, je remplace les Close par des Close[1], et les Close[1] par des Close[2].
En effet, PBT fait un test de condition en fin de chandelier, et si le test est positif il ouvre une position en début de chandelier suivant. PO fait un test de condition en début de chandelier, et si le test est positif il ouvre une position immédiatement.
En conséquence, tu te retrouves avec Close = Close[1] (si absence de glissement).
-
Stark
- Compagnon Jedi
- Messages : 1482
- Enregistré le : 01 nov. 2015 10:06
Re: Proorder de PRT fonctionne t'il correctement ?
Chez moi, ProOrder ne prend position qu'en clôture de bougie, je suis surpris de ça Jim.Jim a écrit :En effet, PBT fait un test de condition en fin de chandelier, et si le test est positif il ouvre une position en début de chandelier suivant. PO fait un test de condition en début de chandelier, et si le test est positif il ouvre une position immédiatement.
-
Jim
- Chevalier Jedi
- Messages : 2373
- Enregistré le : 24 févr. 2016 10:39
Re: Proorder de PRT fonctionne t'il correctement ?
Stark,
Ca m'intrigue aussi ce que tu me dis. Il faut croire qu'on fait une utilisation différente de ProOrder, ou bien on a des éléments de langage différents.
Je vais te donner un bout de code, et tu me diras si tu obtiens le même résultat :
IF TIME = 130500 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
En UT 1 min, ProOrder effectuera le test entre 13h05m00s et 13h05m02s environ, puis IG essaiera d'ouvrir une position dans la foulée. Si IG rejette l'ordre, il retentera de passer l'ordre vers 13h05m05s. Bref, l'ordre est exécuté au début de la bougie qui va de 13h05m00s à 13h06m00s.
En tout cas, Stark, si tu disposes d'une méthode pour exécuter les ordres en fin de bougie, je suis très intéressé !
Ca m'intrigue aussi ce que tu me dis. Il faut croire qu'on fait une utilisation différente de ProOrder, ou bien on a des éléments de langage différents.
Je vais te donner un bout de code, et tu me diras si tu obtiens le même résultat :
IF TIME = 130500 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
En UT 1 min, ProOrder effectuera le test entre 13h05m00s et 13h05m02s environ, puis IG essaiera d'ouvrir une position dans la foulée. Si IG rejette l'ordre, il retentera de passer l'ordre vers 13h05m05s. Bref, l'ordre est exécuté au début de la bougie qui va de 13h05m00s à 13h06m00s.
En tout cas, Stark, si tu disposes d'une méthode pour exécuter les ordres en fin de bougie, je suis très intéressé !
-
Stark
- Compagnon Jedi
- Messages : 1482
- Enregistré le : 01 nov. 2015 10:06
Re: Proorder de PRT fonctionne t'il correctement ?
Ok je vais essayer. Après j'utilise l'UT 10 secondes pour mes codes, peut-être que cela joue.
-
kero
- Compagnon Jedi
- Messages : 1317
- Enregistré le : 22 juil. 2015 09:08
Re: Proorder de PRT fonctionne t'il correctement ?
Bah 2 IF/THEN ou un IF+ELSIF, ça ne donne pas le même algorythme.
En fait, le mieux serait de le voir, ce code.
En fait, le mieux serait de le voir, ce code.
-
plataxis
- Membre du Conseil Jedi
- Messages : 5049
- Enregistré le : 30 avr. 2014 03:12
Re: Proorder de PRT fonctionne t'il correctement ?
c'est surtout que Jim ouvre une position sans autre condition que l'heure. Peut-être Stark met-il une condition de prix ou d' indicateur ou de n'importe quoi qui fait que PRT attend la cloture d'une bougie ?
-
Stark
- Compagnon Jedi
- Messages : 1482
- Enregistré le : 01 nov. 2015 10:06
Re: Proorder de PRT fonctionne t'il correctement ?
Oui c'est tout à fait ça plataxis, j'ai des conditions en mode CLOSE, donc forcément mon code attend la fin de la bougie pour déterminer si les conditions d'entrées sont réunies, et seulement à l'ouverture de la bougie suivante il rentre.
Voilà pourquoi on a une différence Jim
Voilà pourquoi on a une différence Jim
-
Jim
- Chevalier Jedi
- Messages : 2373
- Enregistré le : 24 févr. 2016 10:39
Re: Proorder de PRT fonctionne t'il correctement ?
les amis, vous êtes parvenus à me faire douter
Etant persuadé que ce n'est pas une affaire de Close ou autre, j'ai lancé le système suivant sur le DOW, en UT 1 min :
DEFPARAM CumulateOrders = True
if close >0 then
buy 1 contract at market
endif
Le système a été lancé à 12h42m15s (heure US). Le résultat obtenu est décrit dans le tableau ci-dessous.
On voit clairement que les positions sont ouvertes en début de bougie.
Donc je maintiens que ProOrder ouvre une position en début de bougie quelque soit la condition d'entrée.
Alors c'est vrai que souvent il y a du glissement. Le record que j'ai obtenu est de 75 secondes pour fermer une position sur le indice anglais.
Etant persuadé que ce n'est pas une affaire de Close ou autre, j'ai lancé le système suivant sur le DOW, en UT 1 min :
DEFPARAM CumulateOrders = True
if close >0 then
buy 1 contract at market
endif
Le système a été lancé à 12h42m15s (heure US). Le résultat obtenu est décrit dans le tableau ci-dessous.
On voit clairement que les positions sont ouvertes en début de bougie.
Donc je maintiens que ProOrder ouvre une position en début de bougie quelque soit la condition d'entrée.
Alors c'est vrai que souvent il y a du glissement. Le record que j'ai obtenu est de 75 secondes pour fermer une position sur le indice anglais.
- Fichiers joints
-
- Nouvelle-image-8-ConvertImage.jpg (41.46 Kio) Vu 2212 fois
-
Stark
- Compagnon Jedi
- Messages : 1482
- Enregistré le : 01 nov. 2015 10:06
Re: Proorder de PRT fonctionne t'il correctement ?
Tu es sur un compte démo ou réel pour faire ton test ?
-
Jim
- Chevalier Jedi
- Messages : 2373
- Enregistré le : 24 févr. 2016 10:39
Re: Proorder de PRT fonctionne t'il correctement ?
Je suis bien entendu sur un compte démo pour ce test...
-
ladefense92800
- Maître Jedi
- Messages : 4289
- Enregistré le : 18 déc. 2011 18:21
Re: Proorder de PRT fonctionne t'il correctement ?
Merci jim pour ces indications qui me sont tres utiles .
ça pourrait bien resoudre mes soucis .
ça pourrait bien resoudre mes soucis .
-
G'sT
- Maître Jedi
- Messages : 4719
- Enregistré le : 01 mars 2012 18:45
Re: Proorder de PRT fonctionne t'il correctement ?
Bon voilà je viens de terminer le bricolage de la machine.
J'ai opté pour tout réécrire dans une version "prooder V2" dans l'optique dans un 1er temps de la backtester et comparer ce backteste avec celui de la V1 ; ça va le résultat du backtest de cette réécriture est le même que la V1.
Pour réécrire cette V2 j'ai suivi vos 2 recommandations principales :
1) j'ai inclus les indicateurs en lien externes dans prooder sous formes de calculs
2) j'ai conçu les 3 variables différemment afin d’alléger le If/then et n'avoir plus qu'un seule variable associé à 1 seul if/then dans la ligne de l'ordre d'achat/vente.
Ainsi le code se présente sous "l'architecture" suivante :
//REM CALCUL BDC SIGNAL D'ACHAT
Signaldachat=0
IF
Signaldachat=1
endif
//REM CALCUL BDC SIGNAL DE VENTE
Signalvente=0
IF
Signalvente=1
endif
// REM CALCUL DE LA PLAGE DE TRADING
heuredebut =XXXXX
heurefin=YYYYY
heuretrading=0
if time>heuredebut and time<heurefin then
then heuretrading=1
endif
//REM CALCUL VARIABLE PRIX
variableprixachat=0
If
variableprixachat=1
endif
variableprixvente=0
If
variableprixvente=1
endif
//REM CALCUL POSITION
Achat=signaldachat+heuretrading+variableprixachat
vente=signalvente+heuretrading+variableprixvente
// Conditions pour ouvrir une position acheteuse
IF NOT ONMarket AND Heikin Ashi=3 THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
IF NOT ONMarket AND VTE=3 THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Stops et objectifs
SET TARGET PROFIT
SET STOP LOSS
Voilà j'essayerai cette nouvelle version demain.
J'ai opté pour tout réécrire dans une version "prooder V2" dans l'optique dans un 1er temps de la backtester et comparer ce backteste avec celui de la V1 ; ça va le résultat du backtest de cette réécriture est le même que la V1.
Pour réécrire cette V2 j'ai suivi vos 2 recommandations principales :
1) j'ai inclus les indicateurs en lien externes dans prooder sous formes de calculs
2) j'ai conçu les 3 variables différemment afin d’alléger le If/then et n'avoir plus qu'un seule variable associé à 1 seul if/then dans la ligne de l'ordre d'achat/vente.
Ainsi le code se présente sous "l'architecture" suivante :
//REM CALCUL BDC SIGNAL D'ACHAT
Signaldachat=0
IF
thenici je mets une formule qui calcule BDC
Signaldachat=1
endif
//REM CALCUL BDC SIGNAL DE VENTE
Signalvente=0
IF
thenici je mets une formule qui calcul BDC
Signalvente=1
endif
// REM CALCUL DE LA PLAGE DE TRADING
heuredebut =XXXXX
heurefin=YYYYY
heuretrading=0
if time>heuredebut and time<heurefin then
then heuretrading=1
endif
//REM CALCUL VARIABLE PRIX
variableprixachat=0
If
thenici je met une formule spécifique
variableprixachat=1
endif
variableprixvente=0
If
thenici je met une formule spécifique
variableprixvente=1
endif
//REM CALCUL POSITION
Achat=signaldachat+heuretrading+variableprixachat
vente=signalvente+heuretrading+variableprixvente
// Conditions pour ouvrir une position acheteuse
IF NOT ONMarket AND Heikin Ashi=3 THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
IF NOT ONMarket AND VTE=3 THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Stops et objectifs
SET TARGET PROFIT
SET STOP LOSS
Voilà j'essayerai cette nouvelle version demain.
-
Stark
- Compagnon Jedi
- Messages : 1482
- Enregistré le : 01 nov. 2015 10:06
Re: Proorder de PRT fonctionne t'il correctement ?
Un conseil, pour tes IF, utilise plutôt celui là :
IF (Ton calcul de BDC) THEN
Signaldachat = 1
ELSE
Signalachat = 0
ENDIF
Sinon tu risques d'avoir ton Signalachat qui reste bloqué à 1 dans certains cas (pareil pour tes autres variables).
Et Perso je raccourcirai comme suit :
IF NOT ONMarket AND Signalachat = 1 AND heuretrading = 1 AND variableprixachat = 1 THEN
BUY 1 CONTRACTS AT MARKET
SET TARGET PROFIT
SET STOP LOSS
ENDIF
(Et pareil pour la vente)
IF (Ton calcul de BDC) THEN
Signaldachat = 1
ELSE
Signalachat = 0
ENDIF
Sinon tu risques d'avoir ton Signalachat qui reste bloqué à 1 dans certains cas (pareil pour tes autres variables).
Et Perso je raccourcirai comme suit :
IF NOT ONMarket AND Signalachat = 1 AND heuretrading = 1 AND variableprixachat = 1 THEN
BUY 1 CONTRACTS AT MARKET
SET TARGET PROFIT
SET STOP LOSS
ENDIF
(Et pareil pour la vente)
-
G'sT
- Maître Jedi
- Messages : 4719
- Enregistré le : 01 mars 2012 18:45
Re: Proorder de PRT fonctionne t'il correctement ?
Ok merci du conseil Stark, je reverrais ca ce soir ; la je l ai lance hier soir, plus de possibilite de le changer via mon tel.
-
G'sT
- Maître Jedi
- Messages : 4719
- Enregistré le : 01 mars 2012 18:45
Re: Proorder de PRT fonctionne t'il correctement ?
Bon il est 9h02 et ma V2 n a pas encore lancé de trade contrairement a ma v1 qui avant hier avait commencé les trades a 9h01...... ce qui semble etre de bon augure......
-
G'sT
- Maître Jedi
- Messages : 4719
- Enregistré le : 01 mars 2012 18:45
Re: Proorder de PRT fonctionne t'il correctement ?
Super proorder a lancé un.trade et l a deboucle a son TP...
Ca marche
Ca marche
-
Stark
- Compagnon Jedi
- Messages : 1482
- Enregistré le : 01 nov. 2015 10:06
Re: Proorder de PRT fonctionne t'il correctement ?
@Jim > C'est drôle je viens de tester ton code, effectivement en UT 1min, il se déclenche au bout de 5s en moyenne (latence ?).
Par contre, en UT 10s, il se déclenche très bien en temps voulu
Par contre, en UT 10s, il se déclenche très bien en temps voulu
Spoiler: