Bonjour, j’ai fait un petit indicateur qui reprend la théorie de DOW (hausse = les plus hauts et les plus bas de plus en plus hauts, baisse = les plus hauts et les plus bas de plus en plus bas).
ONCE baisseOUhausse=0
ONCE PeriodHausse=nbperiodhausse
ONCE PeriodBaisse=nbperiodBasse
ONCE PeriodCurvHauteBaisse=nbperiodHB
ONCE PeriodCurvBasseHausse=0
PlusHautBaisse=highest[PeriodCurvHauteBaisse](high)
// baisseOUhausse des plus bas
if baisseOUhausse=1 AND low crosses under CourbePlusBas then
baisseOUhausse=0
PeriodBaisse = 1
Position=-1
endif
// baisseOUhausse de la courbe des plus hauts par le cours => HAUSSE
if baisseOUhausse=0 AND high crosses over CourbePlusHaut then
baisseOUhausse = 1
// recherche du dernier plus haut
PeriodHausse = 0
PeriodCurvBasseHausse = 0
Position=1
endif
if baisseOUhausse=0 then
CourbePlusHaut = PlusHautBaisse
if PeriodBaisse < nbperiodBasse then
PeriodBaisse = PeriodBaisse + 1
endif
CourbePlusBas = lowest[PeriodBaisse](low)
else
if PeriodHausse < nbperiodhausse then
PeriodHausse = PeriodHausse + 1
endif
CourbePlusHaut = highest[PeriodHausse](high)
if PeriodCurvBasseHausse < nbperiodBasse then
PeriodCurvBasseHausse = PeriodCurvBasseHausse + 1
endif
CourbePlusBas = lowest[PeriodCurvBasseHausse](low)
endif
return Position
J’ai fait ensuite un programme proOrder pour voir ce que ça donne.
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
indicator1 = CALL "0-bb-Dow"[42,22,10]
c1 = (indicator1 = 1)
IF c1 THEN
EXITSHORT AT MARKET
BUY 1 CONTRACT AT MARKET
ENDIF
// Conditions pour ouvrir une position en vente à découvert
c2 = (indicator1 = -1)
IF c2 THEN
SELL AT MARKET
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
graph indicator1
J’ai un bug sur ProOrder sur plusieurs indices dont le DAX 1min pour la période du 19/06/2020 de 7h15 à 8h40 sur l’indicator1 mais aussi sur les autres variables de l’indicateur (ex : CourbePlusBas).
ProOrder ne donne pas la même valeur que l’indicateur (voir image jointe).
J’ai fait le test de remplacer le CALL par mon indicateur dans ma stratégie, mais le problème persiste.
Est-ce que quelqu’un pourrait m’aider ?
Merci d’avance
Tof
Vérifier ces éléments dans cet ordre :
- ajouter un “defparam preloadbars = 0” en tête de code du système ProOrder pour éviter que celui-ci commence à calculer ses points hauts et bas avant l’historique visible
- vérifier que les paramètres (périodes) de l’indicateur attacher au graphique sont les mêmes que ceux utiliser dans le code ProBacktest
- vérifier qu’il n’y a pas d’utilisation d’horaires de trading personnalisés pour cet instrument
Bonjour Nicolas,
Merci pour votre aide.
1 / ajout du defparam preloadbars = 0 => n’a pas changé le problème, toujours une différence entre l’indicateur et la variable lue pour le backtest !
2 / paramètres identiques dans les deux cas (pour l’indicateur (42 22 10) et pour le backtest, idem)
3 / je n’utilise pas d’horaires de trading pour cet instrument. J’ai regardé sur un autre vendredi que le 19/06 et je n’ai pas le même soucis.
C’est quand même pas mal inquiétant qu’il y ai ce genre de problème surtout pour du trading auto.
Nicolas, j’ai attaché mon indicateur sur prix de la théorie de DOW à cette réponse, si tu penses que ça peut être intéressant pour d’autres personnes
As-tu essayé d’éviter le CALL et d’inclure le code de l’indicateur directement dans ta stratégie ?
Oui, je l’ai déjà fait et ça ne change pas le problème. Il me semble qu’il y a un réel problème de backtest avec cette date du 19/06/20 sur la même plage horaire (7h15 à 8h40) car j’ai le même problème sur un autre indicateur.
Pourriez-vous juste regarder si vous rencontrez le même problème sur un de vos indicateurs, si ce n’est pas trop demandé ? Je vous remercie déjà pour le temps que vous prenez à me répondre.