Fave This

Sunday, 27 March 2011

Re: [Komunitas AmiBroker] 9 in 1 Chart View



Terima kasih Pak Isfandi  , mantap dan dahsyat luar biasa  AFL nya
sangat berguna untuk ngawai porto kita dengan cepat

pak apakah bisa dirubah jadi candle dan apakah jumlah chart yang ditampilkan bisa dirubah misal 2 / 4 / 6/ 9

oh yah pak waktu saya
apply indicator
muncul tanda ada sesuatu yang salah
tapi saya tutup saja kemudian saya buka bisa pak
apakah itu akan jadi masalah

terima kasih pak
semoga selalu sukses dan bahagia


On Sun, Mar 27, 2011 at 9:21 PM, Christopher Tahir <chris_tahir@ymail.com> wrote:
 

Pak, ada bug kecil nih....
Not a big deal sih, tapi aneh aja...
COba diperhatikan di bagian tahunnya pa, 2011 jadi 2,011...:D
Thanks

 
Best Regards,
Christopher Tahir
Blog: http://ez-stock.blogspot.com
MSN: chris_tahir@hotmail.com
YM: chris_tahir@ymail.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