Fave This

Sunday, 27 March 2011

Re: [Komunitas AmiBroker] 9 in 1 Chart View



Wah, pak Isfandi, Thanks banget...
Sangat membantu dalam trading ini....
Nah, coding yg dipake pak Isfandi sptnya lebih ke IT programmer yah???
:D
KEREEENNN....:-bd

Oh ya, sy ndak nambah plugin jalan koq pak...:D
Kebetulan sy uda download AB pack terbaru yg 5.30 tapi yg uda repacked sama pa TJ...
Krn sy pake 64-bit, yg ternyata sekarang uda repacked semuanya digabung jadi satu.
 
Best Regards,
Christopher Tahir
Blog: http://ez-stock.blogspot.com
MSN: chris_tahir@hotmail.com
YM: chris_tahir@ymail.com

Mail to my Y!Group:
ez-stock-subscribe@yahoogroups.com



From: "isfandi2001@yahoo.com" <isfandi2001@yahoo.com>
To: amibroker-4-bei@yahoogroups.com
Sent: Sun, March 27, 2011 8:35:36 PM
Subject: Re: [Komunitas AmiBroker] 9 in 1 Chart View

 

Guys.. saya sharing afl ini 9 in 1 hanya utk konsumsi amibroker-4-bei@yahoogroups saja, mohon tdk di share ke tempat lain. tks
semoga milist ini tetap punya kelas tersendiri dan selalu kompak belajar bersama.

How to use :
- Overlay merujuk pada urutan Name of Stock yg terdapat di "Wacth List 0 - dst" (silahkan buat urutan saham terlebih dulu pd wacth list)
- pastikan Plugins anda sdh lengkap (if not working)
- sediakan Chart Sheet tersendiri utk afl ini
- All operation by parameters

Description "Parameters"
- Wacth list = overlay mengikuti WL 0 - dst (sesuai yg anda input)
- Page = utk melihat overlay selanjutnya smp jumlah max sesuai daftar saham anda
- Chart wide = jumlah overlay horizontal
- Chart high = jumlah overlay vertikal
   (max. overlay 16 in 1)
- Numb of Bar = price historical view
- Long MA & Short MA = settingan standard (utk long term), silahkan sesuaikan dgn term period anda

/////////////Good luck and happy charting/////////////

Salam,
Isfandi

/// the afl //////

_SECTION_BEGIN("9 in 1 Overlay Chart");
function GetMonth( MonthNumber )
{
         switch (MonthNumber) {
            case 2 :
              result = "Feb";
               break ;
            case 3 :
              result = "Mar";
              break ;
            case 4 :
              result = "Apr";
            break ;
          case 5 :
            result = "May";
            break ;
          case 6 :
            result = "Jun";
            break ;
          case 7 :
            result = "Jul";
            break ;
          case 8 :
            result = "Aug";
            break ;
          case 9 :
            result = "Sep";
            break ;
          case 10 :
            result = "Oct";
            break ;
          case 11 :
            result = "Nov";
            break ;
          case 12 :
            result = "Dec";
      break ;
   }

   return result;
}



GfxSetOverlayMode( 2 );

String = "" ;
for ( x = 0 ; x < 200 ; x++ )
{
        WList = CategoryGetName( categoryWatchlist, x );
         if (WList != "" )
        {
                 String = String + WList +","   ;
        }
}
WatchList = ParamList ( "Watch List", String );
for ( x = 0 ; x < 200 ; x++ )
{
        sym = StrExtract ( String, x );
         if (sym == WatchList)
        {
                 listNum = x  ;
        }
}

