debeuguer mon code “echec MACD”
Forums › ProRealTime forum Français › Support ProOrder › debeuguer mon code “echec MACD”
- This topic has 4 replies, 4 voices, and was last updated 5 months ago by bertrandpinoy.
-
-
06/14/2024 at 5:13 PM #233873
Bonsoir, pouvez-vous aidez a debeuguer la ligne 7?
// Définir les paramètres du MACD
shortPeriod = 12
longPeriod = 26
signalPeriod = 9// Calculer les valeurs du MACD et de la ligne de signal
macdLine = ExponentialAverage[close, shortPeriod] – ExponentialAverage[close, longPeriod]
signalLine = ExponentialAverage[macdLine, signalPeriod]// Critère d’échec vendeur : MACD est négatif et croise au-dessus de la ligne de signal
isBearishFailure = (macdLine < 0 AND macdLine > signalLine AND macdLine[1] <= signalLine[1])// Affichage des indicateurs sur le graphique
RETURN macdLine AS “MACD Line”, signalLine AS “Signal Line”, isBearishFailure AS “Bearish Failure”06/14/2024 at 6:49 PM #233876Salut,
Le MACD est un indicateur standard dans PRT, vous pouvez donc utiliser:
xMACD=MACD[12,26,9](Close)
xMACDLine=MACDLine[12,26,9](Close)
Si vous voulez faire le calcul vous-même :
xMACD=Average[12,1](Close)-Average[26,1](Close)
xMACDLine=Average[9,1](xMACD)
Signaux associés :
xMACD crosses over xMACDLine est un signal « haussier »
xMACD crosses under xMACDLine est un signal « baissier »
06/14/2024 at 7:15 PM #233877‘macdLine’ est un mot-clé indicateur, surligné en vert comme le mot-clé ‘ExponentialAverage’, et ne peut pas être utilisé comme nom de variable générale.
L’action corrective consiste à renommer toutes les instances de cette variable avec un nom différent non conflictuel.
En résolvant cela, l’erreur suivante est le format des instructions ExponentialAverage, dont les paramètres suivent le format [period](type).
Voici le code que j’ai utilisé pour le déboguer.
1234567891011121314shortPeriod = 12longPeriod = 26signalperiod = 9lineMacd = ExponentialAverage[shortPeriod](close) - ExponentialAverage[longPeriod](close)lineSignal = ExponentialAverage[signalPeriod](lineMacd)if (lineMacd < 0) AND (lineMacd > lineSignal) AND (lineMacd[1] <= lineSignal[1]) thenisBearishFailure = 0drawVline(barindex) style(dottedline,1)endifreturn lineMacd AS "MACD", lineSignal AS "Signal", isBearishFailure AS "Bearish Failure"06/14/2024 at 7:38 PM #233879Merci à JS et Druby pour leur aide, je rajouterais qu’une fois que tu auras corrigé le code avec leurs suggestions, si tu l’insères dans la même fenêtre, tu tomberas sans doute sur une nouvelle erreur pour la ligne return… non pas qu’elle soit buggué, mais parce que tu as mis par inadvertance ce code d’indicateur dans une fenêtre proorder pour système de trading automatique au lieu d’une fenêtre d’édition de code d’indicateur.
06/15/2024 at 8:55 AM #233890Merci a tous pour l’aide. Bon W-end.
-
AuthorPosts