Cross Over
Seamlessly integrate crossover signals into your trading strategy with the Cross Over AFL for Amibroker. This user-friendly tool, available for free download, allows traders to identify trend changes efficiently. With Amibroker data, enhance the reliability of crossover signals, making informed decisions based on market trends. Download this AFL to streamline your analysis and capitalize on crossover opportunities in the market.
/ _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();