Page = Param ( "Page #", 0 , 0 , 12 , 1 );
ChartsWiNum = Param ( "# Charts Wide", 3 , 1 , 4 , 1 );
ChartsHiNum = Param ( "# Charts High", 3 , 1 , 4 , 1 );
Bars =Param ( "Number Of Bars", 195 , 50 , 250 , 1 ) ;
lDays =Param ( "Long MA", 200 , 50 , 250 , 1 ) ;
sDays =Param ( "Short MA", 50 , 5 , 100 , 1 ) ;
vDays =Param ( "Volume MA", 50 , 5 , 100 , 1 ) ;
ChartMargin = 5 ;
DateMargin = 10 ;
DataMargin = 20 ;
NumCharts = ChartsWiNum * ChartsHiNum ;
ScreenHeight = Status ( "pxheight" )  ;
SceernWidth = Status ( "pxwidth" ) ;
ChartHeight = ScreenHeight / ChartsHiNum -2   ;
Width = SceernWidth / ChartsWiNum - 2 ;
BarChartHeight=  (0.75 ) * ChartHeight - DataMargin;
VolChartHeight = ChartHeight - BarChartHeight - DataMargin*2 ;
NumberPriceLevels = BarChartHeight / 25 ;
BarChartWidth=  Width - 45 ;
BarWidth = (BarChartWidth - ChartMargin * 3 ) / Bars  ;
LastBar =  BarCount ;
FirstBar =  LastBar - Bars;
_N (list = CategoryGetSymbols( categoryWatchlist, listnum ));
printf ( "Watch List Name\n");
WL = CategoryGetName( categoryWatchlist, listnum );
SymbolNum = Page * NumCharts;

