Mauvais résultats en multi time frame
Forums › ProRealTime forum Français › Support ProScreener › Mauvais résultats en multi time frame
- This topic has 11 replies, 4 voices, and was last updated 1 year ago by Nicolas.
-
-
03/06/2023 at 8:09 PM #211010
Bonjour Nicolas,
Je n’arrive pas à trouver le bon comportement en multi timeframe. Par exemple, j’ai fais un test simple avec MACD Weekly et Daily, et quand j’analyse les résultats, j’ai quelques fois, des signaux d’achats alors qu’en Weekly le MACD est en baisse (MACD < Signal au lieu d’être >). J’ai beau regarder, mais je n’arrive pas à trouver l’erreur. Pouvez-vous m’aider, s’il vous plait ?. Je vous envois, ci-dessous, un code simple pour comprendre mon problème. Merci par avance :
123456789101112131415161718192021222324252627282930313233343536373839404142TIMEFRAME(WEEKLY)//---MACDZEROLAG WEEKLYMACDZEROLAGW = MACDline[12,26,9](close)SignalW = ExponentialAverage[9](MACDZEROLAGW)// Condition Achat WeeklycondAW = (MACDZEROLAGW[0] > SignalW[0])// Condition Vente WeeklycondVW = (MACDZEROLAGW[0] < SignalW[0])TIMEFRAME(DAILY)//---MACDZEROLAG DAILY--------------MACDZEROLAG = MACDline[12,26,9](close)Signal = ExponentialAverage[9](MACDZEROLAG)//----METASCORE----------------------------myMetaScore, ignored, ignored = CALL "MetaScore"[0,0,0](close)//-----------Conditions Achat DailycondAD = (MACDZEROLAG[0] > Signal[0]) and (myMetaScore[1] >= 80 and myMetaScore > myMetaScore[1])//-----------Conditions Vente DailycondVD = (MACDZEROLAG[0] < Signal[0]) and (myMetaScore[1] <= 70 and myMetaScore < myMetaScore[1])TIMEFRAME(Default)// Paramètre diversc10 = volume[0] > volume[1] and volume >=1000000c20 = close[0] >= 50 and close[0] <= 200//---Signal AchatSignal = 0IF condAW and condAD and c10 and c20 THENSignal = 1ELSIF condVW and condVD and c10 and c20 THENSignal = 2ENDIFSCREENER[Signal](Signal AS "1=↑, 2=↓")03/07/2023 at 10:16 AM #211031Il y a bien “signal” qui est utilisé 2 fois pour 2 choses différentes (en ligne 17 comme signal pour macd et en lignes 35-42 comme signal en guise de critère), mais comme il est remis à zéro en ligne 35 le double usage sur ce même nom de variable ne devrait pas poser d’erreur…
Impossible à tester car faisant call d’un indic inconnu. Donc difficile de voir au-delà éventuellement de la supposition classique fréquente avec les screeners daily/weekly du décalage : est-ce bien un compte temps réel et non pas un compte gratuit “fin de journée” dont les résultats seront décalés d’une unité de la plus grande timeframe…
03/07/2023 at 1:23 PM #211040J’ai corrigé Signal en SignalD sur la partie Daily.
J’ai enlevé le Call sur l’indicateur Metascore et mis en commentaire les tests sur Metascore. Je n’ai donc laissé que l’indicateur MACDZEROLAG en Weekly et Daily, et j’ai le même comportement anormal, à savoir que cet indicateur devrait avoir le même comportement en Weekly et en Daily (soit en hausse, soit en baisse).
Merci pour votre aide.
03/09/2023 at 9:13 AM #21117303/10/2023 at 2:21 PM #211319Tu as bien raison. Je viens de modifier l’affichage et c’est correct. Mais j’ai tenté de changer le code en remplacant le MACD classique par le MACD ZeroLag, mais j’ai une erreur.
Ci-dessous le code de l’appel du MACD ZeroLag :
//MACDZLW, SignalW, ignored, ignored = CALL MACDZL[12,26,9]
et ci-joint la copie de l’erreur.
Si ce n’est pas possible avec le ZeroLag, ce n’est pas grave, je reste le MACD classique. Merci pour ton aide.
04/02/2023 at 9:19 PM #212678Bonsoir;
Moi aussi j’ai des problèmes avec le multi frame.
Ci joint le screener Retracement:
-Unité supérieure: tendance détectée par SMI long et faiblesse par StoRsi court;
Unité inférieure: SMI court et StoRsi Court en survente ou surachat (j’utilise le stoRsi et le SMI depuis longtemp sans problèmes)
Anomalies nombreuses détectées notamment sur la tendance. visibles sur les graphes car le StoRsi et le Smi sont les deux oscillateurs figurant sous le graphe des prix
J’ai modifié l’indicateur de tendance par un StoRsi long ou par une MME, anomalies encore.
Ci-joint les différents programmes
SMI StoRsi Scrrener retracement1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556a = SMI[70,15,10](typicalprice)b = SMI[14,3,4](typicalprice)c = 40d = -40return a as "Tendance",b as "Impulsion",c as "zone SA",d as "Zone SV"storsi=100*((rsi[P1]-lowest[P2](rsi[P1]))/((highest[P2](rsi[P1]))-lowest[P2](rsi[P1])))dtosck=WeightedAverage[P3](storsi)dtoscd=WeightedAverage[P3](dtosck)Seuilhaut=75Seuilbas=25storsiL=100*((rsi[P4]-lowest[P5](rsi[P4]))/((highest[P5](rsi[P4]))-lowest[P5](rsi[P4])))dtosckL=WeightedAverage[P6](storsiL)dtoscdL=WeightedAverage[P6](dtosckL)Seuilhaut=75Seuilbas=25RETURN dtosck AS "DTOSCK" , dtoscd AS "DTOSCD" , dtosckL AS "DTOSCKL" , dtoscdL AS "DTOSCDL" ,Seuilhaut AS "Seuilhaut", Seuilbas As "Seuilbas"Total = 0Timeframe (Daily)V =Average[10](Volume)>200000P = close>0.8TIMEFRAME(daily)indicator1, ignored, ignored,ignored = CALL "Puissance Relative" //tendance, impusion,SA, SV//c1 = (indicator1 > indicator1[1])c2 = (indicator1 > indicator1[5])c3 = (indicator1 < indicator1[1])c4 = (indicator1 < indicator1[5])indicator5, ignored, ignored, ignored, ignored,ignored = CALL "StoRsi"[13, 8, 5, 65, 40, 15](close) //Dtosck, ignored, DtosckL, ignored, SH, SB//c5 = (indicator5 < indicator5[1])c6 = (indicator5 > indicator5[1])TIMEFRAME(2hours)ignored, indicator2, indicator3,indicator4 = CALL "Puissance Relative" //tendance, impusion,SA, SV//c7 = (indicator2 < indicator4)c8 = (indicator2 > indicator3)indicator5, ignored, ignored, ignored, indicator7, indicator8 = CALL "StoRsi"[13, 8, 5, 65, 40, 15](close) //Dtosck, ignored, DtosckL, ignored, SH, SB//c9 = (indicator5 < indicator8)c10 = (indicator5 > indicator7)C11 = V AND P AND c1 AND c2 AND c5 AND c7 AND c9If c11 thenTotal= Total+1000Endifc12 = V AND P AND c3 AND c4 AND c6 AND c8 AND c10If c12 thenTotal= Total-1000EndifSCREENER[Total] (Total AS "Signal")Et les captures d’écran:
Qu’en pensez vous?
Merci d’avance pour votre aide.
04/02/2023 at 9:39 PM #21268204/03/2023 at 6:53 AM #21269604/13/2023 at 10:06 AM #213228Bonjour;
j’ai eu une réponse de PRT.
En fait pour un scanner sur plusieurs périodes, je n’avais pas changé les variables d’une période sur l’autre.
En le faisant une partie des problèmes est résolue (plus de faux signaux) par contre, le scan n’est pas exhaustif, il ne ne détecte aucune occurence avec un total négatif alors qu’il en existe. A suivre
04/13/2023 at 3:15 PM #213244Ci-dessous le code de l’appel du MACD ZeroLag : //MACDZLW, SignalW, ignored, ignored = CALL MACDZL[12,26,9]
Le message est clair, ton CALL envoi 3 paramètres à ton code MACDZL, hors il n’en attend aucun (pas de paramètres extérieurs dans ton code), il faut donc supprimer [12,26,9]
06/05/2023 at 10:10 AM #21564906/05/2023 at 1:37 PM #215657Oui en effet, si “total” est négatif c’est une condition FAUSSE.
Si >0 alors VRAI
Si <=0 alors FAUX
c’est une variable booléenne et comme tu l’utilises comme condition pour afficher tes résultats de screener, alors tu n’obtiens rien car “total” est FAUX, hors l’instruction SCREENER attente une condition qui est remplie (VRAI).
-
AuthorPosts
Find exclusive trading pro-tools on