Senin, 31 Oktober 2011

AFL : MA-5 Cross MA-50 …

AFL “MA-5 Cross MA-50”

Kali ini …saya …sajikan …AFL akhir dari ….AFL “MA-5 Cross MA-50” … dengan kemampuan untuk deteksi ….

  • MA-5 Uptrend dan MA-50 Uptrend  sehingga dimungkinkan untuk mengetahui keadaan ….
  • Strong Uptrend, Strong Downtrend, Weak Uptrend dan Weak Downtrend
  • Yang dilanjutkan … dalam penyajian signal yang dikatagorikan Strong Buy Signal, Strong Sell Signal, Weak Buy Signal dan Weak Sell Signal

Dibawah ini …beberapa screen shot …dari beberapa kemampuan deteksi AFL “MA-5 Cross MA-50” :

--- Strong Uptrend ---

image

--- Strong Downtrend ---

image

--- Weak Sell Signal ---

image

--- Weak Buy Signal ---

image

Untuk …List lengkap …AFL …adalah sebagai berikut …

_SECTION_BEGIN("Price");
   SetChartOptions(0,chartShowArrows|chartShowDates,colorRed);
  Plot( C, "Close", colorBlack, styleNoTitle | styleCandle | GetPriceStyle() );
_SECTION_END();

_SECTION_BEGIN(" MA5 Cross MA50");
  Line_MA5    = MA(C,5);
  Raising_MA5 = MA(C,5) > Ref(MA(C,5),-1);
  Plot(Line_MA5,"",IIf(Raising_MA5,colorGreen,colorRed), styleNoTitle | styleThick);
 
Line_MA50    = MA(C,50);
  Raising_MA50 = MA(C,50) > Ref(MA(C,50),-1);
  Plot(Line_MA50,"",IIf(Raising_MA50,colorBlue,colorOrange),styleNoTitle | styleThick);

  MA5_MA50_Strong_Uptrend   = Raising_MA5 AND Raising_MA50;
  MA5_MA50_Strong_Downtrend = NOT Raising_MA5 AND NOT Raising_MA50;

  MA5_MA50_Weak_Uptrend     = Raising_MA5 AND NOT Raising_MA50;
  MA5_MA50_Weak_Downtrend   = NOT Raising_MA5 AND Raising_MA50;

  Buy  = Cross(Line_MA5,Line_MA50);
  PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorBlue, 0, L, Offset=-8);
  PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorBlue, 0,L, Offset=-18);
  PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-13);

  Sell = Cross(Line_MA50,Line_MA5);
  PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=8);
  PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0,H,Offset=18);
  PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H,Offset=-13);
_SECTION_END();