for ( x = 0 ; x < ChartsHiNum ; x++ )
{
         for ( i = 0 ; i < ChartsWiNum ; i++ )
        {
                 notDone = True;
                 sym = StrExtract ( list, SymbolNum );
                  if (sym != "" )
                 {
                 x1 = Width * i + 5 ;
                 y1 = ChartHeight * x + 5 ;
                 x2 = Width * (i + 1 );
                 y2 = ChartHeight * (x + 1 )-DateMargin;
                  GfxSelectPen ( colorBlack );
                  GfxRectangle ( x1, y1, x2, y2 );
                 SymbolNum++;

                  SetForeign (sym);

                 EMAShort= EMA (C,sDays);
                 EMALong= EMA (C,lDays);
                 EMAVol= EMA (V,vDays);

                 D = Day ();
                 M = Month ();
                 Y = Year ();

                 priceHigh = 0 ;
                 VolHigh = 0 ;
                 priceMin = 1000000 ;
                  for ( z = FirstBar; z < LastBar ; z++ )
                 {
                          Vol = V[z];
                          BarH = H[z];
                          BarL = L[z];
                           if ( Vol > VolHigh )
                          {
                                   VolHigh = Vol;
                          }
                           if ( BarH > priceHigh )
                          {
                                   priceHigh = BarH;
                          }
                           if ( BarL < priceMin )
                          {
                                   priceMin = BarL;
                          }
                 }

                 LOpen = O[LastBar- 1];
                 LHigh = H[LastBar- 1];
                 LLow = L[LastBar- 1];
                 LClose = C[LastBar- 1];
                 LVol = V[LastBar- 1];
                  GfxSelectFont ( "Tahoma" , 9 );
                  GfxSetTextColor (colorBlack);
                  GfxTextOut (sym + "   O: " +LOpen + "   H: " +LHigh + "   L: " +LLow + "   C: " +LClose + "   Vol: " +LVol/ 1000000 + " M", x1+5 , y1+2 );

                 VolRatio = VolChartHeight /  VolHigh ;
                 Range = priceHigh - priceMin;
                 Ratio = BarChartHeight / Range ;
                 PriceLineLevel = Range / NumberPriceLevels;
                 yHi=(((priceHigh - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                  GfxTextOut ( WriteVal (priceHigh, 1.2 ),   x1 + BarChartWidth, yHi -8 );
                  GfxSelectPen ( colorLightGrey );
                  GfxMoveTo ( x1 , yHi );
                  GfxLineTo ( x1 + BarChartWidth -5 , yHi );
                  for ( z = 0 ; z < NumberPriceLevels- 1   ; z++ )
                 {
                          PriceLevel = PriceLineLevel*z + priceMin;

                          yHi=(((PriceLevel - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                           GfxTextOut ( WriteVal (PriceLevel, 1.2 ),   x1 + BarChartWidth, yHi -8 );
                           GfxSelectPen ( colorLightGrey );
                           GfxMoveTo ( x1 , yHi );
                           GfxLineTo ( x1 + BarChartWidth -5 , yHi );
                 }

                 HighestLast = 0 ;
                 w = 1 ;
                 sEMAlast = EMAShort[FirstBar];
                 lEMAlast = EMALong[FirstBar];
                 vEMAlast = EMAVol[FirstBar];
                  for ( z = FirstBar; z < LastBar ; z++ )
                 {
                          BarH = H[z];
                          BarL = L[z];
                          BarO = O[z];
                          BarC = C[z];
                          Vol = V[z];
                          sEMA = EMAShort[z];
                          lEMA = EMALong[z];
                          vEMA = EMAVol[z];
                          BarDay = D[z];
                          BarMonth = M[z];
                          BarYear = Y[z];

                          yO = (((BarO - priceMin )* Ratio)- BarChartHeight ) * -1 + y1 + DataMargin;
                          yC = (((BarC - priceMin )* Ratio)- BarChartHeight ) * -1 + y1 + DataMargin;
                          yHi = (((BarH - priceMin )* Ratio)- BarChartHeight ) * -1 + y1 + DataMargin;
                          yLo = (((BarL - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin ;
                          ysEMAlast = (((sEMAlast - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                          ysEMA = (((sEMA - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                          ylEMAlast = (((lEMAlast - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                          ylEMA = (((lEMA - priceMin )* Ratio) - BarChartHeight) * -1 + y1 + DataMargin;
                          vHi = y2 - (Vol * VolRatio)  ;
                          yvEMAlast = y2 - (vEMAlast  * VolRatio) ;
                          yvEMA = y2 - (vEMA * VolRatio)  ;
                         
                           if ( BarH > HighestLast )
                          {
                                   HighestLast = BarH;
                                    GfxSelectPen ( colorGreen );
                          }

                           else
                          {
                                    GfxSelectPen ( colorDarkGrey );
                          }

                           GfxMoveTo ( BarWidth * w + x1 + ChartMargin , yHi );
                           GfxLineTo ( BarWidth * w + x1 + ChartMargin, yLo );
                           GfxMoveTo ( BarWidth * w + x1 + ChartMargin -1   , yO );
                           GfxLineTo ( BarWidth * w + x1 + ChartMargin, yO );
                           GfxMoveTo ( BarWidth * w + x1 + ChartMargin +1   , yC );
                           GfxLineTo ( BarWidth * w + x1 + ChartMargin, yC );
                           if ( BarO > BarC)
                          {
                                    GfxSelectPen ( colorRed );
                          }
                           else
                          {
                                    GfxSelectPen ( colorLime );
                          }
                           GfxMoveTo ( BarWidth * w + x1 + ChartMargin , vHi );
                           GfxLineTo ( BarWidth * w + x1 + ChartMargin, y2 );

                           GfxSelectPen ( colorBlue );
                           GfxMoveTo ( BarWidth * (w -1 ) + x1  + ChartMargin , ysEMAlast );
                           GfxLineTo ( BarWidth * w + x1 + ChartMargin, ysEMA );
                           GfxSelectPen ( colorRed );
                           GfxMoveTo ( BarWidth * (w -1 ) + x1  + ChartMargin , ylEMAlast );
                           GfxLineTo ( BarWidth * w + x1 + ChartMargin, ylEMA );
                           GfxSelectPen ( colorBlack );
                           GfxMoveTo ( BarWidth * (w -1 ) + x1  + ChartMargin , yvEMAlast );
                           GfxLineTo ( BarWidth * w + x1 + ChartMargin, yvEMA );
                          w++;
                         
                          sEMAlast = sEMA ;
                          lEMAlast = lEMA ;
                          vEMAlast = vEMA ;
                         
                           GfxSelectFont ( "Tahoma" , 7 );
                           GfxSelectPen ( colorLightGrey );

                           if (BarDay== 1 & notDone )
                          {
                                    if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );                                 
                                    else myLabel =GetMonth(BarMonth);
                                    GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                    GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2  );
                                    GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin  );
                                   notDone = False;
                          }

                           if (BarDay== 2 & notDone )
                          {
                                    if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );
                                    else myLabel =GetMonth(BarMonth);
                                    GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                    GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2  );
                                    GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin  );
                                   notDone = False;
                          }

                           if (BarDay== 3 & notDone )
                          {
                                    if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );
                                    else myLabel =GetMonth(BarMonth);
                                    GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                    GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2  );
                                    GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin  );
                                   notDone = False;
                          }

                           if (BarDay== 4 & notDone )
                          {
                                    if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );
                                    else myLabel =GetMonth(BarMonth);
                                    GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                    GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2  );
                                    GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin  );
                                   notDone = False;
                          }

                           if (BarDay== 5 & notDone )
                          {
                                    if (BarMonth == 1 ) myLabel =WriteVal (BarYear, 1.0 );
                                    else myLabel =GetMonth(BarMonth);
                                    GfxTextOut (myLabel,   BarWidth * w + x1 + ChartMargin - 5 , y2 +DateMargin/3 );
                                    GfxMoveTo ( BarWidth * w + x1 + ChartMargin , y2 - VolChartHeight );
                                    GfxLineTo ( BarWidth * w + x1 + ChartMargin, y1 + DataMargin );
                                   notDone = False;
                          }
                           if (BarDay== 6 |BarDay== 7 |BarDay== 8 |BarDay== 9 |BarDay== 10 )
                          {
                                   notDone = True;
                          }
                                                    
                 }
                  RestorePriceArrays ();
                 }
        }
}
_SECTION_END();







From: Christopher Tahir <chris_tahir@ymail.com>
To: amibroker-4-bei@yahoogroups.com
Sent: Sun, March 27, 2011 2:48:26 PM
Subject: Re: [Komunitas AmiBroker] 9 in 1 Chart View

 

Pak, minta dunk AFLnya....:D

Keren abis nih, apalagi buat yg suka liatin layar yg multi timeframe, mantap itiuu....:D
 
Best Regards,
Christopher Tahir
Blog: http://ez-stock.blogspot.com
MSN: chris_tahir@hotmail.com
YM: chris_tahir@ymail.com

Mail to my Y!Group:
ez-stock-subscribe@yahoogroups.com



From: "isfandi2001@yahoo.com" <isfandi2001@yahoo.com>
To: AB Community <amibroker-4-bei@yahoogroups.com>
Sent: Sun, March 27, 2011 2:14:54 PM
Subject: [Komunitas AmiBroker] 9 in 1 Chart View

 

Dear All,

Amibroker emang canggih, mungkin baru AB yg bisa tampilkan 9 chart jadi 1 hanya dgn afl, luar biasa.. (pic attch)

Utk rekan2 yg baru gabung, kembali saya lampirkan koleksi Plugins (bagi yg blm melengkapi), silahkan upload di :
http://www.4shared.com/file/0eIUPRdZ/Plugins.html

salam,
Isfandi


__._,_.___


Apabila membutuhkan software AmiBroker, Realtime Intraday Data & Pelatihan silahkan kontak : Dendo Valentino | Cell : 08159304868 | e-mail: amibrokerfreak{at}yahoo.co.id | YM id : dendov | http://www.facebook.com/dendo.amibrokerfreak | http://www.amibroker-4-bei.org





Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

No comments:

Post a Comment