// Downloaded From https://www.WiseStockTrader.com _SECTION_BEGIN("Cross Prediction"); //Ct is the necessary tomorrows Close for a Ti3a, Ti3b touch. //One of the most important side effects is the crosses of this Ct with the actual Close : They usually anticipate by 1 Day the Cross(Ti3a,Ti3b). // Cross(Ti3a,Ti3b) predictions, by D. Tsokakis, April 2004 pa=10;pb=20;//pb should be higher than pa Plot(C,"C",1,8); // Ti3a sa=0.8;fa=2/(pa+1); e1a=EMA(C,pa); e2a=EMA(e1a,pa); e3a=EMA(e2a,pa); e4a=EMA(e3a,pa); e5a=EMA(e4a,pa); e6a=EMA(e5a,pa); c1a=-sa*sa*sa; c2a=3*sa*sa+3*sa*sa*sa; c3a=-6*sa*sa-3*sa-3*sa*sa*sa; c4a=1+3*sa+sa*sa*sa+3*sa*sa; Ti3a=c1a*e6a+c2a*e5a+c3a*e4a+c4a*e3a; Plot(Ti3a,"Ti3("+WriteVal(pa,1.0)+")",colorBlue,1); Ga= (1-fa)*(C1a*fa^5+C2a*fa^4+C3a*fa^3+C4a*fa^2)*e1a+ (1-fa)*(C1a*fa^4+C2a*fa^3+C3a*fa^2+C4a*fa)*e2a+ (1-fa)*(C1a*fa^3+C2a*fa^2+C3a*fa+C4a)*e3a+ (1-fa)*(C1a*fa^2+C2a*fa+C3a)*e4a+ (1-fa)*(C1a*fa+C2a)*e5a+ (1-fa)*(C1a)*e6a; GGa=C1a*fa^6+C2a*fa^5+C3a*fa^4+C4a*fa^3; // Ti3b sb=0.7;fb=2/(pb+1); e1b=EMA(C,pb); e2b=EMA(e1b,pb); e3b=EMA(e2b,pb); e4b=EMA(e3b,pb); e5b=EMA(e4b,pb); e6b=EMA(e5b,pb); c1b=-sb*sb*sb; c2b=3*sb*sb+3*sb*sb*sb; c3b=-6*sb*sb-3*sb-3*sb*sb*sb; c4b=1+3*sb+sb*sb*sb+3*sb*sb; Ti3b=c1b*e6b+c2b*e5b+c3b*e4b+c4b*e3b; Plot(Ti3b,"Ti3("+WriteVal(pb,1.0)+")",colorRed,1); Gb= (1-fb)*(C1b*fb^5+C2b*fb^4+C3b*fb^3+C4b*fb^2)*e1b+ (1-fb)*(C1b*fb^4+C2b*fb^3+C3b*fb^2+C4b*fb)*e2b+ (1-fb)*(C1b*fb^3+C2b*fb^2+C3b*fb+C4b)*e3b+ (1-fb)*(C1b*fb^2+C2b*fb+C3b)*e4b+ (1-fb)*(C1b*fb+C2b)*e5b+ (1-fb)*(C1b)*e6b; GGb=C1b*fb^6+C2b*fb^5+C3b*fb^4+C4b*fb^3; Ct=(Gb-Ga)/(GGa-GGb); Plot(Ct,"Ct",2,1); // Actual Cross signals PlotShapes(shapeDownTriangle*Cross(tI3b,tI3a),colorPink); PlotShapes(shapeUpTriangle*Cross(tI3a,tI3b),colorBlue); // Prediction signals PlotShapes(shapeDownArrow*Cross(Ct,C),colorRed); PlotShapes(shapeUpArrow*Cross(C,Ct),colorBrightGreen); //The statistics were better than expected: //for Cross(Ti3(10),Ti3(20)) there was no False Signal for 3815 crosses of the N100 database from Jan2000 till Now. //for Cross(Ti3(5),Ti3(10)) we have had 8323 crosses without any False Signal !! //Explore for all quotations with // False predictions period1=5;period2=10;// period2 should be higher than period1 Plot(C,"C",1,8); // Ti3_10 pa=period1;sa=0.8;fa=2/(pa+1); e1a=EMA(C,pa); e2a=EMA(e1a,pa); e3a=EMA(e2a,pa); e4a=EMA(e3a,pa); e5a=EMA(e4a,pa); e6a=EMA(e5a,pa); c1a=-sa*sa*sa; c2a=3*sa*sa+3*sa*sa*sa; c3a=-6*sa*sa-3*sa-3*sa*sa*sa; c4a=1+3*sa+sa*sa*sa+3*sa*sa; Ti3a=c1a*e6a+c2a*e5a+c3a*e4a+c4a*e3a; Plot(Ti3a,"Ti3a",colorBlue,1); Ga= (1-fa)*(C1a*fa^5+C2a*fa^4+C3a*fa^3+C4a*fa^2)*e1a+ (1-fa)*(C1a*fa^4+C2a*fa^3+C3a*fa^2+C4a*fa)*e2a+ (1-fa)*(C1a*fa^3+C2a*fa^2+C3a*fa+C4a)*e3a+ (1-fa)*(C1a*fa^2+C2a*fa+C3a)*e4a+ (1-fa)*(C1a*fa+C2a)*e5a+ (1-fa)*(C1a)*e6a; GGa=C1a*fa^6+C2a*fa^5+C3a*fa^4+C4a*fa^3; // Ti3_20 pb=period2;sb=0.7;fb=2/(pb+1);//pb should be higher than pa e1b=EMA(C,pb); e2b=EMA(e1b,pb); e3b=EMA(e2b,pb); e4b=EMA(e3b,pb); e5b=EMA(e4b,pb); e6b=EMA(e5b,pb); c1b=-sb*sb*sb; c2b=3*sb*sb+3*sb*sb*sb; c3b=-6*sb*sb-3*sb-3*sb*sb*sb; c4b=1+3*sb+sb*sb*sb+3*sb*sb; Ti3b=c1b*e6b+c2b*e5b+c3b*e4b+c4b*e3b; Plot(Ti3b,"Ti3b",colorRed,1); Gb= (1-fb)*(C1b*fb^5+C2b*fb^4+C3b*fb^3+C4b*fb^2)*e1b+ (1-fb)*(C1b*fb^4+C2b*fb^3+C3b*fb^2+C4b*fb)*e2b+ (1-fb)*(C1b*fb^3+C2b*fb^2+C3b*fb+C4b)*e3b+ (1-fb)*(C1b*fb^2+C2b*fb+C3b)*e4b+ (1-fb)*(C1b*fb+C2b)*e5b+ (1-fb)*(C1b)*e6b; GGb=C1b*fb^6+C2b*fb^5+C3b*fb^4+C4b*fb^3; Ct=(Gb-Ga)/(GGa-GGb); Plot(Ct,"Ct",2,1); PlotShapes(shapeDownTriangle*Cross(tI3b,tI3a),colorPink); PlotShapes(shapeDownArrow*Cross(Ct,C),colorRed); PlotShapes(shapeUpTriangle*Cross(tI3a,tI3b),colorBlue); PlotShapes(shapeUpArrow*Cross(C,Ct),colorBrightGreen); PredictionDN=Cross(Ct,C);PredictionUP=Cross(C,Ct); CrossDN=Cross(Ti3b,Ti3a);CrossUP=Cross(Ti3a,Ti3b); Filter=CrossDN OR CrossUP; AddColumn(PredictionDN,"0barsDN",1.0); AddColumn(Ref(PredictionDN,-1),"1barDN",1.0); AddColumn(Ref(PredictionDN,-2),"2barsDN",1.0); AddColumn(CrossDN AND NOT(predictionDN OR Ref(predictionDN,-1) OR Ref(predictionDN,-2)),"FalseUP",1.0); AddColumn(PredictionUP,"0barsUP",1.0); AddColumn(Ref(PredictionUP,-1),"1barUP",1.0); AddColumn(Ref(PredictionUP,-2),"2barsUP",1.0); AddColumn(CrossUP AND NOT(predictionUP OR Ref(predictionUP,-1) OR Ref(predictionUP,-2)),"FalseDN",1.0); _SECTION_END();