Help me fix code creat index

Hello everyone

I'm having trouble plotting an index made of multiple stickers. The picture does not match the value shown.
The value wma40 has the smallest value but when plotted it is still the highest value. Same with wma12, wma15 is the same (as picture showed)
Screenshot 2022-02-27 141721

Code:

//Penny

HTP=Name()=="HTP";PGN=Name()=="PGN";DNM=Name()=="DNM";BTN=Name()=="BTN";KKC=Name()=="KKC";VTD=Name()=="VTD";TYA=Name()=="TYA";DGT=Name()=="DGT";KDM=Name()=="KDM";TTZ=Name()=="TTZ";BNA=Name()=="BNA";VNH=Name()=="VNH";CVN=Name()=="CVN";CTC=Name()=="CTC";VHE=Name()=="VHE";PVO=Name()=="PVO";VNL=Name()=="VNL";BVG=Name()=="BVG";PWA=Name()=="PWA";ACC=Name()=="ACC";
Penny=HTP OR PGN OR DNM OR BTN OR KKC OR VTD OR TYA OR DGT OR KDM OR TTZ OR BNA OR VNH OR CVN OR CTC OR VHE OR PVO OR VNL OR BVG OR PWA OR ACC;

HTP=Foreign("HTP","C");PGN=Foreign("PGN","C");DNM=Foreign("DNM","C");BTN=Foreign("BTN","C");KKC=Foreign("KKC","C");VTD=Foreign("VTD","C");TYA=Foreign("TYA","C");DGT=Foreign("DGT","C");KDM=Foreign("KDM","C");TTZ=Foreign("TTZ","C");BNA=Foreign("BNA","C");VNH=Foreign("VNH","C");CVN=Foreign("CVN","C");CTC=Foreign("CTC","C");VHE=Foreign("VHE","C");PVO=Foreign("PVO","C");VNL=Foreign("VNL","C");BVG=Foreign("BVG","C");PWA=Foreign("PWA","C");ACC=Foreign("ACC","C");
PennyP=(HTP+PGN+DNM+BTN+KKC+VTD+TYA+DGT+KDM+TTZ+BNA+VNH+CVN+CTC+VHE+PVO+VNL+BVG+PWA+ACC)/20;


HTP=Foreign("HTP","V");PGN=Foreign("PGN","V");DNM=Foreign("DNM","V");BTN=Foreign("BTN","V");KKC=Foreign("KKC","V");VTD=Foreign("VTD","V");TYA=Foreign("TYA","V");DGT=Foreign("DGT","V");KDM=Foreign("KDM","V");TTZ=Foreign("TTZ","V");BNA=Foreign("BNA","V");VNH=Foreign("VNH","V");CVN=Foreign("CVN","V");CTC=Foreign("CTC","V");VHE=Foreign("VHE","V");PVO=Foreign("PVO","V");VNL=Foreign("VNL","V");BVG=Foreign("BVG","V");PWA=Foreign("PWA","V");ACC=Foreign("ACC","V");
PennyV=(HTP+PGN+DNM+BTN+KKC+VTD+TYA+DGT+KDM+TTZ+BNA+VNH+CVN+CTC+VHE+PVO+VNL+BVG+PWA+ACC)/20;

if( showPenny )
{
Title = "Penny" + " – " + EncodeColor(colorRed)+ Interval(2) + EncodeColor() + " – " + Date() +" – " 
        +EncodeColor(colorWhite)+ "C- "+WriteVal(PennyP,1.2)+" " +EncodeColor(colorWhite)+ "Volume- "+WriteVal(PennyV,1)+"   "+"%V: "+WriteIf(PennyV>Ref(PennyV,-1),EncodeColor(colorGreen),EncodeColor(colorRed))+WriteVal(PennyV/Ref(PennyV,-1)*100,1)
        +EncodeColor(colorYellow)+ "  WMA12: "+WriteVal(WMA(PennyP,12),1.2)+" " +EncodeColor(colorBlue)+ "WMA15: "+WriteVal(WMA(PennyP,15),1.2)+" "  
        +EncodeColor(colorRed)+ "WMA40: "+WriteVal(WMA(PennyP,40),1.2);
        
 //Plot( PennyP, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
    Plot( PennyP, "C", colorDefault, styleLine | styleOwnScale);
    Plot( WMA(PennyP,12), "WMA12", colorYellow, styleLine | styleOwnScale);
    Plot( WMA(PennyP,15), "WMA15", colorBlue, styleLine | styleOwnScale);
    Plot( WMA(PennyP,40), "WMA40", colorRed, styleLine | styleOwnScale);
    VolColor = IIf(PennyP >= Ref(PennyP,-1), colorGreen, colorRed);
    Plot(PennyV, "Volume", VolColor , styleOwnScale|styleHistogram, 10 );
    Plot(MA(PennyV,10), "MAVol10", colorYellow , styleOwnScale|styleLine, 25 );
    Plot(MA(PennyV,3), "MAVol3", colorRed , styleOwnScale|styleLine, 20 );
}

Please help me fix this code. Thanks a lot!

First and foremost if you want to create composite then you should use AddToComposite or StaticVarAdd!


As for why chart title values are not in line with plot location...
Remove styleOwnscale.

Use AddToComposite or StaticVarAdd! I think if you want to draw a chart, you have to "scan". I want it to draw, not need to "scan". thanks!

You definitely need to read the manual:
http://www.amibroker.com/guide/a_addtocomposite.html

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.