_SECTION_BEGIN("Judul");

  Title = EncodeColor(colorYellow)+Title = FullName()+" - "+Name()+"  "+ EncodeColor( colorBrightGreen) + Date() +
    EncodeColor(55)+ "   Open:  "+ WriteIf(O> Ref(O,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(O,format=1.2) +
    EncodeColor(55)+ "   High:  "+ WriteIf(H> Ref(H,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+  WriteVal(H,format=1.2) +
    EncodeColor(55)+ "   Low:  "+ WriteIf(L> Ref(L,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+  WriteVal(L,format=1.2) +
    EncodeColor(55)+ "   Close:  "+ WriteIf(C> Ref(C,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(C,format=1.2)+
    EncodeColor(55)+ "   Change:  "+WriteIf(C> Ref(C,-1),EncodeColor(5),EncodeColor(55))+ WriteVal((C-Ref(C,-1)),format=1.2)+  "  ("+ WriteVal(ROC(C,1),format=1.2)+ "%"+ ")  "+
    "\n"+
    WriteIf(Raising_MA5 , EncodeColor(colorGreen)+"MA5 uptrend : ",  EncodeColor(colorRed)+"MA5 downtrend : ") +WriteVal(Line_MA5,format=1,0) +" "+
    WriteIf(Raising_MA50, EncodeColor(colorGreen)+"MA50 uptrend : ", EncodeColor(colorRed)+"MA50 downtrend : ")+WriteVal(Line_MA50,format=1,0)+

    WriteIf(MA5_MA50_Strong_Uptrend  , EncodeColor(colorGreen)+" --- STRONG uptrend --- " ,"")+
    WriteIf(MA5_MA50_Strong_Downtrend, EncodeColor(colorRed)  +" --- STRONG downtred --- ","")+

    WriteIf(MA5_MA50_Weak_Uptrend, EncodeColor(colorBlue)+" --- Weak uptrend --- ","")+
    WriteIf(MA5_MA50_Weak_Downtrend, EncodeColor(colorOrange)+" --- Weak downtrend --- ","")+

    WriteIf(Buy AND MA5_MA50_Strong_Uptrend, EncodeColor(colorGreen)+" ---- STRONG BUY SIGNAL ---- "," ")+
    WriteIf(Buy AND NOT MA5_MA50_Strong_Uptrend, EncodeColor(colorGreen)+" ---- WEAK BUY SIGNAL ---- "," ")+

    WriteIf(Sell AND MA5_MA50_Strong_Downtrend, EncodeColor(colorRed)+" ---- STRONG SELL SIGNAL ---- "," ")+
    WriteIf(Sell AND NOT MA5_MA50_Strong_Downtrend, EncodeColor(colorRed)+" ---- WEAK SELL SIGNAL ---- "," ");

_SECTION_END();

Coba dipahami … dulu … ya …bila ada yang ingin ditanyakan …silahkan tulis pertanyaannya pada shoutbox saya …

Saya cukupkan dulu … moga ada manfaatnya … makasih

Minggu, 30 Oktober 2011

AFL = Amibroker Formula Language ….

AFL atau Amibroker Formula Languange … sudah tersedia …dalam …software Amibroker kita …yaitu …

image

Pilih menu View …kemudian …pilih chart …

Untuk menambahkan …satu formula …baru … maka …klik kanan … dari sebarang folder yang ditampilkan … kemudian pilih ..New …dan …pilih Formula …

image

Isikan …nama …formula atau AFL …kita ….sebagai contoh … MA5 Cross MA50

image

Untuk menuliskan …List Program-nya ….maka …lakukan …klik kanan …pada nama AFL yang akan digunakan …kemudian pilih Edit …

Nah … bila …prosesnya benar …maka …akan ditampilkan …Window untuk aktifitas pengetikan …List Program … seperti dibawah ini

image

Sedangkan …untuk menjalankan …AFL kita …tinggal Double Klik … pada …nama ..AFL ..tersebut

Ok … saya cukupkan dulu … moga ada manfaatnya …makasih

Belajar AFL = Amibroker Formula Language … 3

AFL “MA-5 Cross MA-50”

Ada satu hal … yang lebih baik … menjadi kebiasaan kita untuk mengelompokan satu aktifitas … dalam … lingkup tertentu … yaitu penggunaan …_SECTION_BEGIN(); dan _SECTION_END();

Contohnya :

_SECTION_BEGIN(" Price");
  SetChartOptions(0,chartShowArrows|chartShowDates);

  _N(Title = FullName() + StrFormat(" : {{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%){{VALUES}}, Volume %g ", O, H, L, C,SelectedValue( ROC( C, 1 ) ),V));

  Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();

Section diatas memiliki nama “Price” … dimaksudkan …sebagai ..pengelompokan aktifitas dalam menyajikan data harga

Nah … sekarang …kita coba perdalam lagi …untuk …Title-nya ..ya ….

Tampilan …Title …akan …kita buat …lebih ber-warna ..lagi …

Untuk itu … formulasi Title …sedikit kita …ubah … menjadi ….

Title = EncodeColor(colorYellow)+Title = FullName()+" - "+Name()+"  "+ EncodeColor( colorBrightGreen) + Date() +
    EncodeColor(55)+ "   Open:  "+ WriteIf(O> Ref(O,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(O,format=1.2) +
    EncodeColor(55)+ "   High:  "+ WriteIf(H> Ref(H,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+  WriteVal(H,format=1.2) +
    EncodeColor(55)+ "   Low:  "+ WriteIf(L> Ref(L,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+  WriteVal(L,format=1.2) +
    EncodeColor(55)+ "   Close:  "+ WriteIf(C> Ref(C,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(C,format=1.2)+
    EncodeColor(55)+ "   Change:  "+WriteIf(C> Ref(C,-1),EncodeColor(5),EncodeColor(55))+ WriteVal((C-Ref(C,-1)),format=1.2)+  "  ("+ WriteVal(ROC(C,1),format=1.2)+ "%"+ ")  ";

Ada beberapa … fungsi penting disini …

  • Title = EncodeColor(colorYellow)+Title = ……digunakan untuk menampilkan ….urutan kegiatan dalam penyajian Title
  • EncodeColor(colorYellow) = …digunakan untuk mengubah w arna tampilan data yang ingin disajikan.
    • Seperti EncodeColor(colorYellow)+Title = FullName() … maka ..akan ditampilkan data FullName dengan warna kuning …
    • sedang … pada EncodeColor( colorBrightGreen)+Date() … akan …ditampilkan data Date() dengan warna hijau terang ….
  • Pada EncodeColor(55) … disamping menggunakan nama warna yang diinginkan seperti colorYellow … dapat pula …diisikan angka kode dari warna …seperti ..EncodeColor(55) … dimana …55 … merupakan angka kode dari warna putih
  • Oh ya …ada beberapa fungsi …yang …kita kenali dulu …yaitu
    • FullName() untuk menampilkan nama lengkap satu saham 
    • Name() untuk menampilkan kode dari satu saham
    • O,H,L,C untuk menyajikan data Open,High,Low dan Close
  • Nah …perhatikan ..untuk … WriteIf(O> Ref(O,-1) , EncodeColor(colorBrightGreen) , EncodeColor(colorRed))
    • Fungsi diatas … diartikan …bila O > Ref(O,-1) … atau harga Open sekarang lebih besar daripada harga Open kemarin …. maka …warna yang ditampilkan hijau terang ….
    • Data kemarin …disajikan … dengan …fungsi …Ref(O,-1) …
  • Ada lagi …. WriteVal(O,format=1.2) … dimaksudkan …dengan …menampilkan data harga Open …dalam format angka hingga …2 angka dibelakang koma

Akhirnya …tampilkan …Title kita …seperti dibawah ini :

image

Tulisan “Tiga Pilar Sejahtera Food Tbk – AISA.JK“ yang berwarna kuning … sebenarnya … dihasilkan dari …EncodeColor(colorYellow)+FullName()+” - “+Name() ….  

Namun pada…Titlr kita …telah digabungkan …pada …. Title = EncodeColor(colorYellow)+Title = FullName()+" - "+Name()+"  "

Sedang …. tanggal …”10/28/2011” berwarna hijau …didapatkan dari …EncodeColor( colorBrightGreen) + Date()

Sedangkan …tampilan teks “Open” berwarna putih ….dihasilkan dari …EncodeColor(55)+ "   Open:  "

Yang menarik adalah … data yang disajikan …dapat berwarna Hijau …bila lebih besar dari kemarin …. dan ..berwarna Merah …bila …sama dengan atau lebih kecil dari kemarin

image

Nah … dengan adanya …bergantian warna ini … maka …dengan sekilas pandang … kita dapat memiliki …lebih banyak informasi …dari saham yang akan kita analisa

Coba ….kita pahami bersama … ya … kalau kurang jelas …silahkan ditanyakan … pada shoutbox saya ….

Akhirnya … List AFL ..kita …seperti dibawah ini …

_SECTION_BEGIN(" Price");
  SetChartOptions(0,chartShowArrows|chartShowDates);

Title = EncodeColor(colorYellow)+Title = FullName()+" - "+Name()+"  "+ EncodeColor( colorBrightGreen) + Date() +
    EncodeColor(55)+ "   Open:  "+ WriteIf(O> Ref(O,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(O,format=1.2) +
    EncodeColor(55)+ "   High:  "+ WriteIf(H> Ref(H,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+  WriteVal(H,format=1.2) +
    EncodeColor(55)+ "   Low:  "+ WriteIf(L> Ref(L,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+  WriteVal(L,format=1.2) +
    EncodeColor(55)+ "   Close:  "+ WriteIf(C> Ref(C,-1),EncodeColor(colorBrightGreen),EncodeColor(colorRed))+ WriteVal(C,format=1.2)+
    EncodeColor(55)+ "   Change:  "+WriteIf(C> Ref(C,-1),EncodeColor(5),EncodeColor(55))+ WriteVal((C-Ref(C,-1)),format=1.2)+  "  ("+ WriteVal(ROC(C,1),format=1.2)+ "%"+ ")  ";

  Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();

_SECTION_BEGIN(" MA5 Cross MA50");
  Plot(MA(Close,50),"MA-50",colorYellow,style=styleThick);
  Plot(MA(Close,5),"MA-5",colorGreen,style=styleThick);

  Sell = Cross(MA(C,50),MA(C,5));
  PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=8);
  PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0,H,Offset=18);
  PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H,Offset=-13);

  Buy  = Cross(MA(C,5),MA(C,50));
  PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorBlue, 0, L, Offset=-8);
  PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorBlue, 0,L, Offset=-18);
  PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-13);
_SECTION_END();

Sangat dianjurkan untuk membaca kembali …post sebelumnya …

Saya cukupkan dulu … moga ada manfaatnya … makasih

Sabtu, 29 Oktober 2011

Belajar AFL = Amibroker Formula Language … 2

AFL “ MA5 cross MA50 “

Pada AFL sebelumnya … pada bagian Title meimagemiliki info …sederhana

 

yaitu …id saham … hanya ditampilkan Kode saham … sekarang kita tambahkan … nama lengkapnya …ya ….

Perhatikan …section “Price”

_N(Title = FullName() + StrFormat(" : {{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));

Hanya menambahkan ….FullName() … maka …didapatkan … hasil sebagai berikut

image

Nampak..kan ... dimunculkan nama lengkap ... kemudian ..kode sahamnya ...

Coba dipahami dulu ...ya ....

Ok, ... gimana ...? Bila bingung .... tuliskan pertanyaannya ...di shoutbox ..ya

Sekarang ...kita ...lanjut dikit ...dengan menambahkan ... info tentang volumenya ...

_N(Title = FullName() + StrFormat(" : {{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%){{VALUES}}, Volume %g ", O, H, L, C,SelectedValue( ROC( C, 1 ) ),V ));

Perhatikan huruf yang saya berikan ...warna merah .... dimana Volume merupakan label yang ditampilkan ... %g merupakan ...format tampilan ... dan V merupakan ...data yang ditampilkan

Sehingga ...Title yang dihasilkan ...

image

Untuk …post kali ini … kita menyempurnakan … bagian Title ..dari AFL kita, sehingga list program detailnya …menjadi ….

_SECTION_BEGIN(" Price");
  SetChartOptions(0,chartShowArrows|chartShowDates);

  _N(Title = FullName() + StrFormat(" : {{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%){{VALUES}}, Volume %g ", O, H, L, C,SelectedValue( ROC( C, 1 ) ),V));

  Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();

_SECTION_BEGIN(" MA5 Cross MA50");
  Plot(MA(Close,50),"MA-50",colorYellow,style=styleThick);
  Plot(MA(Close,5),"MA-5",colorGreen,style=styleThick);

  Sell = Cross(MA(C,50),MA(C,5));
  PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=8);
  PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0,H,Offset=18);
  PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H,Offset=-13);

  Buy  = Cross(MA(C,5),MA(C,50));
  PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorBlue, 0, L, Offset=-8);
  PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorBlue, 0,L, Offset=-18);
  PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-13);
_SECTION_END();

Sangat dianjurkan untuk membaca kembali …post sebelumnya ..yaitu

Saya cukupkan dulu … post kali ini … semoga ada manfaatnya … makasih

Rabu, 26 Oktober 2011

Belajar AFL = Amibroker Formula Language … 1

AFL “  MA5 Cross MA50 ”

Terkadang kita menginginkan …satu tampilan …chart seperti dibawah ini ..

GGRM261011Garis hijau merupakan garis MA5 … garis kuning merupakan garis MA50

Adanya panah keatas dengan latar biru merupakan Signal ‘Buy’ dengan asumsi  garis MA5 cross terhadap MA50

Sedang panah kebawah dengan latar merah merupakan Signal ‘Sell’ dengan asumsi garis MA50 yang cross terhadap MA5

Sehingga dapat di-formulasi-kan sebagai berikut ….

_SECTION_BEGIN(" Price");
  SetChartOptions(0,chartShowArrows|chartShowDates);
  _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
  Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();

_SECTION_BEGIN(" MA5 Cross MA50");
  Plot(MA(Close,50),"MA-50",colorYellow,style=styleThick);
  Plot(MA(Close,5),"MA-5",colorGreen,style=styleThick);

  Sell = Cross(MA(C,50),MA(C,5));
  PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=8);
  PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0,H,Offset=18);
  PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H,Offset=-13);

  Buy  = Cross(MA(C,5),MA(C,50));
  PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorBlue, 0, L, Offset=-8);
  PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorBlue, 0,L, Offset=-18);
  PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-13);
_SECTION_END();

Untuk section(“Price”) merupakan copy-paste dari AFL default Amibroker pada folder Basic Charts

Nah … kita coba pelajari bersama …AFL yang baru kita buat …bila ada pertanyaan …silahkan …menuliskan pada shoutbox saya…

Semoga ada manfaatnya, … makasih