En reprenant le code que t’a gentiment fait Magifina, on pourrait les placer ainsi :
DEFPARAM Cumulateorders=false
// Visualisation des fractales avec flèches
Arrow = 0
// Nombres de bougies constituant la fractale (impair)
// libre à vous de changer ce nombre, qui doit être impair
Ncandles = 4
// Nombres de bougies de chaque côté de la bougie extrême
Nside = (Ncandles) / 2
// Définition de la fractale supérieure
IF high[Nside] >= highest[Ncandles](high) THEN
//Fup = high[Nside]
Arrow = 1
buylevel = high[Nside]
ENDIF
// Définition de la fractale inférieure
IF low[Nside] <= lowest[Ncandles](low) THEN
//Fdown = low[Nside]
Arrow = -1
selllevel = low[Nside]
ENDIF
// Tracé des flèches
IF Arrow = 1 THEN
BUY 1 CONTRACT AT buylevel stop
ENDIF
IF //rajoute ici ta condition de sortie de position long// THEN
SELL AT MARKET
ENDIF
IF Arrow = -1 THEN
SELLSHORT 1 CONTRACT AT selllevel stop
ENDIF
IF //rajoute ici ta condition de sortie de position short// THEN
EXITSHORT AT MARKET
ENDIF
Je n’ai pas testé dans la plateforme, à vérifier.
The code is invalid, i get syntax error….
@mbappe
…Merci d’écrire en français dans un sujet rédigé en français 🙂
En effet, il y a des erreurs de syntaxe, cela dépend des conditions de sorties que tu souhaites y ajouter, donc faire un peu de programmation. Sinon dans le genre tout cuit, on aurait :
DEFPARAM Cumulateorders=false
// Visualisation des fractales avec flèches
Arrow = 0
// Nombres de bougies constituant la fractale (impair)
// libre à vous de changer ce nombre, qui doit être impair
Ncandles = 4
// Nombres de bougies de chaque côté de la bougie extrême
Nside = (Ncandles) / 2
// Définition de la fractale supérieure
IF high[Nside] >= highest[Ncandles](high) THEN
//Fup = high[Nside]
Arrow = 1
buylevel = high[Nside]
ENDIF
// Définition de la fractale inférieure
IF low[Nside] <= lowest[Ncandles](low) THEN
//Fdown = low[Nside]
Arrow = -1
selllevel = low[Nside]
ENDIF
// Tracé des flèches
IF Arrow = 1 THEN
BUY 1 CONTRACT AT buylevel stop
ENDIF
IF //rajoute ici ta condition de sortie de position long// THEN
SELL AT MARKET
ENDIF
IF Arrow = -1 THEN
SELLSHORT 1 CONTRACT AT selllevel stop
ENDIF
IF //rajoute ici ta condition de sortie de position short// THEN
EXITSHORT AT MARKET
ENDIF
Donc ici, ce sera uniquement un ordre inverse qui fermera le précédent et ainsi de suite.
Bonjour, Merci de votre aide Nicolas je début en programmation du coup c’est un peut difficile pour moi.
je souhaiterais aussi rajouter un TP qui ce place sur le point pivot le plus proche dans le sens du marché.
Je pense qu’il faut faire une boucle pour analyse la distance des pivot mais je sais pas comment la construire….
J’avais justement un petit snippet à ce propos sous la main, à tester en profondeur, j’ai fais ça rapidement :
DEFPARAM Cumulateorders=false
// Visualisation des fractales avec flèches
Arrow = 0
// Nombres de bougies constituant la fractale (impair)
// libre à vous de changer ce nombre, qui doit être impair
Ncandles = 4
// Nombres de bougies de chaque côté de la bougie extrême
Nside = (Ncandles) / 2
// Définition de la fractale supérieure
IF high[Nside] >= highest[Ncandles](high) THEN
//Fup = high[Nside]
Arrow = 1
buylevel = high[Nside]
ENDIF
// Définition de la fractale inférieure
IF low[Nside] <= lowest[Ncandles](low) THEN
//Fdown = low[Nside]
Arrow = -1
selllevel = low[Nside]
ENDIF
//compute takeprofit based on pivot points
Ht = DHigh(1)
Bs = DLow(1)
C = DClose(1)
Pivot = (Ht + Bs + C) / 3
Res3 = Res1 + (Ht - Bs)
Res2 = Pivot + Ht - Bs
Res1 = (2 * Pivot) - Bs
Sup1 = (2 * Pivot) - Ht
Sup2 = Pivot - (Ht - Bs)
Sup3 = Sup1 - (Ht - Bs)
if close>pivot then
//** above Pivot **
i=1
while i<=3 do
if i=1 then
floor=pivot
ceil=res1
if close>floor and close<ceil then
break
endif
elsif i=2 then
floor=res1
ceil=res2
if close>floor and close<ceil then
break
endif
elsif i=3 then
floor=res2
ceil=res3
if close>floor and close<ceil then
break
endif
endif
i=i+1
wend
elsif close<pivot then
//** below Pivot **
i=1
while i<=3 do
if i=1 then
floor=sup1
ceil=pivot
if close>floor and close<ceil then
break
endif
elsif i=2 then
floor=sup2
ceil=sup1
if close>floor and close<ceil then
break
endif
elsif i=3 then
floor=sup3
ceil=sup2
if close>floor and close<ceil then
break
endif
endif
i=i+1
wend
endif
// Tracé des flèches
IF Arrow = 1 and not longonmarket THEN
BUY 1 CONTRACT AT buylevel stop
sell at ceil limit
ENDIF
IF Arrow = -1 and not shortonmarket THEN
SELLSHORT 1 CONTRACT AT selllevel stop
exitshort at floor limit
ENDIF
if longonmarket then
sell at ceil limit
endif
if shortonmarket then
exitshort at floor limit
endif
graph floor coloured(0,200,200)
graph ceil coloured(200,0,0)
La stratégie est presque toujours au marché, puisqu’on prend chaque cassure de fractals. Par ailleurs il n’y a pas de stoploss.
Bonjour, toujour sur mon bot je suis arriver a l’etape de faire un trailing stop qui ce déplace a chaque nouvelle fractals qui s’affiche mais prt ne le prend jamais en compte est ce que vous pourriez m’aider ?
Le but etant que a l’achat par exemple le stop ce place sur la dernière fractals présente et remonte de fractals en fractals.
merci d’avance pour votre aide. 🙂
Je vous met mon code en piece jointe prt ne le prend pas en compte si vous pouviez me corriger ce serait super.
merci.
l’instruction SET STOP LOSS ne prend pas un prix mais une taille, voilà le problème.
Bonjour, merci de votre aide, j’ai un nouveau probleme le bot, ne trade presque pas je ne comprend pas pourquoi… je fais mes test sur le DJ 15M .
// config
DEFPARAM CumulateOrders = false
defparam flatafter = 220000
defparam flatbefore = 090000
// Variables
//Tenkan = (highest[9](high)+lowest[9](low))/2
Kijun = (highest[26](high)+lowest[26](low))/2
av1 = Average[100](close)
av2 = average[200](close)
Ncandles = 4
Nside = (Ncandles)/2
// Conditions pour ouvrir une position acheteuse
IF high[Nside] >= highest[Ncandles](high) THEN
if close > kijun then
if av2 < close then
buy 1 contract at high[Nside] stop
endif
endif
endif
// Conditions pour fermer une position acheteuse
if close < av1 then
SELL at market
endif
//
// Conditions pour ouvrir une position en vente à découvert
IF low[Nside] <= lowest[Ncandles](low) THEN
if close < kijun then
if av2 > close then
sellshort 1 contract at low[Nside]stop
endif
endif
endif
// Conditions pour fermer une position en vente à découvert
if close > av1 then
exitshort at market
endif
// gestion du stop loss et pertes
set stop %loss 1
set target pprofit 50
trailingstart = 20 //trailing will start @trailinstart points profit
trailingstep = 10 //trailing step to move the "stoploss"
IF NOT ONMARKET THEN
newSL=0
ENDIF
IF LONGONMARKET THEN
//first move (breakeven)
IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
newSL = tradeprice(1)+trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
newSL = newSL+trailingstep*pipsize
ENDIF
ENDIF
IF SHORTONMARKET THEN
//first move (breakeven)
IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
newSL = tradeprice(1)-trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
newSL = newSL-trailingstep*pipsize
ENDIF
ENDIF
IF newSL>0 THEN
SELL AT newSL STOP
EXITSHORT AT newSL STOP
ENDIF
Bonsoir Moustiks,
En complément des instructions d’entrée en position “buy” ou “sellshort” tu dois rajouter tes conditions de sortie. L’instruction “return” est également à retirer car elle est réserver aux indicateurs.
Pour terminer ton code je rajouterai en première ligne “defparam cumulateorders=false” pour éviter la cumulation d’ordres.
Je te propose donc le code suivant:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
DEFPARAM Cumulateorders=false
// Visualisation des fractales avec flèches
Arrow = 0
// Nombres de bougies constituant la fractale (impair)
// libre à vous de changer ce nombre, qui doit être impair
Ncandles = 4
// Nombres de bougies de chaque côté de la bougie extrême
Nside = (Ncandles) / 2
// Définition de la fractale supérieure
IF high[Nside] >= highest[Ncandles](high) THEN
//Fup = high[Nside]
Arrow = 1
ENDIF
// Définition de la fractale inférieure
IF low[Nside] <= lowest[Ncandles](low) THEN
//Fdown = low[Nside]
Arrow = –1
ENDIF
// Tracé des flèches
IF Arrow = 1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF //rajoute ici ta condition de sortie de position long// THEN
SELL AT MARKET
ENDIF
IF Arrow = –1 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
IF //rajoute ici ta condition de sortie de position short// THEN
EXITSHORT AT MARKET
ENDIF
|
Bonjour
Je suppose que ce robot trade les cassures de niveaux de fractales? Est ce qu il met directement un ordre d achat au depassement de la fractale ou a la bougie suivante,moi je prefererais directement a la cassure si c possible
Je voudrais inserer au bon endroit dans ce code un breakeven de 8 points
un stoploss de 25 points
un takeprofit de 25 points
comme code de sortie de position
Merci d avance
Sandro
Bonsoir Moustiks,
En complément des instructions d’entrée en position “buy” ou “sellshort” tu dois rajouter tes conditions de sortie. L’instruction “return” est également à retirer car elle est réserver aux indicateurs.
Pour terminer ton code je rajouterai en première ligne “defparam cumulateorders=false” pour éviter la cumulation d’ordres.
Je te propose donc le code suivant:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
DEFPARAM Cumulateorders=false
// Visualisation des fractales avec flèches
Arrow = 0
// Nombres de bougies constituant la fractale (impair)
// libre à vous de changer ce nombre, qui doit être impair
Ncandles = 4
// Nombres de bougies de chaque côté de la bougie extrême
Nside = (Ncandles) / 2
// Définition de la fractale supérieure
IF high[Nside] >= highest[Ncandles](high) THEN
//Fup = high[Nside]
Arrow = 1
ENDIF
// Définition de la fractale inférieure
IF low[Nside] <= lowest[Ncandles](low) THEN
//Fdown = low[Nside]
Arrow = –1
ENDIF
// Tracé des flèches
IF Arrow = 1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF //rajoute ici ta condition de sortie de position long// THEN
SELL AT MARKET
ENDIF
IF Arrow = –1 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
IF //rajoute ici ta condition de sortie de position short// THEN
EXITSHORT AT MARKET
ENDIF
|
Bonjour
Je suppose que ce robot trade les cassures de niveaux de fractales? Est ce qu il met directement un ordre d achat au depassement de la fractale ou a la bougie suivante,moi je prefererais directement a la cassure si c possible
Je voudrais inserer au bon endroit dans ce code un breakeven de 8 points
un stoploss de 25 points
un takeprofit de 25 points
comme code de sortie de position
Merci d avance
Sandro
Rebonjour,
Y a t il un service payant pour que quelqun m adapte un peu le code , en trading manuel je suis satisfait mais pas envie de passer des heures devant l écran. En plus je voulais voir si sur le long terme c est viable………..
Encore merci 🙂
pour le stop SET STOP pLOSS 25
SET TARGET PPROFIT 25
et le break je regarderais demain soir
il faut modifier la variable distance qui donne le signal pour mettre le BE a 8 pts
on peut utiliser la variable breakeven aussi ,mais pour la compréhension voici comment on écrivait avant
en bas j’ai un graph qui vous dit ou est le breakeven
DEFPARAM Cumulateorders=false
// Visualisation des fractales avec flèches
Arrow = 0
// Nombres de bougies constituant la fractale (impair)
// libre à vous de changer ce nombre, qui doit être impair
Ncandles = 4
// Nombres de bougies de chaque côté de la bougie extrême
Nside = (Ncandles) / 2
// Définition de la fractale supérieure
IF high[Nside] >= highest[Ncandles](high) THEN
//Fup = high[Nside]
Arrow = 1
ENDIF
// Définition de la fractale inférieure
IF low[Nside] <= lowest[Ncandles](low) THEN
//Fdown = low[Nside]
Arrow = -1
ENDIF
//========condition==========
// Tracé des flèches
IF Arrow = 1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF Arrow = -1 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
SET STOP PLOSS 25
SET TARGET PPROFIT 25
//==========breakeven
distance=30*pointsize
BE=8*pointsize
if not onmarket then
breakev=0
endif
if longonmarket and close-tradeprice>distance then
breakev=tradeprice+BE
endif
if shortonmarket and tradeprice-close<distance then
breakev=tradeprice-BE
endif
if breakev>0 then
sell at breakev stop
exitshort at breakev stop
endif
//=============ARRET=======
//IF //rajoute ici ta condition de sortie de position long// THEN
//
//SELL AT MARKET
//
//ENDIF
//
//IF //rajoute ici ta condition de sortie de position short// THEN
//
//EXITSHORT AT MARKET
//
//ENDIF
graph breakev