hello!
I am trying to test a simple algo triggering a position when an index cross the Kijun line. When I backtest my code, no trades appear whereas I should have some!
here is a code. can someone kindly help me?
Edit par modérateurs: Sujet initialement écrit en Anglais mais posté dans forum français. Svp il faut s’exprimer dans la langue du forum choisi, cf règles du forum dans l’encart jaune en bas de page, merci. Le sujet ayant attiré des réponses en Français, plutôt que de tout déplacer et tout traduire, c’est le post d’en-tête qui est converti en Français via cet edit.
” Bonjour ! J’essaie de tester un algorithme simple qui déclenche une position lorsqu’un indice franchit la ligne Kijun. Lorsque je backteste mon code, aucune transaction n’apparaît alors qu’il devrait y en avoir ! Voici un code. Quelqu’un pourrait-il m’aider ? “
// Paramètres
//PeriodKijun = 26 // Période de la Kijun-Sen (standard Ichimoku, modifiable)
CooldownPeriod = 10 // Nombre de périodes (M15) pour bloquer les nouveaux trades
TakeProfit = 20 // Take profit en points
StopLoss = 40 // Stop loss en points
// Calcul de la Kijun-Sen
//HighestHigh = HIGHEST[PeriodKijun](High)
//LowestLow = LOWEST[PeriodKijun](Low)
//Kijun = (HighestHigh + LowestLow) / 2
// Détection du toucher par le haut (indice baisse)
TouchCondition = (Close[1] > KijunSen[9,26,52] AND Close <= KijunSen[9,26,52])
// Gestion du cooldown (blocage des trades répétés)
IF TouchCondition THEN
CooldownCounter = CooldownPeriod // Active le compteur à 10 périodes
ELSE
IF CooldownCounter > 0 THEN
CooldownCounter = CooldownCounter - 1 // Décrémente le compteur
ENDIF
ENDIF
// Condition d'entrée : achat si toucher + pas de cooldown
IF TouchCondition AND CooldownCounter = 0 AND NOT ONMARKET THEN
BUY 1 CONTRACT AT MARKET // Ouvre une position longue
ENDIF
// Gestion des sorties
IF ONMARKET THEN
SET TARGET PPROFIT TakeProfit // Take profit de 20 points
SET STOP PLOSS StopLoss // Stop loss de 40 points
ENDIF
Que signifient > et < dans les lignes 13 et 19 ?
Peut-être que le traducteur joue des tours? 🙂
Ci-dessous, les échanges sont acceptés, cela a donc quelque chose à voir avec votre « compteur de temps de recharge »
SI TouchCondition ET Pas SUR LE MARCHÉ Alors // ET CooldownCounter = 0 ALORS
ACHETER 1 CONTRAT AU MARCHÉ // Ouvre une position longue
FINIF
Essayez ceci …
// Paramètres
//PeriodKijun = 26 // Période de la Kijun-Sen (standard Ichimoku, modifiable)
CooldownPeriod = 10 // Nombre de périodes (M15) pour bloquer les nouveaux trades
TakeProfit = 20 // Take profit en points
StopLoss = 40 // Stop loss en points
// Calcul de la Kijun-Sen
//HighestHigh = HIGHEST[PeriodKijun](High)
//LowestLow = LOWEST[PeriodKijun](Low)
//Kijun = (HighestHigh + LowestLow) / 2
// Détection du toucher par le haut (indice baisse)
TouchCondition = (Close[1] < KijunSen[9,26,52] AND Close > KijunSen[9,26,52])
// Gestion du cooldown (blocage des trades répétés)
IF TouchCondition THEN
CooldownCounter = CooldownPeriod // Active le compteur à 10 périodes
ELSE
IF CooldownCounter > 0 THEN
CooldownCounter = CooldownCounter - 1 // Décrémente le compteur
ENDIF
ENDIF
// Condition d'entrée : achat si toucher + pas de cooldown
IF TouchCondition AND CooldownCounter > 0 AND Not ONMARKET THEN
BUY 1 CONTRACT AT MARKET // Ouvre une position longue
ENDIF
// Gestion des sorties
IF ONMARKET THEN
SET TARGET PPROFIT TakeProfit // Take profit de 20 points
SET STOP PLOSS StopLoss // Stop loss de 40 points
ENDIF
Bonjour et bienvenue sur ProRealCode,
Ce sujet est déplacé du forum “support plateforme” au forum “support proorder”, dédié aux backtests et stratégies auto. Pour une navigation facilitée, que ce soit pour retrouver des messages déplacés ou pour en créer de nouveaux, voici la iste des forums classés par langage et par thèmes:
https://www.prorealcode.com/forums/
Une fois choisie la langue et le thème, on peut cliquer dans cette liste sur le forum approprié, puis la boite d’édition de messages en bas de la liste de messages du forum choisi créera automatiquement le nouveau sujet dans ce même forum.
Si un message a été déplacé car initialement posté dans le mauvais forum, on peut le retrouver plus facilement depuis sa fiche profil quel que soit le nouvel emplacement du message, dans les onglets “forum topics” et/ou “forum replies”:
https://www.prorealcode.com/user/francois517375014/?view=forums-topics
Thanks Grahal!
I am wondering wether I could base my condition on the 15 mn Kijun for example but on a close at a tick or second scale? it must be computationnally difficult for a backtest I guess?
Merci Grahal !
Je me demande si je pourrais baser ma condition sur la Kijun à 15 minutes par exemple, mais sur une clôture à l’échelle d’un tick ou d’une seconde ? Cela doit être difficile à calculer pour un backtest, je suppose ?
@francois517375014
Comme JC_Bywan l’a expliqué, dans ce forum français, vous devez écrire en français, s’il vous plaît. Merci 🙂
Dans le trading automatisé, il n’est pas possible d’utiliser d’autres intervalles de temps que les intervalles de temps (par exemple TICK).
Cependant, en plus du délai de 15 minutes, vous pouvez utiliser le délai de 1 seconde pour être plus ponctuel.
ou proche à la deuxième échelle ?
Si vous incluez ci-dessous dans votre code, les ordres en attente (pLoss, pProfit dans l’instruction If d’entrée de transaction ) se déclencheront dès que les valeurs seront atteintes… ce qui peut prendre quelques secondes après l’entrée de transaction (ou quelques minutes ou heures… selon les valeurs « p » que vous définissez).
IF TouchCondition AND CooldownCounter > 0 AND Not ONMARKET THEN
BUY 1 CONTRACT AT MARKET
SET TARGET PPROFIT TakeProfit
SET STOP PLOSS StopLoss
ENDIF
désolé Roberto et merci Grahal! je vais essayer
en effet le prix d’exécution est assez aléatoire 🙁
Prix d’exécution d’entrée ou de sortie ?
Vous pouvez demander à ChatGPT de configurer la fonction GRAPH pour vous permettre de vérifier si le prix d’exécution est aléatoire.
le prix d’exécution d’entrée…
Que voyez-vous qui vous fait penser que le prix d’entrée est aléatoire, postez une capture d’écran de ce que vous voyez pour nous aider à vous aider ?