Bonjour Nicolas,
Tu trouveras ci-dessous mon indicateur qui vous les plus hauts du jours:
T=Time
T1=Time
plusHaut=Dhigh(0)
P=high
P1=high
if plusHaut = Dhigh(0) then
T=Time and P=plusHaut
endif
If T1>T then
if P1 = high then
T1=Time and P=P1
endif
endif
If T>T1 then
if P = high then
T=Time and P=max(P1,high)
endif
endif
RETURN P
Concernant le système de trading suivant (qui n’est pas de moi, je le teste pour voir comment ça marche), peux tu m’indiquer comment bien choisir dans le menu “tick par tick” car le résultat n’est pas identique ? Merci
DEFPARAM CumulateOrders=true
REM Achat
ONCE TimeStart =090000
ONCE TimeEnd =173000
once OrderSize=1
once ExitIndex=-2
OrderSize=round(200000/open)
condition1 = (Time >= TimeStart)
condition2 = (Time <=TimeEnd)
indicator1 = close
indicator2 = SuperTrend[3,10]
c1 = (indicator1 CROSSES OVER indicator2)
IF CONDITION1 AND CONDITION2 THEN
IF c1 THEN
BUY OrderSize SHARES AT MARKET
ENDIF
rem return ordersize
REM Vente
indicator3 = close
indicator4 = SuperTrend[3,10]
c2 = (indicator3 CROSSES UNDER indicator4)
IF c2 THEN
SELL AT MARKET
ExitIndex=BarIndex
ENDIF
SET TARGET pProfit 6
If BarIndex=ExitIndex+1 then
ExitIndex=0
If positionperf(1)<0 then
OrderSize=ordersize+1
else
OrderSize=1
EndIf
endif
endif
// Stops et objectifs
// Stops et objectifs
REM SET STOP pLOSS B
Bonjour Nicolas,
Concernant les algorithmes de trading, j’ai remarqué qu’après avoir lancé le backtest de celui-ci, les résultats P&L dépendent de la périodicité choisie dans le graphique. Ils sont en effet totalement différents suivants que l’on choisit 1seconde, 1minute, 5 minutes etc…
Comment être sur que son algorithme de trading trade bien sur la bonne période? par exemple 15 min?
Merci.
Il faut en effet toujours faire ses backtests en mode tick par tick pour être certain d’avoir bien vérifié toutes les valeurs de prix contenus dans une barre et qui pourraient impacter la performance de la stratégie.
Il est logique que les performances soient différentes d’un timeframe à un autre, puisque l’on ne traite pas les mêmes données. Dans la stratégie que tu as posté, l’indicateur SuperTrend se calcule sur 10 périodes (10 chandeliers), qui ne sont pas les mêmes si tu changes d’unité de temps et donc les informations diffèrent.
Lors de l’envoi de la stratégie dans le module de trading automatique ProOrder, il faudra choisir l’unité de temps approprié à la stratégie. Une fois la stratégie en cours de fonctionnement, il faudra l’arrêter complètement pour en changer.
Bonjour Nicolas,
J’ai besoin de tes lumières. Le code ci-dessous me permet d’obtenir un prix par rapport à son ouverture. Comment faire pour que la code s’arrête dès qu’il me l’a renvoyé une fois?
Merci
NbreDeBarres = IntradayBarIndex
PriceBarIndex = 0
Pricevalue=0
once p=open[0]
n=0.05
FOR i = NbreDeBarres downto 0 DO
IF close[i] > p*(1+(n/100)) THEN
PriceValue = close[i]
PriceBarIndex = i
p=open[i]
break
ENDIF
Next
return PriceBarIndex, Pricevalue
Simplement en ajoutant une condition pour que la recherche ne se fasse que si PriceValue=0
NbreDeBarres = IntradayBarIndex
once PriceBarIndex = 0
once Pricevalue=0
if PriceValue = 0 then
once p=open[0]
n=0.05
FOR i = NbreDeBarres downto 0 DO
IF close[i] > p*(1+(n/100)) THEN
PriceValue = close[i]
PriceBarIndex = i
p=open[i]
break
ENDIF
Next
endif
return PriceBarIndex, Pricevalue
Merci Nicolas mais PriceBarIndex=i=0 au lieu de me renvoyer le nombre d’intradaybarindex de ce prix.
Si tu prends mon code avant tes modifications, il me renvoie bien le nombre de barres pour chaque prix.
Nicolas, merci de me répondre dès que tu as 5min.
Merci de repréciser la demande, ça n’est pas très clair en effet. Le fait est que puisque le code est lu depuis le début de l’historique, alors l’indicateur ne fonctionnera qu’une seule fois au début de celui-ci, est-ce bien là le problème ?
il y a un nombre de barres (intradaybarindex) dans la journée. Il commence à 0 (ouverture de la cotation) et fini à plus de 400 (clôture de la cotation) par exemple. Je demande à mon code de prendre donc le prix d’ouverture et de me renvoyer ce prix * 0,05% dès qu’il est atteint( et en même temps le nombre de intradaybarindex pour ce même prix quand il est atteint. C’est ce que fait mon code mais il travaille en boucle et j’aimerai qu’il s’arrête dès que cette conditions est vérifiée. C’est pourquoi, ton retour est juste pour le prix mais le nombre de intradaybarindex pour ce même prix est toujours égal à 0.
J’ai modifié mon code en tenant compte de ta remarque, sauf que dans celui-ci, il me renvoie count qui ne se remet pas à 0 lorsque l’on passe à un autre jour.
NbreBarindex = IntradayBarIndex
once Count=0
once PriceBarIndex = 0
once Pricevalue=0
p=open[0]
n=0.1
For i=NbreBarindex downto 0 do
IF close[i] < p*(1+(n/100)) THEN
Count=Count+1
else
PriceValue = close[i]
PriceBarIndex = count
ENDIF
break
next
return PriceValue, PriceBarIndex
En fait, il y a deux mois, je t’avais demandé si il était possible d’avoir un prix à un horaire donnée, pouvait on le coder (je ne connaissais pas encore PRT). Aujourd’hui, mon objectif est toujours le même mais en utilisant Intradaybarindex. Si on veut par exemple un prix à 15 (même calculer par rapport à l’ouverture) alors qu’on ouvert à 10, alors il y a un nombre de barres entre ces deux prix (on était à 0 barre lorsque le prix était à 10 à l’ouverture et on est >0 barre à 15). J’essaie de déterminer ce nombre lorsque ce prix est atteint. Et enfin, je veux que mon code me renvoie ce prix et ce nombre de barre et s’arrête.
Il semblerait que la réponse à ma question soit dans cette file, si un bon génie pouvait m’aider, merci.
>>
Bonjour,
Comment récupérer la valeur du cours d’ouverture à une heure précise, sur un indice cotant en continu.
Et comment tracer un niveau à cette valeur sur la journée, même question sur la semaine et le mois, sans que la ligne ne dépasse l’UT considérée.
Et comment trouver la valeur max et la valeur mini durant la journée à partir de l’heure d’open que j’aurais choisi.
Exemple : J’ai besoin de la valeur d’ouverture à 8h pour mon indicateur et je souhaite tracer ce niveau sur mon graphe sur la durée de la journée.
Et tracer l’ouverture Hebdo sur la durée de la semaine, mais que le tracé ne se prolonge pas au delà de la semaine considérée.
Merci
Bonjour Nicolas,
Une petite question qui est lié au mode Probacktest Tick par Tick.
Mon algorithme de trading semble donner de très bon résultat en Probacktest et en Walk Forward, son taux de réussite est supérieur à 100% sur les périodes (5 au total). Mais en mode Tick par Tick, le Probacktest me renvoie un résultat négatif.
Penses tu que mon code fonctionnera en intraday malgré tout ou dois je le modifier ( c’est là la difficulté) pour que le Probacktest Tick par Tick soit positif?
Merci d’avance.
Bonsoir Nicolas,
Suite à mes précédents postes, j’ai surtout cherché des indicateurs pour le plus haut et le plus bas. Cependant, j’ai un but simple que je souhaite coder et qui est le suivant: acheter/vendre à un prix “borné” suivant l’orientation du prix (en hausse/en baisse) et vendre/racheter à un prix “borné”.
Tu trouveras mon code ci-dessous qui illustre ce que je souhaite faire:
DEFPARAM CumulateOrders=true
once Pex=open[0]
once i=1
Pa=Pex*(1+0.0002)
Pv=Pex*(1-0.0002)
P=close[i]
q=200000/close[0]
if Pex<P then
if P<=Pa then
i=i+1
P=close[i]
endif
if not longonmarket then
buy q lot at market
endif
Pex=tradeprice
Paa=Pex*(1+0.003)
if P<=Paa then
i=i+1
P=close[i]
endif
if longonmarket then
sell at market
endif
elsif Pex>P then
if P>=Pv then
i=i+1
P=close[i]
endif
if not shortonmarket then
sellshort q lot at market
endif
Pex=tradeprice
Pvv=Pex*(1-0.003)
if P>=Pvv then
i=i+1
P=close[i]
endif
if shortonmarket then
exitshort at market
endif
endif
Peux tu m’aider et même m’orienter (me corriger)?
Merci et bon week end.