Sites du réseau "Devenir Autonome en Bourse" : Pro-AT - Invest-AT - Trading School - TradersBlog - Boutique du Trading
|
Forum Bourse : Accueil | Forums Partenaires | Forum ProRealTime | Sujet : Bibliothèque de Codes PRT
il faut introduire le programme suivant:
Var: N (periode = 20) coeff (1.5) //Canaux de Keltner REM Moving Average MA = Average[N](TypicalPrice) REM Upper Keltner Band UpperBand = MA + coeff*Average[N](Range) REM Lower Keltner Band LowerBand = MA - coeff*Average[N](Range) RETURN MA AS "Keltner Moving Average" , UpperBand AS "Upper Keltner Band" , LowerBand as "Lower Keltner Band" via onglet probacktest et surtout le nommer "canaux de keltner" ainsi lorsque vous l'appelez via la fonction call"canaux de keltner" il sera reconnu
Tu fais le copier coller du code à partir de Canaux de Keltner et remplace N par 20 et coeff par 1.5.
In Goldman we trust.
Loulou, Krk
Canaux de Keltner déjà créé je cherche à rajouter le squeeze appelé TTS dans le livre de Carter avec les points noirs et gris
KST CT MT LT , de SALVE, en provenance de Martin Pring
The KST indicator was developed by Martin J. Pring. The name KST comes from "Know Sure Thing". -----------------le code---------- // KST de Martin Pring, transmis par Salve // Court terme // ICI les déclarations sont actives //cela évite d'avoir à coder les 10 variables w=3 x=4 y=6 z=10 // wa=3 wb=4 wc=6 wd=8 // mme1=8 mme2=21 //------------------------------------------- //moyen terme // w=10 x=13 y=15 z=20 // wa=10 wb=13 wc=15 wd=20 // mme1=8 mme2=21 //------------------------------------------- //long terme // w=39 x=52 y=78 z=104 // wa=26 wb=26 wc=26 wd=39 // mme1=8 mme2=21 // rem définition des Momentum a=Momentum[w](close) b=Momentum[x](close) c=Momentum[y](close) d=Momentum[z](close) rem calcul des MM ma=ExponentialAverage[wa](a) mb=ExponentialAverage[wb](b) mc=ExponentialAverage[wc](c) md=ExponentialAverage[wd](d) rem calcul de KST kst=(ma*1.618)+(mb*1.50)+(mc*1.382)+(md*1.236) rem calcul signal s1=ExponentialAverage[mme1](kst) s2=ExponentialAverage[mme2](kst) return kst as "kst_CT",s1 COLOURED(0,0,255) as "mme8",s2 COLOURED(255,0,0) as "mme21" ,0 as "zero" //---------------------------------------------- // ne pas oublier d'ajouter les BB // pour ajouter MT et LT, créer deux autres indicateurs en validant les variables ad hoc (attention une variable par ligne, sinon error) Cliquez pour agrandirça fait quoi: amha, puissance du MACD ZL, Détection de divergence, plus de sensibilité que MACD peut être utilisé pour avertir de prendre position changement de couleur une bougie avant CDUR des bandes de bollinger qui apportent énormément #123 , meilleur alignement des points Un résultat UT1m ou l'on remarque les alignements MACD ZL et KST CT Double divergence sur #123 sur ZL et KST c'est du 1 minute..., donc pour CFD et Turbos NOTA: de haut en bas, Prix,MACD,OBVD,RSI+CDUR,KST_CT on remarque : les 3 impacts sur KST BB_SUP valid renforce les retournements chez macd ZL le CDUR passe rouge une bougie après KST_CT passe en phase 4 vers 11:00, donc fin de grand mvt sur prix la sortie se fera sur OBVD, ou sur BB inf de ut supérieur prix ![]() IDEM, mais en UT15, le 22 mai, double DIV NOTA: de haut en bas : Prix ,MACD+ZL,KST_CT,OBVD,RSI+CDUR on remarquera que KST est plus sensible, les pts #123 sont alignés, alors que MACD ZL#123 ne l'est pas que les KST #2 et #3 ne sont pas sur boll sup donc mefiance le couplage avec OBVD est très précieux (#2 #3 en div) le CDUR est rouge objective BB inf de UT1H , soit 3200, ce qui correspond a l'exagération de KST sous BB inf et à la remontée de OBVD on regardera dans UTT (UT Tactique 3 minute) pour confirmer et affiner la sortie.... ![]() -----------------METASTOCK FORMULA------------ The following formulas are MetaStock formulas for the KST: DAILY KST SIMPLE MOVING AVERAGE (Mov(Roc(C,10,%),10,S)*1) + (Mov(Roc(C,15,%),10,S)*2) + (Mov(Roc (C,20,%),10,S)*3) + (Mov(Roc(C,30,%),15,S)*4) LONG-TERM MONTHLY KST SIMPLE MOVING AVERAGE ( (Mov(Roc(C,9,%),6,S)*1) + (Mov(Roc(C,12,%),6,S)*2) + (Mov(Roc(C ,18,%),6,S)*3) + (Mov(Roc(C,24,%),9,S)*4) ) / 4 INTERMEDIATE KST SIMPLE MOVING AVERAGE (Mov(Roc(C,10,%),10,S)*1) + (Mov(Roc(C,13,%),13,S)*2) + (Mov(Roc (C,15,%),15,S)*3) + (Mov(Roc(C,20,%),20,S)*4) INTERMEDIATE KST EXPONENTIAL MOVING AVERAGE (Mov(Roc(C,10,%),10,E)*1) + (Mov(Roc(C,13,%),13,E)*2) + (Mov(Roc (C,15,%),15,E)*3) + (Mov(Roc(C,20,%),20,E)*4) LONG-TERM KST EXPONENTIAL MOVING AVERAGE (Mov(Roc(C,39,%),26,E)*1) + (Mov(Roc(C,52,%),26,E)*2) + (Mov(Roc (C,78,%),26,E)*3) + (Mov(Roc(C,109,%),39,E)*4) SHORT-TERM KST WEEKLY EXPONENTIAL MOVING AVERAGE (Mov(Roc(C,3,%),3, E)*1) + (Mov(Roc(C,4,%),4, E)*2) + (Mov(Roc(C,6,%),6, E)*3) + (Mov(Roc(C,10,%),8, E)*4) --------------------------------------
édité le : 23-05-2009 22:37:31Le contentement apporte le bonheur, même dans la pauvreté. Le mécontentement apporte la pauvreté même dans la richesse. (Confucius)
super file, bien vu Mike.
Est ce que quelqu'un saurait faire du backtesting pour voir ce que donnent les divergences (macd ou autres)? merci pour vos réponses. Xav.
KST nouvelle version avec Bollinger intégrée
----------------- ACTE UN Création de KST Fonction ------------------code PRT------------------------ // KST de Pring, transmis par salve // Court terme w=3 x=4 y=6 z=10 // wa=3 wb=4 wc=6 wd=8 // mme1=8 mme2=21 //------------------------------------------- //moyen terme // w=10 x=13 y=15 z=20 // wa=10 wb=13 wc=15 wd=20 // mme1=8 mme2=21 //------------------------------------------- //long terme // w=39 x=52 y=78 z=104 // wa=26 wb=26 wc=26 wd=39 // mme1=8 mme2=21 // rem definition des Momentum a=Momentum[w](close) b=Momentum[x](close) c=Momentum[y](close) d=Momentum[z](close) rem calcul des MM ma=ExponentialAverage[wa](a) mb=ExponentialAverage[wb](b) mc=ExponentialAverage[wc](c) md=ExponentialAverage[wd](d) rem calcul de KST kst=(ma*1.618)+(mb*1.50)+(mc*1.382)+(md*1.236) return kst as "kst" -----FIN CODE FUNCTION KST --------------------------------------------- ---NE PAS OUBLIER de mettre les 10 variables.... Cliquez pour agrandirACTE DEUX : KstCT ---------------------le code----------------- //court terme w=3 x=4 y=6 z=10 wa=3 wb=4 wc=6 wd=8 mme1=8 mme2=21 //bollinger coeffBollinger=1.68 period=20 // rem appel de la function "kst", avec un seul retour kst1 = CALL "kst" [ w , x , y , z , wa , wb , wc , wd ] // je calcule les mm ICI rem calcul signal s1=ExponentialAverage[mme1](kst1) s2=ExponentialAverage[mme2](kst1) // bollinger à 1.68 et sa proximité if barindex <= period then kst2 =Undefined else kst2 =kst1 endif a = average[period] (kst2) st = std[period] (kst2) bsup = a + coeffBollinger*st binf = a- coeffBollinger*st return kst1 as "kstCT",s1 COLOURED(0,0,255) as "mme8",s2 COLOURED(255,0,0) as "mme21" ,0 as "zero",binf as "Binf",bsup as "Bsup" ---------------------------fin de KstCT----------------- ACTE TROIS : KstMT ---------------------------Début de KstMT----------------- // KST de Pring, transmis par salve w=10 x=13 y=15 z=20 wa=10 wb=13 wc=15 wd=20 mme1=8 mme2=21 //bollinger coeffBollinger=1.68 period=20 rem appel de la function "kst", avec un seul retour kst1 = CALL "kst" [ w , x , y , z , wa , wb , wc , wd ] rem calcul signal s1=ExponentialAverage[mme1](kst1) s2=ExponentialAverage[mme2](kst1) // bollinger à 1.68 et sa proximité if barindex <= period then kst2 =Undefined else kst2 =kst1 endif a = average[period] (kst2) st = std[period] (kst2) bsup = a + coeffBollinger*st binf = a- coeffBollinger*st return kst1 as "kstMT",s1 COLOURED(0,0,255) as "mme8",s2 COLOURED(255,0,0) as "mme21" ,0 as "zero",binf as "Binf",bsup as "Bsup" ---------------------------fin de KstMT----------------- ACTE QUATRE : KstLT ---------------------------Début de KstLT----------------- //---------------------code----------------------- //LT w=39 x=52 y=78 z=104 wa=26 wb=26 wc=26 wd=39 mme1=8 mme2=21 //bollinger coeffBollinger=1.68 period=20 // kst1 = CALL "kst" [ w , x , y , z , wa , wb , wc , wd ] // Function KST don't return MM s1=ExponentialAverage[mme1](kst1) s2=ExponentialAverage[mme2](kst1) // bollinger à 1.68 et sa proximité if barindex < period then kst2 =Undefined else kst2 =kst1 endif a = average[period] (kst2) st = std[period] (kst2) bsup = a + coeffBollinger*st binf = a- coeffBollinger*st return kst1 as "kst_LT",s1 COLOURED(0,0,255) as "mme8",s2 COLOURED(255,0,0) as "mme21" ,0 as "zero",binf as "BBinf",bsup as "BBsup" ---------------------------fin de KstLT----------------- ACTE CINQ, cerise sur le gâteau, mais pas indispensable KstHisto -------------code----------------- // this Function CALL // KstCT // KstMT // KstLT // return 6 parameters as // kst,mme8,mme21,zero,Binf,Bsup // // the 3 above function are calling "KST" // // KST-HISTO return Histo //Value >O BULL // 3, if CT MT OBVD are Green, LT Red but near BBinf // 4 Also LT is GREEN //Value <O BEAR // -3, if CT MT OBVD are Red, LT Green but near BBsup // -4 Also LT is Red // // Value= 0 , above condition are not matching... // Enjoy // mimich38 ///// CALL la function qui doit être présente avant exécution de ce programme histoAll=0 // pour calcul proximité BB avec LT en contre tendance epsilonProxiBB=0.2 //// CT kstCT,ignored,ignored,ignored,ignored,ignored = CALL "KstCT" // calcul de HISTO CT // recherche des zone Bull & Bear ctRed=kstCT<kstCT[1] if ctRed then histoCt=-1 else histoCt=1 endif // CALL MT & LT kstMt,ignored,ignored, ignored,ignored,ignored =CALL "KstMT" // definition de la couleur de MT mtRed=kstMt<kstMt[1] if mtRed then histoMt=-1// BAISSE else histoMt=1// HAUSSE endif // CALL LT------------------------------- // kstLt,ignored,ignored,ignored=CALL "KST_LT" old kstLt,ignored,ignored,ignored,BinfLT,BsupLT=CALL "KstLT" // ecart des BB ecartBB=BsupLT-BinfLT // voir ci-dessus un call "KST-LT" qui possède les BBinf BBsup pour permettre une exclusion aceptable // definition de la couleur de LT LtRed=kstLt<kstLt[1] if LtRed then histoLt=-1 // BAISSE //check proximité de BB ratio=abs(kstLT-BinfLT)/ecartBB else histoLt=1// HAUSSE //check proximité de BB ratio=abs(kstLT-BsupLT)/ecartBB endif /// FIN LT-------------------------------------------------------- // SEE OBVD-------------------------------------------------- obvRed =obv (totalprice) < obv (totalPrice) [1] if obvRed then flagObv=-1 else flagObv=1 endif //// des conditions pour ignorer conditionPrimaire=flagObv+histoMt+histoCt // si j'ai que 2 couleurs , j'ignore tout if (conditionPrimaire < 3) and (conditionPrimaire > -3) then conditionPrimaire=0 endif // on ignore LT si les 3 autres sont verts if conditionPrimaire = 3 then // HAUSSE SUR LES 3 Indicateurs OBV CT MT if (histoLT = -1 ) and ( ratio < epsilonProxiBB) then // A LA BAISSE histoLt=0 // on IGNORE LT endif endif /// a la baisse if conditionPrimaire = -3 then// BAISSE SUR LES 3 Indicateurs OBV CT MT if ( histoLT = 1 ) and ( ratio < epsilonProxiBB) then // LT à la Hausse histoLt=0 // on ignore LT endif endif // si seulement 2/3 indicateurs sont VERT ou ROUGE , la somme fait 1 if (conditionPrimaire < 2) and (conditionPrimaire > -2) then histoLT=0 endif //make summation histoAll = conditionPrimaire + histoLT if ( histoAll < 3 ) and ( histoAll >-3) then histoAll = 0 endif //make more visible on graph non non, return 3 ou 4, il est possible de retourner 3 ou 6 pour mieux voir les differences //histoAll=coef * histoAll return histoAll as "Histo" ---------------------------------------------- ce qui donne Cliquez pour agrandirHisto est un Histogramme de valeur +- [3-4] (rouge vert) qui détecte les conditions OBV KstCT KstMT KstLT valeur +- 3 : OBV + CT+MT de même couleur valeur +- 4 : tous de même couleur NDLR : KstHisto semble bouffer du CPU LIEN ancien CODE KST ICI
édité le : 06-06-2009 18:21:49Le contentement apporte le bonheur, même dans la pauvreté. Le mécontentement apporte la pauvreté même dans la richesse. (Confucius)
Bonjour,
J'utilise Prorealtime depuis de très longues années, je trade en "manuel" et j'essaie désormais d'automatiser les stratégies mises au point. Je me trouve donc tout naturellement devant un certain nombre de problèmes. Prorealtime ne pouvant répondre à mes besoins pour le mode automatique, après moult péripéties j'ai complété Prorealtime par TradeStation. L'histoire est longue, mais je suis bloqué sur un point que je n'imaginais pas à l'origine. Sur mes indicateurs j'utilise souvent la Régression Linéaire de Prorealtime. Et c'est là que le bât blesse. Cette régression Linaire est tout sauf standard. Quelqu'un aurait’ il déjà eu l'occasion de travailler sur la recherche du code de cette régression. Je n'ai pas (encore) demandé à Prorealtime mais vu ce que j'ai lu, je crains la réponse. Merci de votre aide.
stef77 voici le code de la droite de régression linéaire
once j=0 de48=DPO[k*2](close) if de48=de48[1] and de48[1]=de48[2] and de48[2]<>de48[3] then flag=1 endif n=(k*2)-4 p=(n/2)-1 d100=DPO[n](close) moy100=close-d100 co=(moy100-moy100[1]+(close[p])/n)*n if flag=1 and flag[1]=0 then test=linearregression[k](co) test1=linearregressionslope[k](co) a=test1 b=test-test1*k endif if flag=0 then reg=undefined else j=j+1 reg=a*j+b endif return reg Je ne sais pas si cela te conviendra mais bon....
Bonjour Loulou54,
J'avais oublié effectivement de préciser, il y a droite de régression linéaire et courbe de regression linéaire. Ce que je recherche c'est la courbe. Ton code fonctionne très bien (c'est la droite). De mon coté j'ai déjà le code pour la courbe de régression mais il n'a rien à voir avec les résultats de la courbe présente dans Prorealtime. Merci d'avoir pris le temps de me répondre Loulou54
Forum Bourse : Accueil | Forums Partenaires | Forum ProRealTime | Sujet : Bibliothèque de Codes PRT |
Invest-AT,
l'analyse technique au service de l'investissement actif.
Analyses, forums et signaux AT. |
Créer votre blog gratuitement avec TradersBlog, plateforme de blogs pour traders. |
Trading School, modules de formation à la bourse en ligne, glossaire de la bourse ... |


