Bonsoir,
je suis chez IG et donc depuis peu sous la version 11.1.
je voudrai un screener qui identifie les changements de direction de la kama 200 (donc 200 périodes) de la façon suivante : la kama actuelle clôture au dessus de la kama précédente et la kama précédente clôturait en dessous de la kama qui lui était précédente.
j’ai codé à l’aide de l’éditeur de prorealtime le seriner (joint) mais les résultats renvoyés ne me paraissent pas correspondre à la réalité (ex = aujourd’hui vendredi – les marchés sont fermés – le screener me renvoie un changement de kama sur le brent alors que sur mon graphique il n’y en a pas. Par contre, sur mon graphique, j’aurai un changement de kama (haussière) sur le GBP/AUD et mon screener ne me l’identifie pas.
Quelqu’un aurait il une idée sur le sujet?
merci.
Merci de partager le code du screener. Il me semble que vous avons déjà discuté de cet indicateur qui a besoin de plus de 254 unités pour se calculer correctement et comme tu le sais c’est la limite de l’historique de ProScreener.
/////////////////////////////// Paramètres KAMA 200
indicator1 = CALL "KAMA 200"[200, 2, 30]
ReturnDailyKAMAUp = (indicator1 > indicator1[1]) and (indicator1[1] < indicator1[2]) and (indicator1[2] < indicator1[3]) and(indicator1[3] < indicator1[4]) and(indicator1[4] < indicator1[5]) and (indicator1[5] < indicator1[6]) and(indicator1[6] < indicator1[7]) and(indicator1[7] < indicator1[8]) and(indicator1[8] < indicator1[9])
ReturnDailyKAMADn = (indicator1 < indicator1[1]) and (indicator1[1] > indicator1[2]) and (indicator1[2] > indicator1[3]) and(indicator1[3] > indicator1[4]) and(indicator1[4] > indicator1[5]) and(indicator1[5] > indicator1[6]) and(indicator1[6] > indicator1[7]) and(indicator1[7] > indicator1[8]) and(indicator1[8] > indicator1[9])
screener [returnDailyKAMAUp or ReturnDailyKAMADN]
Bonsoir,
oui nous avons déjà échangé sur ce sujet mais je pensai que la version V11.1 offrait plus de possibilité sur ce sujet. j’ai mis le nombre d’unités à 300.
Qu’en pensez vous ? merci d’avance.
Bonjour, je me permets de remonter mon post. la moyenne mobile kama 200 utilise 200 unités donc en toute logique le screener devrait me retourner les changements de sa tendance non ?
merci.
Cela dépend du mode de calcul de la moyenne mobile, cependant tu as raison ça devrait fonctionner dans le cas présent. J’ai résumé les 2 codes dans un code de screener :
// parameters :
Period = 200
FastPeriod = 2
SlowPeriod = 30
Fastest = 2 / (FastPeriod + 1)
Slowest = 2 / (SlowPeriod + 1)
if barindex < Period+1 then
Kama=close
else
Num = abs(close-close[Period])
Den = summation[Period](abs(close-close[1]))
ER = Num / Den
Alpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)
KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])
endif
indicator1=KAMA
/////////////////////////////// Paramètres KAMA 200
ReturnDailyKAMAUp = (indicator1 > indicator1[1]) and (indicator1[1] < indicator1[2]) and (indicator1[2] < indicator1[3]) and(indicator1[3] < indicator1[4]) and(indicator1[4] < indicator1[5]) and (indicator1[5] < indicator1[6]) and(indicator1[6] < indicator1[7]) and(indicator1[7] < indicator1[8]) and(indicator1[8] < indicator1[9])
ReturnDailyKAMADn = (indicator1 < indicator1[1]) and (indicator1[1] > indicator1[2]) and (indicator1[2] > indicator1[3]) and(indicator1[3] > indicator1[4]) and(indicator1[4] > indicator1[5]) and(indicator1[5] > indicator1[6]) and(indicator1[6] > indicator1[7]) and(indicator1[7] > indicator1[8]) and(indicator1[8] > indicator1[9])
screener [returnDailyKAMAUp or ReturnDailyKAMADN]
Je vais vérifier le pourquoi du comment et revenir avec des infos.
Le code de l’indicateur pour comparer :
// parameters :
Period = 200
FastPeriod = 2
SlowPeriod = 30
Fastest = 2 / (FastPeriod + 1)
Slowest = 2 / (SlowPeriod + 1)
if barindex < Period+1 then
Kama=close
else
Num = abs(close-close[Period])
Den = summation[Period](abs(close-close[1]))
ER = Num / Den
Alpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)
KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])
endif
indicator1=KAMA
/////////////////////////////// Paramètres KAMA 200
ReturnDailyKAMAUp = (indicator1 > indicator1[1]) and (indicator1[1] < indicator1[2]) and (indicator1[2] < indicator1[3]) and(indicator1[3] < indicator1[4]) and(indicator1[4] < indicator1[5]) and (indicator1[5] < indicator1[6]) and(indicator1[6] < indicator1[7]) and(indicator1[7] < indicator1[8]) and(indicator1[8] < indicator1[9])
ReturnDailyKAMADn = (indicator1 < indicator1[1]) and (indicator1[1] > indicator1[2]) and (indicator1[2] > indicator1[3]) and(indicator1[3] > indicator1[4]) and(indicator1[4] > indicator1[5]) and(indicator1[5] > indicator1[6]) and(indicator1[6] > indicator1[7]) and(indicator1[7] > indicator1[8]) and(indicator1[8] > indicator1[9])
//screener [returnDailyKAMAUp or ReturnDailyKAMADN]
return ReturnDailyKAMAUp,-ReturnDailyKAMADn
Bonsoir, testé à l’instant. ça ne renvoie pas les bonnes valeurs. Et c’est bien cet indicateur que j’utilise dans mes graphiques.
// parameters :
Period = 200
FastPeriod = 2
SlowPeriod = 30
Fastest = 2 / (FastPeriod + 1)
Slowest = 2 / (SlowPeriod + 1)
if barindex < Period+1 then
Kama=close
else
Num = abs(close-close[Period])
Den = summation[Period](abs(close-close[1]))
ER = Num / Den
Alpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)
KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])
endif
indicator1=KAMA
/////////////////////////////// Paramètres KAMA 200
ReturnDailyKAMAUp = (indicator1 > indicator1[1]) and (indicator1[1] < indicator1[2]) and (indicator1[2] < indicator1[3]) and(indicator1[3] < indicator1[4]) and(indicator1[4] < indicator1[5]) and (indicator1[5] < indicator1[6]) and(indicator1[6] < indicator1[7]) and(indicator1[7] < indicator1[8]) and(indicator1[8] < indicator1[9])
ReturnDailyKAMADn = (indicator1 < indicator1[1]) and (indicator1[1] > indicator1[2]) and (indicator1[2] > indicator1[3]) and(indicator1[3] > indicator1[4]) and(indicator1[4] > indicator1[5]) and(indicator1[5] > indicator1[6]) and(indicator1[6] > indicator1[7]) and(indicator1[7] > indicator1[8]) and(indicator1[8] > indicator1[9])
long=0
short=0
if ReturnDailyKAMAUp then
long=1
endif
if ReturnDailyKAMADn then
short=1
endif
signal=0
if long=1 then
signal=1
endif
if short=1 then
signal=-1
endif
// code proscreener d'exemple
SCREENER[long or short ](signal as "SIGNAL")
Bonjour,
ce code en journalier marche.
bonsoir, je viens de le tester à l’instant : en effet, il renvoie les valeurs (ex 9F Inc ou Innodata Inc) que le screener est censé identifier (testé sur le Shares – US Nasdaq). Par contre, il renvoie aussi des valeurs qu’ils ne devraient pas renvoyer (ex : Accelerate Diags Corp ou Vyne Therapeutics Inc).
Si vous voulez faire le test.
merci.
Bonsoir,
je me permets de remonter mon post. Merci pour une éventuelle explication
Bonne soirée.
Bonjour, je me permets de remonter mon post.
Merci d’y prêter de nouveau une attention.
Bon week-end.
Bonsoir à tous,
je me permets de remonter cette vieille demande qui reste d’actualité.
Est-ce que vous avez une idée du problème malgré les aides des uns et des autres?
Merci.
Testé sur NASDAQ et NYSE en daily, à 90% j’ai les bons retours. Je n’explique pas les cas où il n’y a pas de signal, hormis la différence d’historique et donc le calcul inhérent. Si tu veux une explication plus approfondie, je pense qu’il faudra passer par le support technique officiel pour une investigation plus poussée, merci.
oui. Bon je vais saisir le support technique officiel mais en tout cas merci.
Pour info, le test a été fait avec quel screener : le vôtre ou celui de fifi743 posté le 18 janvier ?
merci.