Bạn có thể copy mã này hoặc tải chỉ báo về nếu bạn không chuyên môn về mã code , nút download ở phía dưới cuối khung chứa code này:
Link tải mã nguồn về sử dụng:Odd=13;//enter Odd numbers onlyCoefOdd=round(Odd/2);Even=12;Coefeven=Even/2;Coefeven2=Coefeven+1;CongestionPercent=2.8;TriangularOdd=MA(MA(C,CoefOdd),CoefOdd);TriangularEven=MA(MA(C,Coefeven),Coefeven2);finalMov_avg=IIf(Odd > even,triangularOdd,TriangularEven);Color=colorBrightGreen;//select Moving average line colortickercolor=colorBlack;//select price colorPlot(finalMov_avg,"",IIf(C < finalmov_avg,colorRed,Color),styleLine|styleThick);Plot(C,"",tickercolor,styleCandle);Title=Name()+"..."+"( "+WriteIf(Odd > even,WriteVal(Odd,1),WriteVal(even,1))+" ) Period "+EncodeColor(Color)+"Triangular"+WriteIf(Odd > even,"ODD","EVEN")+" Moving Average"+"..."+EncodeColor(colorBlack)+ WriteIf(C < finalMov_avg,"Close is "+EncodeColor(colorRed)+"Below"+EncodeColor(colorBlack)+" Moving Average by ","Close is"+EncodeColor(colorBrightGreen)+" Above"+EncodeColor(colorBlack)+" Moving Average by ")+"("+WriteVal(((C/finalMov_avg)-1)*100,1.1)+"% )"+"\n"+WriteIf(finalmov_avg-Ref(finalmov_avg,-1)>0," Slope Of Average is UP : ","Slope Of Average is DOWN :")+WriteIf((((C/finalMov_avg)-1)*100 <= CongestionPercent AND ((C/finalMov_avg)-1)*100 >= -CongestionPercent),EncodeColor(colorYellow)+" with Price Congestion / Divergence to Average ","")+"\n"+WriteIf(Ref(C,-1) < Ref(finalmov_avg,-1) AND C > finalmov_avg,EncodeColor(colorGreen)+"Possible Change in Trend From Down to Up"+"\n"+" OR Short Term Correction of Previous Trend",WriteIf(Ref(C,-1) > Ref(finalmov_avg,-1) AND C < finalmov_avg,EncodeColor(colorRed)+"Possible Change in Trend From Up to Down "+"\n"+" OR Short Term Correction to Previous Trend",""))+"\n"+WriteIf(C > finalmov_avg,EncodeColor(colorGreen)+"Close has been above Moving Average ( "+WriteVal(BarsSince(C < finalmov_avg),1)+" ) Bars",EncodeColor(colorRed)+"Close has been Below Moving Average ( "+WriteVal(BarsSince(C > finalmov_avg),1)+" ) Bars")+"\n"+EncodeColor(colorBlack)+"The average # of Bars Above ( "+WriteVal(round(Cum(BarsSince(C < finalmov_avg)/Cum(1))),1)+" )"+"\n"+"The average # of Bars Below ( "+WriteVal(round(Cum(BarsSince(C > finalmov_avg)/Cum(1))),1)+" )";_SECTION_BEGIN("AFL Example");/*firstly some basics common*/SetBarsRequired(10000,10000); /* this ensures that the charts include all bars AND NOT just those on screen */SetFormulaName("Sample System"); /*name it for backtest report identification */SetTradeDelays( 1, 1, 1, 1 ); /* delay entry/exit by one bar */SetOption( "initialequity", 100000 ); /* starting capital */PositionSize = -10; /* trade size will be 10% of available equty */SetOption( "MaxOpenPositions", 6 ); /* I don't want to comit more than 60% of Equity at any one time */SetOption( "PriceBoundChecking", 1 ); /* trade only within the chart bar's price range */SetOption( "CommissionMode", 2 ); /* set commissions AND costs as $ per trade */SetOption( "CommissionAmount", 32.95 ); /* commissions AND cost */SetOption( "UsePrevBarEquityForPosSizing", 1 ); /*set the use of last bars equity for trade size*/PositionScore = 100/C; /*Set the order for which stock trades when get mulitple signals in one bar in backtesting */LongPer = Param("Long Period", 50, 30, 100, 5 ); /* select periods with parameter window */ShortPer = Param("Short Period", 5, 3, 10, 1 );LongMA = EMA( C, LongPer );ShortMA = EMA( C, ShortPer );LastHigh = HHV( H, LongPer );Buy = Cross( ShortMA, LongMA ) AND H > Ref( LastHigh, -1 );/* ref,-1 is used for the high to have todays high greater than the previous 50 bar high.To just use H==LastHigh couold mean a previous high was equal to current high */Sell = Cross( LongMA, ShortMA );/* exrem is one method to remove surplus strade signals*/Buy = ExRem(Buy,Sell);Sell = ExRem(Sell,Buy);Filter = Buy OR Sell;AddTextColumn( FullName(), "Company Name" );AddColumn( Buy, "Buy", 1 );AddColumn( Sell, "Sell", 1 );AddColumn( C, "Close", 1.3 );AddColumn( H, "High", 1.3 );AddColumn( LastHigh, "HHV", 1.3 );AddColumn( LongMA, "Long MA", 1,3 );AddColumn( ShortMA, "Short MA", 1,3 );GraphXSpace = 10; /* create empty space of 10% top and bottom of chart */Plot( C, " Close Price", colorGrey50, styleBar );Plot( LongMA, " EMA(C,"+WriteVal(LongPer,1)+")", colorYellow, styleLine|styleNoRescale );Plot( ShortMA, " EMA(C,"+WriteVal(ShortPer,1)+")", colorSkyblue, styleLine|styleNoRescale );Plot( Ref(Lasthigh,-1), " HHV(H,"+WriteVal(LongPer,1)+")", colorRed, styleNoLine|styleDots|styleNoRescale );/* styleNoRescale in the plots stops the added plots from compressing the original bar chart to the middle of the pane */PlotShapes( shapeUpArrow*Buy, colorGreen, 0, L, -10 );PlotShapes( shapeDownArrow*Sell, colorRed, 0, H, -10 );Title = " {{NAME}} {{DATE}} {{INTERVAL}} "+_DEFAULT_NAME()+" Chart values : {{VALUES}} ";_SECTION_END();
Download here
Cách thêm sau khi tải về: Xem hướng dẫn tại phần 2: Đối với các chỉ báo không có sẵn trong Amibroker
- Cách cài Amibroker cho chứng sĩ Việt
- Lấy dữ liệu miễn phí cho Amibroker
- Có kết quả lọc cổ phiếu ở đây


Không có nhận xét nào:
Đăng nhận xét