Et que dois-je faire pour que les ordres restent tout le temps du trade ?
Vous devez les entrer à nouveau avec chaque nouvelle bougie.
Sinon, la limite initiale de 5 points, à partir de la deuxième bougie, sera perdue et vous resterez avec le stop loss de 50 pips (si vous le mettez), sinon aucun Stop Loss.
Je ne connais pas très bien le language de ProRealcode, vous avez une idée de comment je pourrais intégrer ce que vous dites and mon algo ?
Merci pour vos conseils
Ceci s’applique UNIQUEMENT aux commandes en attente (pending orders).
Vous devez entrer le code que j’ai publié (il n’y a que 6 lignes) au début de votre stratégie, à la ligne 3 c’est super.
Merci beaucoup pour vos conseils, malheureusement cela n’a pas fonctionné.
Les deux codes suivants me donnent des résultats bien différents…
L’objectif étant je le rappel de remplacer la ligne ‘SET STOP pLOSS 5’ par un stop artificiel.
// Définition des paramètres du code
DEFPARAM CumulateOrders = True // Cumul des positions désactivé
rsiPeriod=9
// Conditions pour ouvrir une position acheteuse
indicator1 = Average[9](RSI[rsiPeriod](close))
indicator2 = Average[15](RSI[rsiPeriod](close))
c1 = (indicator1[1] >= indicator2[1])
indicator3 = RSI[rsiPeriod](close)
c2 = (indicator3 <= 30)
// Conditions pour ouvrir une position en vente à découvert
indicator4 = Average[9](RSI[rsiPeriod](close))
indicator5 = Average[15](RSI[rsiPeriod](close))
c3 = (indicator4[1] <= indicator5[1])
indicator6 = RSI[rsiPeriod](close)
c4 = (indicator6 >= 70)
// Trade orders
IF c1 AND c2 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF c3 AND c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// TP
SET TARGET pPROFIT 20
SET STOP pLOSS 5
// Définition des paramètres du code
DEFPARAM CumulateOrders = True // Cumul des positions désactivé
IF LongOnMarket Then
SELL AT tradeprice - (5 * pipsize) limit
ENDIF
IF ShortOnMarket then
EXITSHORT AT tradeprice + (5 * pipsize) limit
ENDIF
rsiPeriod=9
// Conditions pour ouvrir une position acheteuse
indicator1 = Average[9](RSI[rsiPeriod](close))
indicator2 = Average[15](RSI[rsiPeriod](close))
c1 = (indicator1[1] >= indicator2[1])
indicator3 = RSI[rsiPeriod](close)
c2 = (indicator3 <= 30)
// Conditions pour ouvrir une position en vente à découvert
indicator4 = Average[9](RSI[rsiPeriod](close))
indicator5 = Average[15](RSI[rsiPeriod](close))
c3 = (indicator4[1] <= indicator5[1])
indicator6 = RSI[rsiPeriod](close)
c4 = (indicator6 >= 70)
// Trade orders
IF c1 AND c2 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF c3 AND c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
// TP
SET TARGET pPROFIT 20
SET STOP pLOSS 50
Ce forum dispose-t-il d’un chat pour pouvoir échanger plus rapidement ?
Il n’y a pas de CHAT, mais de toute façon je ne l’utiliserais jamais.
Je serais obligé de répondre immédiatement, alors que je préfère faire ce que je fais normalement et répondre quand j’ai le temps de le faire.
Je pense que c’est comme ça pour tout le monde.
De plus, je ne parle pas français et j’utilise le traducteur Google, qui ne convient pas a la CHAT.
En attendant, je vais faire une correction sur le second code car les lignes où vous les mettez sont bien, mais vous ne devriez pas supprimer les deux lignes où il y a BUY et SELLSHORT:
// Définition des paramètres du code
DEFPARAM CumulateOrders = True // Cumul des positions désactivé
IF LongOnMarket Then
SELL AT tradeprice - (5 * pipsize) limit
ENDIF
IF ShortOnMarket then
EXITSHORT AT tradeprice + (5 * pipsize) limit
ENDIF
rsiPeriod=9
// Conditions pour ouvrir une position acheteuse
indicator1 = Average[9](RSI[rsiPeriod](close))
indicator2 = Average[15](RSI[rsiPeriod](close))
c1 = (indicator1[1] >= indicator2[1])
indicator3 = RSI[rsiPeriod](close)
c2 = (indicator3 <= 30)
// Conditions pour ouvrir une position en vente à découvert
indicator4 = Average[9](RSI[rsiPeriod](close))
indicator5 = Average[15](RSI[rsiPeriod](close))
c3 = (indicator4[1] <= indicator5[1])
indicator6 = RSI[rsiPeriod](close)
c4 = (indicator6 >= 70)
// Trade orders
IF c1 AND c2 THEN
BUY 1 CONTRACT AT MARKET
SELL AT tradeprice - (5 * pipsize) limit
ENDIF
IF c3 AND c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
EXITSHORT AT tradeprice + (5 * pipsize) limit
ENDIF
// TP
SET TARGET pPROFIT 20
SET STOP pLOSS 50
Sur quels outils et TF utilisez-vous cette stratégie?
Time frame 15 minutes et sur le pétrol brent.
Je viens de tester, cela ne marche pas. Je n’ai pas les mêmes résultats qu’en utilisant un stop loss standard.
Je ne comprends pas comment il peut y avoir une différence… un stop loss est bien un ordre limit non ? Où bien y’a-t-il un code magique dans la programmation de celui-ci ?
Le STOP LOSS est un ordre STOP, pas un ordre LIMIT.
Ca C’est le (deuxième) code modifié, utilisant une PERTE ARRÊT artificielle avec des ordres en attente.
Le commentaire dans le prochain message pour être en mesure de voir les numéros de ligne:
// Définition des paramètres du code
DEFPARAM CumulateOrders = false // Cumul des positions désactivé
IF LongOnMarket Then
SELL AT tradeprice - (5 * pipsize) stop
ENDIF
IF ShortOnMarket then
EXITSHORT AT tradeprice + (5 * pipsize) stop
ENDIF
rsiPeriod=9
// Conditions pour ouvrir une position acheteuse
indicator1 = Average[9](RSI[rsiPeriod](close))
indicator2 = Average[15](RSI[rsiPeriod](close))
c1 = (indicator1[1] >= indicator2[1])
indicator3 = RSI[rsiPeriod](close)
c2 = (indicator3 <= 30)
// Conditions pour ouvrir une position en vente à découvert
indicator4 = Average[9](RSI[rsiPeriod](close))
indicator5 = Average[15](RSI[rsiPeriod](close))
c3 = (indicator4[1] <= indicator5[1])
indicator6 = RSI[rsiPeriod](close)
c4 = (indicator6 >= 70)
// Trade orders
IF c1 AND c2 THEN
BUY 1 CONTRACT AT MARKET
SELL AT close - (5 * pipsize) stop
ENDIF
IF c3 AND c4 THEN
SELLSHORT 1 CONTRACT AT MARKET
EXITSHORT AT close + (5 * pipsize) stop
ENDIF
// TP
SET TARGET pPROFIT 20
//SET STOP pLOSS 50
Ca marche!
Lorsque le stop loss est commenté, cela fonctionne. Alors pourquoi lorsque je mets le stop loss, la stratégie de marche plus, il doit y avoir un problème avec tous les ordres…
J’ai commenté sur la ligne 37 parce que ce n’est pas nécessaire, puisque vous utilisez un Stop Loss artificiel avec des ordres en attente.
J’ai changé les ordres en attente, de LIMIT à STOP. Les ordres LIMIT sont utilisés pour acheter ou vendre à un prix plus favorable, tandis que les ordres STOP pour acheter ou vendre à un prix moins favorable. Le STOP LOSS n’est pas du tout favorable!
Aux lignes 27 et 32 je mets CLOSE parce que c’est, plus ou moins, le prix d’entrée sur le marché, alors que sur les lignes 4 et 7 je mets TRADEPRICE parce qu’à la barre suivante c’est la bonne référence. Je pense que immédiatement après BUY ou SELLSHORT ProOrder n’est pas immédiatement en mesure de retourner le bon prix avec TRADEPRICE, j’ai remarqué que maintenant les 5 pips STOP sont respectés, d’abord non!
Je l’ai essayé sur le DAX en 10 minutes et aussi sur le Brent en 15 minutes. Il me semble que cela fonctionne bien.
Bonne nuit, je vais dormir!
Aux lignes 27 et 32 je mets CLOSE parce que c’est, plus ou moins, le prix d’entrée sur le marché, alors que sur les lignes 4 et 7 je mets TRADEPRICE parce qu’à la barre suivante c’est la bonne référence. Je pense que immédiatement après BUY ou SELLSHORT ProOrder n’est pas immédiatement en mesure de retourner le bon prix avec TRADEPRICE, j’ai remarqué que maintenant les 5 pips STOP sont respectés, d’abord non!
C’est ce que Nicolas avait dit dans son post https://www.prorealcode.com/topic/traduire-code-pine-script-vers-prorealtime/#post-70500.
Mon broker requiert un minimum de 50 points pour mettre un stop loss lorsque l’on prend un trade. C’est pour cela que je cherche à faire un stop loss artificiel de 5 points (ma quantité désirée). Pensez-vous qu’en utilisant ‘stop’ et non ‘limit’ cela va outrepasser le minimum de 50 ?