MondayDog

Forum Replies Created

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • MondayDog
    Participant

    ขอบพระคุณมากครับผม

    in reply to: สูตร Candle Volume for Aminbroker #37784
    MondayDog
    Participant

    ผิดพลาดประการใด รบกวนชี้แนะด้วยครับ

    ขอบพระคุณครับ

    in reply to: สูตร Candle Volume for Aminbroker #37783
    MondayDog
    Participant
    /*SetChartOptions(0,chartShowArrows|chartShowDates); GraphXSpace = 15;
    SetChartBkGradientFill( colorSkyblue ,colorRose);
    _N(Title = Date()+EncodeColor(colorBlack)+ "   Edited by K.Riyashree"+ "Website: www.aflcode.in"+ EncodeColor(colorBlue)+"  Free Code"
    +"   Afl Name :  EquiVolume or CandleVolume charts, On Amibroker  " + EncodeColor(colorGreen)  
    + "   Open:"+ Open+" ,"+"High:"+High+" ,"+"Low:"+Low+" , "+"Close:"+Close  );*/
      
    ChartType = ParamList ( "Chart Type", "CandleVolume,EquiVolume" );
    Plot( C, "", 39, styleBar | styleNoDraw );
    Maxy = Status( "axismaxy" );
    Miny = Status ( "axisminy" );
    pxchartheight = Status ( "pxchartheight" );
    pxchartbottom = Status( "pxchartbottom" );
    pxchartwidth = Status ( "pxchartwidth" );
    pxchartleft = Status( "pxchartleft" );
    fvb = Status ( "firstvisiblebar" );
    Lvb = Status ( "lastvisiblebar" );
    
    function yConvert( Value )
    {
        return  pxchartbottom - floor( 0.5 + ( Value - Miny ) * pxchartheight / (
    Maxy - Miny ) );
    }
    
    MinVolume = LowestVisibleValue( Volume );
    MinVolume  = Max ( Minvolume, 1 );
    //printf ( "Min Visibe Bar volume  = %.f\n", Minvolume );
    
    sigma = 0 ;
    
    for ( i = BarCount - 1 ; i > fvb - 1  ; i -- )
    {
    
        ratio = Volume[i] /  MinVolume;
        sigma += ratio;
    }
    
    //GfxSelectPen( colorBlack );
    
    Space = 1;  // space between candles
    visiblebars = Lvb - fvb + 1;
    totalspace = Visiblebars * space;
    
    unitpx = ( pxchartwidth - totalSpace ) / sigma; // pixel
    LastbarRatio = Volume [BarCount -1] / MinVolume;
    delta = unitpx * Lastbarratio / 2;
    start =  pxchartleft + ( BarCount - fvb - 1 )  * pxchartwidth / Visiblebars +
    delta;
    Chg = C - O;
    // Basic Parameter Setup //
    	Price = ParamField("Price",3);
    
        FastPrd = Param("Fast MA Period",12);
    	SlowPrd = Param("Slow MA Period",26);
    
    for ( i = BarCount - 1 ; i >= fvb && start > 0  ; i -- )
    {
    	// From CDC Action ZOne Basic //
    	//       21st April 2017      //
    	
    	// Main functions //
    	
    	Fast = EMA(Price,FastPrd);
    	Slow = EMA(Price,SlowPrd);
    
    	Bullish = Fast > Slow;
    	Bearish = Fast < Slow;
    
    	// Bar Colors //
    	Green = Bullish AND Price[i] > Fast;
    	Yellow = Bullish AND Price[i] < Fast AND Price[i]  > Slow;
    	Brown = Bullish AND Price[i] < Slow;
    
    	Red = Bearish AND Price[i] < Fast;
    	Aqua = Bearish AND Price[i] > Fast AND Price[i]  < Slow;
    	Blue = Bearish AND Price[i] > Slow;
    
    	BarColor = IIf(Green,colorGreen,IIf(Yellow,colorYellow,IIf(Brown,colorOrange,IIf(Red,colorRed,IIf(Aqua,colorAqua,IIf(Blue,colorBlue,colorDefault))))));
        //fillcolor = IIf ( Chg [i] > 0 , colorLime, colorRed );
        
        fillcolor = IIf ( Chg [i] > 0 , colorWhite, BarColor[i] );
        
        GfxSelectPen( BarColor[i] );
        GfxSelectSolidBrush( fillcolor );
        
        //////////////
        
        ratio = Volume[i] / MinVolume;
        width = unitpx * ratio ;
        width = Min ( width , pxchartwidth / 5 ); // limit max bar width in pixel to chartwidh/5
    
        if ( ChartType == "CandleVolume" )
        {
            x = start - width / 2;
        }
    
        y1 = yConvert ( High[i] );
        y2 = yConvert ( Low[i] );
    
        if ( ChartType == "CandleVolume" )
        {
            GfxMoveTo ( x, y1 );
            GfxLineTo( x, y2 );
        }
    
        x1 = start - width;
        x2 = start ;
    
        if ( ChartType == "CandleVolume" )
        {
            y1 = yConvert ( Open[i] );
            y2 = yConvert ( Close[i] );
        }
    
    	// Un-comment these to enable optimization //
    	// Do not forget to set your own lower and upper limits //
    	// Do not forget to comment the FastPrd and SlowPrd lines above //
    	/*
    	SlowPrd = Optimize("Slow MA Period",26,12,125,2);
    	FastPrd = round(Optimize("Fast MA Period",0.1,0.1,0.6,0.05)*SlowPrd);
    	*/
    
    	
        
        Hgt = y2 - y1;
        if ( Hgt == 0 )
            Hgt = 1;
    
        y2 = y1 + Hgt;
        GfxRectangle( x1, y1, x2, y2 );
    
        start = x1 - Space;
       // printf ( "\n%.f\t %.f px" , i,  hgt );
    }
    
    Title = Charttype;
    RequestTimedRefresh( 1 );
    SetChartOptions(0,chartShowArrows|chartShowDates);
    MondayDog
    Participant

    ขอบพระคุณมากครับ

Viewing 4 posts - 1 through 4 (of 4 total)