PYRAMIDE en difficulté
Forums › ProRealTime forum Français › Support ProOrder › PYRAMIDE en difficulté
- This topic has 8 replies, 3 voices, and was last updated 6 years ago by Nicolas.
-
-
01/26/2018 at 12:24 PM #60592
Bonjour à tous
Je trade sur EUR/AUD par exemple, avec des bougies de 4 heures. Je voudrais créer une pyramide de 3 lots dans le même sens qu’ une moyenne mobile. Les 3 lots à la suite, tous les 20 pips. Une fois la pyramide constituée avec ces 3 lots, on ferme ces 3 positions si la clôture atteint 60 pips de variation dans le sens du trade par rapport au prix d’ entrée du 1° lot. Un stop loss est fixé à 100 pips.
PROBLEME : MON CODE OUVRE LES 3 LOTS AU MEME PRIX ? SI DANS LA BOUGIE INITIALE ON OUVRE SEULEMENT 1 OU 2 LOTS LE 3°lot NE VIENT JAMAIS ? ET POUR FINIR : LE SOMMET DE 60 PIPS ETANT ATTEINT, LE CODE NE FAIT RIEN IL NE CLOTURE PAS ?
J’ AI 2 GRAPHES prorealtime POUR ILLUSTRER mes ennuis. HELP et MERCI d’ AVANCE.
PYRAMIDE en difficulté12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364DEFPARAM CUMULATEORDERS = TRUEMlongue = WeightedAverage[70](close)REM la moyenne est haussière dans la derniére bougiea1 = Mlongue[1]< MlongueREM la moyenne est baissière dans la derniére bougieb1 = Mlongue[1]> MlongueREM PYRAMIDE LONGUE:quand la moyenne est haussiére//Le prix d' entrée du premier lot de la pyramide est défini ainsi que la bougie d'ouverture de la pyramide.// Puis achats succesifs jusqu' à 3 lots, avec vente des lots de la pyramide si elle atteint son sommet à 60 pips du 1° lot. Le pas de la pyramide est de 20 pipsIF a1 and not longonmarket THENBUY 1 SHARES AT MARKET // 1° lotentreelongue = tradeprice // valeur du 1° lotbougieinitiale = tradeindex // bougie d' achat du 1° lotBUY 1 SHARES at (entreelongue +0.0020) STOP// achat 2° lotBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 and CLOSE >(entreelongue + 0.0060) THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lotsENDIF// Après la bougie d' achat du 1° lot et lui seul: on continue la pyramide pour les 2 autres lots.IF barindex > bougieinitiale and COUNTOFLONGSHARES = 1 THENBUY 1 SHARES at (entreelongue +0.0020) STOP // achat 2° lotBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 and CLOSE > (entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIF//Si on a 2 lots achetés, on continue la pyramide:IF barindex > bougieinitiale and COUNTOFLONGSHARES = 2 THENBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 AND CLOSE > (entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIF// La pyramide est complète avec 3 lots :IF COUNTOFLONGSHARES= 3 AND CLOSE >(entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIFREM PYRAMIDE SHORT; Mêmes principes que pour les trades longs.REM la moyenne MM doit être baissière.IF b1 and not shortonmarket THENSELLSHORT 1 SHARES AT MARKETentreeshort = tradepricebougieinitiale = tradeindexSELLSHORT 1 SHARES at (entreeshort -0.0020) STOPSELLSHORT 1 SHARES at (entreeshort-0.0040) STOPELSIF COUNTOFLONGSHARES = 3 AND CLOSE < (entreeshort - 0.0060)THENEXITSHORT AT MARKET NEXTBAROPENENDIFIF barindex > bougieinitiale and COUNTOFSHORTSHARES = 1 THENSELLSHORT 1 SHARES at (entreeshort-0.0020) STOPSELLSHORT 1 SHARES at (entreeshort-0.0040) STOPELSIF COUNTOFLONGSHARES = 3 AND CLOSE < (entreeshort - 0.0060)THENEXITSHORT AT MARKET NEXTBAROPENENDIFIF barindex > bougieinitiale and COUNTOFSHORTSHARES = 2 THENSELLSHORT 1 SHARES at (entreeshort-0.0040) STOPELSIF COUNTOFLONGSHARES = 3 AND CLOSE < (entreeshort - 0.0060)THENEXITSHORT AT MARKET NEXTBAROPENENDIFIF COUNTOFLONGSHARES = 3 AND CLOSE <(entreeshort - 0.0060)THENEXITSHORT AT MARKET NEXTBAROPENENDIFSET STOP LOSS 0.010001/26/2018 at 1:13 PM #6059901/26/2018 at 3:45 PM #60622En effet, Noisette a raison, si je prends la même logique que ton code, je le verrai plutôt ainsi :
1234entreelongue = close // valeur du 1° lotbougieinitiale = barindex // bougie d' achat du 1° lotBUY 1 SHARES at (entreelongue +0.0020) STOP// achat 2° lotBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotIl ne faut pas oublier en sus, que les ordres STOP ne sont valables qu’une seule barre et qu’il faut les reposer à chaque nouvelle période.
01/27/2018 at 2:52 PM #60680Merci Noisette et Nicolas
Pour simplifier, j’ ai limité le code aux trades longs uniquement.
J’ ai suivi votre conseil en utilisant:
12entreelongue = close // valeur du 1° lotbougieinitiale = barindex // bougie d' achat du 1° lotMais c’ est encore pire, le code ne fait plus rien. Aucune fermeture de position alors que l’ objectif de 60 pips est OK.
Et la Pyramide de3 lots n’ étant pas réalisée, le code n’ achète plus rien alors que les prix le permettent.
J’ ai illustrer par la copie d’ écran ci- dessous.
12345678910111213141516171819202122232425262728293031323334DEFPARAM CUMULATEORDERS = TRUEMlongue = WeightedAverage[70](close)REM la moyenne est haussière dans la derniére bougiea1 = Mlongue[1]< MlongueREM PYRAMIDE LONGUE:quand la moyenne est haussiére//Le prix d' entrée du premier lot de la pyramide est défini ainsi que la bougie d'ouverture de la pyramide.// Puis achats succesifs jusqu' à 3 lots, avec vente des lots de la pyramide si elle atteint son sommet à 60 pips du 1° lot. Le pas de la pyramide est de 20 pipsIF a1 and not longonmarket THENBUY 1 SHARES AT MARKET // 1° lotentreelongue = close // valeur du 1° lotbougieinitiale = barindex // bougie d' achat du 1° lotBUY 1 SHARES at (entreelongue +0.0020) STOP// achat 2° lotBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 and CLOSE >(entreelongue + 0.0060) THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lotsENDIF// Après la bougie d' achat du 1° lot et lui seul: on continue la pyramide pour les 2 autres lots.IF barindex > bougieinitiale and COUNTOFLONGSHARES = 1 THENBUY 1 SHARES at (entreelongue +0.0020) STOP // achat 2° lotBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 and CLOSE > (entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIF//Si on a 2 lots achetés, on continue la pyramide:IF barindex > bougieinitiale and COUNTOFLONGSHARES = 2 THENBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 AND CLOSE > (entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIF// La pyramide est complète avec 3 lots :IF COUNTOFLONGSHARES= 3 AND CLOSE >(entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIFSET STOP LOSS 0.0100Je continue à chercher, si je solutionne, je vous envoie le résultat.
Bon week end à tous.01/27/2018 at 2:56 PM #60684Désolé j’ ai cru utilisé <> et la transmission était bizarre. Je recommence.
12345678910111213141516171819202122232425262728293031323334DEFPARAM CUMULATEORDERS = TRUEMlongue = WeightedAverage[70](close)REM la moyenne est haussière dans la derniére bougiea1 = Mlongue[1]< MlongueREM PYRAMIDE LONGUE:quand la moyenne est haussiére//Le prix d' entrée du premier lot de la pyramide est défini ainsi que la bougie d'ouverture de la pyramide.// Puis achats succesifs jusqu' à 3 lots, avec vente des lots de la pyramide si elle atteint son sommet à 60 pips du 1° lot. Le pas de la pyramide est de 20 pipsIF a1 and not longonmarket THENBUY 1 SHARES AT MARKET // 1° lotentreelongue = close // valeur du 1° lotbougieinitiale = barindex // bougie d' achat du 1° lotBUY 1 SHARES at (entreelongue +0.0020) STOP// achat 2° lotBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 and CLOSE >(entreelongue + 0.0060) THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lotsENDIF// Après la bougie d' achat du 1° lot et lui seul: on continue la pyramide pour les 2 autres lots.IF barindex > bougieinitiale and COUNTOFLONGSHARES = 1 THENBUY 1 SHARES at (entreelongue +0.0020) STOP // achat 2° lotBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 and CLOSE > (entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIF//Si on a 2 lots achetés, on continue la pyramide:IF barindex > bougieinitiale and COUNTOFLONGSHARES = 2 THENBUY 1 SHARES at (entreelongue +0.0040) STOP // achat 3° lotELSIF COUNTOFLONGSHARES = 3 AND CLOSE > (entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIF// La pyramide est complète avec 3 lots :IF COUNTOFLONGSHARES= 3 AND CLOSE >(entreelongue + 0.0060)THENSELL AT MARKET NEXTBAROPEN // cloture des 3 lots de la pyramide.ENDIFSET STOP LOSS 0.010001/29/2018 at 12:07 AM #6078901/30/2018 at 11:39 AM #60951En effet, seul 2 lots sont achetés dans la bougie initiale, puis le 3° lot qui devrait être acheté après 40 pips au dessus du 1° lots n’ est jamais acheté. Aussi,
J’ ai donc montré un autre graphe ou le code achète bien 3 lots au prix de : 1° lot à 1.5034 2° lot à 1.5056 et 3° lot à 1.5076 ; ayant bien 3 lots, la clôture des
3 positions doit se faire quand le prix augmente de 60 pips à partir du 1° lot , soit: 1.5034 + 0.0060 = 1.5094 et là on a bien les 3 lots avec un prix qui dépasse
largement 1.5094 sans que le code ferme les 3 lots à l’ open de la bougie qui suit le franchissement des 1.5094 ????
Je cherche ce qui cloche, sans succès pour l’ instant.
Bonne journée et merci.
01/31/2018 at 10:18 PM #6114402/01/2018 at 8:43 AM #61173Si ça peut aider, dans la documentation j’y ai mis un petit code de pyramidage, bien sûr à adapter selon le cas présent, ici : https://www.prorealcode.com/documentation/tradeprice/
-
AuthorPosts
Find exclusive trading pro-tools on