SENS DU DERNIER TRADE
Forums › ProRealTime forum Français › Support ProOrder › SENS DU DERNIER TRADE
- This topic has 6 replies, 2 voices, and was last updated 7 years ago by 4801.
-
-
12/02/2017 at 7:32 PM #54562
Bonsoir à tous
Afin d’ éviter 2 trades successifs de même sens, je ne trouve rien du style ” LASTTRADE IS LONG” ou ” LASTTRADE IS SHORT ” je plante sur :
Comment coder: Le dernier trade était long
Le dernier trade était short
Merci si vous avez une idée . Bon week-end
12/03/2017 at 9:37 PM #54611Un début de réponse :
https://www.prorealcode.com/topic/add-condition-referencing-last-trade-direction/
Il y aurait toutefois d’autres façons de procéder suivant les cas de figures, fait nous savoir si cette solution te convient, merci.
12/05/2017 at 5:13 PM #54806Merci Nicolas et Robertogozzi
J’ ai testé sans succès avec le code qui suit. Le code ne génère aucun trade.
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
indicator1 = WeightedAverage[20](close)
ONCE LastTradeDirection = 0
IF LongOnMarket THEN
LastTradeDirection = 1 //1 = dernier trade était LONG
ELSIF ShortOnMarket THEN
LastTradeDirection = 2 //2 = dernier trade était SHORT
ENDIF// Conditions pour ouvrir une position acheteuse
// La moyenne 20 était baissière et devient haussière:
c1 = (indicator1[2] >= indicator1[1])
c2 = (indicator1 > indicator1[1])
IF c1 AND c2 and LastTradeDirection = 2 THEN
BUY 1 SHARES AT MARKET
ENDIF
// Conditions pour fermer une position acheteuse
IF LONGONMARKET THEN
SELL AT (TRADEPRICE + 0.0050)LIMIT
ENDIF// Conditions pour ouvrir une position short
// La moyenne 20 était haussière et devient baissière:
c3 = (indicator1[2] <= indicator1[1])
c4 = (indicator1 < indicator1[1])
IF c3 and c4 AND LastTradeDirection = 1 THEN
SELLSHORT 1 SHARES AT MARKET
ENDIF
// Conditions pour fermer une position short:
IF SHORTONMARKET THEN
EXITSHORT AT (TRADEPRICE – 0.0050)LIMIT
ENDIFMerci et bonne soirée à tous.
12/12/2017 at 12:51 PM #55489Bonjour Nicolas
J’ ai utilisé le symbole <> pour écrire à nouveau le code comme tu le demandes dans tes réponses.
J’ ai testé sans succès avec l’ utilisation du lien transmis. Le code ne génère aucun trade.
Je n’ ai rien trouvé pour coder: ” le dernier trade était long”
” le dernier trade était short”
Merci .
12345678910111213141516171819202122232425262728293031323334s' inverse."]DEFPARAM CumulateOrders = False // Cumul des positions désactivéindicator1 = WeightedAverage[20](close)ONCE LastTradeDirection = 0IF LongOnMarket THENLastTradeDirection = 1 //1 = dernier trade était LONGELSIF ShortOnMarket THENLastTradeDirection = 2 //2 = dernier trade était SHORTENDIF// Conditions pour ouvrir une position acheteuse// La moyenne 20 était baissière et devient haussière:c1 = (indicator1[2] >= indicator1[1])c2 = (indicator1 > indicator1[1])IF c1 AND c2 and LastTradeDirection = 2 THENBUY 1 SHARES AT MARKETENDIF// Conditions pour fermer une position acheteuseIF LONGONMARKET THENSELL AT (TRADEPRICE + 0.0050)LIMITENDIF// Conditions pour ouvrir une position short// La moyenne 20 était haussière et devient baissière:c3 = (indicator1[2] <= indicator1[1])c4 = (indicator1 < indicator1[1])IF c3 and c4 AND LastTradeDirection = 1 THENSELLSHORT 1 SHARES AT MARKETENDIF// Conditions pour fermer une position short:IF SHORTONMARKET THENEXITSHORT AT (TRADEPRICE – 0.0050)LIMITENDIF12/12/2017 at 1:33 PM #55493Tu enregistres correctement ici la notion du trade en cours entre tes lignes 6 et 10, tout est ok jusque là. Ensuite c’est ta gestion de la variable qui pose problème puisque tu testes si celle-ci est égal à 2 pour ouvrir un order d’achat ou si elle est égale à 1 pour ouvrir un nouvel ordre de vente. Hors cette variable vaut 0 tant qu’il n’y a pas eu d’ordre, donc rien ne s’ouvrira jamais.
Dans ce cas de figure, tu peux ajouter une condition en plus pour tester si ‘LastTradeDirection’ vaut OU BIEN 0, si oui alors tes lignes 17 et 29 seront lus par l’interpréteur de codes.
Exemple pour ta ligne 16:
1IF c1 AND c2 and (LastTradeDirection = 2 OR LastTradeDirection=0) THENAttention aux parenthèses ! Je te laisse faire de même pour les conditions d’entrées en VAD.
12/13/2017 at 12:37 PM #5556712/13/2017 at 11:00 PM #55617Bonsoir tout le monde.
Le code corrigé fonctionne bien, c’ est OK (merci Nicolas)
Je croyais que cela serait sympa sur le Forex, mais les backtests en faisant varier un stop loss, la Moyenne mobile et l’ objectif gain donnent des résultats mauvais.
Merci prorealcode, de m’ éviter des trades d’ illusion. j’ ai testé seulement en daily.
1234567891011121314151617181920212223242526272829303132333435DEFPARAM CumulateOrders = False // Cumul des positions désactivéindicator1 = WeightedAverage[m](close)ONCE LastTradeDirection = 0IF LongOnMarket THENLastTradeDirection = 1 //1 = dernier trade était LONGELSIF ShortOnMarket THENLastTradeDirection = 2 //2 = dernier trade était SHORTENDIF// Conditions pour ouvrir une position acheteuse// La moyenne 20 était baissière et devient haussière:c1 = (indicator1[2] > indicator1[1])c2 = (indicator1 > indicator1[1])IF c1 AND c2 and (LastTradeDirection = 2 OR LastTradeDirection=0) THENBUY 1 SHARES AT MARKETENDIF// Conditions pour fermer une position acheteuseIF LONGONMARKET THENSELL AT (TRADEPRICE + P)LIMITENDIF// Conditions pour ouvrir une position short// La moyenne 20 était haussière et devient baissière:c3 = (indicator1[2] <= indicator1[1])c4 = (indicator1 < indicator1[1])IF c3 and c4 AND (LastTradeDirection = 1 OR LastTradeDirection=0) THENSELLSHORT 1 SHARES AT MARKETENDIF// Conditions pour fermer une position short:IF SHORTONMARKET THENEXITSHORT AT (TRADEPRICE - P)LIMITENDIFSET STOP LOSS X -
AuthorPosts
Find exclusive trading pro-tools on