You are on page 1of 46

Semoga sahabat trader sihat semuanya.

Tahniah dan terima kasih kepada sahabat_sahabat yang
memberikan pandangan mengenai Back Test EA. Semua pandangan itu memang benar.
Prinsip asas EA adalah untuk menguji logik aturan sama ada benar atau salah. Contoh untuk trading
manual guna double Moving Average, period 6 dan 18 EMA. Untuk logik BUY, bila

EMA 6 >= EMA18.

SELL bila EMA 6 <= EMA18

Untuk membangunkan EA ini, kita perlu melalui langkah-langkah atau pun dipanggil kitaran
Pembangunan Sistem Penasihat Pakar (Expert Advisor System Development). Seperti yang dinyatakan
dalam rajah ini.

Sahabat boleh baca artikel saya untuk tahun 2016 ini sebagai ilmu tambahan dalam memantapkan seni
perdagangan forex dan komoditi.

Kita ambil contoh mudah menggunakan Double Moving Average, berjenis eksponen, (EMA) 6 dan 18
sebagai idea awal. Aturan asas, bila harga pasangan mata wang bergerak dari bawah dan telah berada di
atas persilangan EMA 6 dan EMA 18, kita perlu ambil posisi BUY. Sebaliknya bila harga pasangan mata
wang bergerak dari atas ke bawah dan telah melepasi persilangan EMA6 dan EMA18 dan EMA6 berada
di bawah EMA18, maka posisi SELL perlu dibuat.

Jangan lupa untuk Close Buy dan Close Sell bila dah dapat keuntungan/profit. Cara yang mudah, apabila
berlaku persilangan/cross EMA 6 dan EMA 18 dari atas ke bawah, kita close posisi BUY dan sebaliknya
kita close posisi SELL. Lihat rajah

Langkah ke 2 kita koding kan idea tadi untuk dijadikan EA. Koding ada 2 cara. Pertama guna Bahasa
Pengaturcaraan Meta Quote Language yang disediakan dalam platfom MT4. Kedua boleh gunakan
perisian dipasaran.

dengan mengklik butang F4 atau Butang MetaQuote Language Editor

Seterusnya klik File>New

Jika ada nama laman web. seperti ini . letak link.Klik Next Letakkan nama fail EA. Author nama sahabat.

Tekan butang Next Tekan butang Next lagi .

Tekan butang finish Kaedah ke 2 untuk membangunkan EA ini dengan menggunakan perisian/software yang dipanggil Expert Advisor Builder yang dikirimkan oleh sahabat Azizul ini .

Kaedah ke 2 ini. Biasanya saya bangunkan EA ini menggunakan perisian percuma. maka perisian ini akan menyediakan atau menjana kod sumber/source code seperti di atas.2 . hanya masukkan Petua atau Rule. setelah lengkap. Contoh yang ini menggunakkan FOREXEADVISOR STRATEGY BUILDER 0. tekan butang Complete.

extern double TakeProfit=999.Ini contoh EA menggunakan indikator MACD yang telah dibangunkan menggunakan perisian tersebut Semua koding arahan BUY dan SELL berada di blok ini ://+-------------------------------------------------------------- ----+ // expert start function //+------------------------------------------------------------------+ int start() ini input parameternya.1. extern double Lots =0. extern int TrailingStop=0. extern int Slippage=3. extern double StopLoss=50. mesti berada diluar blok int start() extern int MagicNumber=10001. .

PRICE_CLOSE.0.26.26.0.9.Basicnya mesti ada MagicNumber: Fungsinya untuk membezakan trading manual dan trading auto untuk pair yang sama.12. Reward itu TakeProfit/TP.9. Yang akhir Slippage.0.1))) // Here is your open Sell rule Miswan Surip.9.0.9.MODE_SI GNAL.16 12:12] if((iMACD(NULL.04.PRICE_CLOSE.PRICE_CLOSE.0.MODE_SI GNAL.0.26. StopLoss fungsinya untuk menyelamatkan modal kita jangan habis sekira berlakunya patahbalik (reverse) harga pasangan mata wang yang dibeli atau dijual.26.26. Contoh news FOMC dan kadar pengangguran. Biasanya letak lot kecil 0.9.1)>iMACD(NULL.2)>iMACD(NULL.9.12. Fungsi yang dibenarkan untuk EA mengambil posisi dalam bentuk pip sekiranya berlaku pergerakan yang besar hasil dari News. maknanya hanya dalam lingkungan 10 pip sahaja EA akan buka posisi BUY atau SELL.PRICE_CLOSE .9.0.12.26.12.MODE_MAIN.1))) //here is your close buy rule { .12. [10.2)>iMACD(NULL.PRICE_CLOSE.MODE_MAIN. Jika lebih dari 10 pip.12.0.MODE_SIGNAL. EA tidak akan membuka posisi tersebut.26.1)<iMACD(NULL.26.PRICE_CLOSE.MODE_SIGNAL.MODE_SIGNAL.9.PRICE_CLOSE. Risk tu StopLoss/SL. Lots atau saiz volume. Contohnya jika kita set TS = 15 pip.12. Biasanya guna ratio risk:reward. Contoh TP 100 pip dan SL 50 pip TrailingStop/TS fungsinya untuk lock profit.12. [10.9.2)<iMACD(NULL.PRICE_CLOSE.12.PRICE_CLOSE.MODE_SI GNAL. Arahan ini untuk membezakan antara harga 4 decimal dan 5 decimal double MyPoint=Point.26.12.16 12:12] Yang di bawah ini untuk close BUY Miswan Surip.0. TakeProfit fungsinya untuk EA ambil untung bila kita tetapkan dalam bentuk pip.0. Nanti ada masa sya cerita TS.04.2))&&(iMACD(NULL. 1:2.0.2))&&(iMACD(NULL.PRICE_CLOSE .MODE_MAIN.MODE_MAIN.9.12.26.MODE_MAIN.26. yang ini arahan petua/rule untuk buka posisi BUY if((iMACD(NULL. if(Digits==3 || Digits==5) MyPoint=Point*10.9. Jika kita set 10 pips.2))&&(iMACD(NULL.PRICE_CLOSE .9. Maknanya TS akan aktif bila ada pergerakan 15 pip dan akan mengubahkan SL ke arah positif profit.26.0.PRICE_CLOSE.12.1)<iMACD(NULL.01.1))) // Here is your open buy rule Yang ini arahan petua untuk buka posisi SELL if((iMACD(NULL.MODE_MAIN.

2)<iMACD(NULL.16 12:13] Yang ini TrailingStop untuk Posisi BUY Miswan Surip.1)>iMACD(NULL.16 12:12] Yang ini untuk close SELL Miswan Surip. Miswan Surip.04. [10.0.12.MODE_MAIN.Red). [10. return(0). Miswan Surip. Miswan Surip.0.26.16 12:14] if(TrailingStop>0) { if(Bid-OrderOpenPrice()>MyPoint*TrailingStop) { if(OrderStopLoss()<Bid-MyPoint*TrailingStop) { OrderModify(OrderTicket().0.OrderClosePrice().0.MODE_MAIN.Slippage.MODE_SI GNAL.04.16 12:14] Dan yang ini TrailingStop untuk Posisi SELL . OrderClose(OrderTicket().04.9.OrderLots().9.MODE_SIGNAL.OrderOpenPrice().9.12.26.04. [10.Slippage.PRICE_CLOSE. [10.12.1))) // here is your close sell rule { OrderClose(OrderTicket(). [10.04.12.2))&&(iMACD(NULL.26.OrderTakeProfit().Bid- TrailingStop*MyPoint.26.16 12:12] if((iMACD(NULL.PRICE_CLOSE.PRICE_CLOSE .OrderLots().Green).9.Red).PRICE_CLOSE.0.OrderClosePrice().

Red). Selepas koding itu dilaksanakan kita perlu compile fail EA ini untuk dijalankan/run di MT4.Miswan Surip. Tekan butang Compile atau butang F7 .04. return(0).OrderTakeProfit().16 12:15] if(TrailingStop>0) { if((OrderOpenPrice()-Ask)�MyPoint*TrailingStop)) { if((OrderStopLoss()�Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(). [10.OrderOpenPrice().0.Ask+MyPoint*TrailingStop.

SL. BLOK 2:INPUT PARAMETER (TP. Petua/Rule untuk BUY. Setelah tiada error barulah EA ini boleh digunakan dengan mengklik F4 . TS.Bila compile ada error seperti di atas Kena betulkan error seperti yang diberitahu. Active the trading terminal Secara ringkasnya. . Blok EA ini terbahagi 3 blok utama: BLOK 1: Istiharkan Properties. LotSaiz) BLOK3: OPERASI bermula int start() ( Set digit.

Arahan close BUY dan Close SELL dan akhir sekali arahan Trailing Stop) Kemudian hendak bangunkan EA samada menggunakan kod sumber langkah demi langkah dengan menaip setiap arahan kod sumber atau menggunakan perisian yang boleh menukarkan petua ke kod sumber/source code.SELL. Arahan BUY dan arahan SELL. .

Langkah ke 3: Pengujian Logik Rule/Petua .

Sebelum kita membuat pengujian logik itu. kita mesti muatturn/download dulu real data.com Tekan butang download . Saya muat turun real data dari laman web www.tickstory.

Tekan next.selepas klik zip fail akan ada fail exe dan double klik. dan klik kotak untuk show icon di desktop dan tekan ok Langkah seterusnya klik butang kanan pada ikon selinder Run as administrator keluar window ini .

Tekan butang setting Rajah ini akan dipaparkan .

Store Location di tempat di mana akaun trading berada. Nanti saya tunjukkan kenapa perlu data ini disimpan dalam folder real akaun dari demo akaun Klik Folder Browse di penjuru Store Location. Digalakkan akaun trading yang real. Kemudian tekan Menu MT4 Setting Rajah ini muncul .

Secara automatik MT4 Data Folder dan Server name akan dipenuhi ruangannya Tekan OK dan Langkah seterusnya klik pasangan mata wang yang ingin dibuat backtest. Cari tempat yang sama tadi di mana folder akaun real berada. contohnya EURUSD Kemudian klik butang Export MT4 di atas .Kemudian klik butang Selection di penjuru MT4 Installation.

Klik Last 5 years dan seterusnya klik Menu Metatrader Info . EA akan memberikan keputusan yang terbaik. Pengalaman saya. export data 5 tahun adalah yang terbaik.akan muncul window yang baru ini Berasaskan Data export sahabat boleh pilih berapa tahun atau bulan data yang ingin diuji lari.

Sperad dapat di MT4 platform . Spread 30. Spread 3 pip. Spread dan Digits. Contoh leverage 1000. Digits 4. Iaitu leverage. Pastikan kita mengisi/mengubah data yang tepat.Di bahagian ini kena cermat/berhati-hati. Jika Digits 5.

Biasanya jika talian internet laju. proses download bermula.Tekan OK. akan ada paparan sebegini. Contoh saya download data pasangan mata wang GBPUSD. Apabila selesai download data. proses download data ambil masa dalam 1 jam. Jika macam saya tinggal di kampung Senggarang Batu Pahat Johor. . talian streamyx hanya mampu 4 MB. akan mengambil masa 5.10 jam untuk data tersebut selesai di download.

Kita sambung lagi. . akan ada makluman seperti ini Kemudian kita boleh buat pemeriksaaan data yang didownload dengan melihat di folder yang telah disetkan pada permulaan tadi. Contoh saya download di folder Instaforex contest. Kita lihat folder pasangan mata wang GBPUSD berada sebaris dengan folder Experts dan yang lain. Selepas proses download data pasangan mata wang selesai.

.

.

.

. sebelum dijalankan/dilarikan dalam akaun real. EA ini mesti melalui ujian backtest dahulu yang disediakan dalam MT4 dengan menekan butang Strategy Tester. Strategy tester ini merupakan peringkat terakhir dalam pembangunan sistem EA.Sebelum EA ini dapat digunakan di akaun real akaun atau forwardtest. akaun demo atau akaun contest.

Isikan tarikh 5 tahun data dengan klik kotak sebelah kiri. Spread: Current. Sebelah kanan tetapkan Period contohnya H4. . Dan seterusnya tekan butang Start di sebelah bawah. Kemudian double klik. Masukkan symbol/pasangan mata wang yang telah didownload datanya.Langkah seterusnya klik EA yang ingin di buat backtest dengan mengklik EA dari senarai dalam folder Expert Advisor. contoh GBPUSD. Klik juga kotak Visual mode. Hasil keputusan backtest yang dijalankan dipaparkan seperti rajah-rajah di bawah.

.

Di sinilah teknik Optimization sangat-sangat diperlukan.Kita sambung lagi bab seterusnya. Bila pertama kali kita uji EA yang dibangunkan atau dari EA orang lain. Tukar nilai Max bars in history dan Max bars in charts menjadi 9999999999999 . Langkah-langkahnya. Kerugian ini disebabkan kombinasi input parameter yang disetkan awal tadi tidak mantap. pasti ada kerugian. Seperti di atas. Klik Menu Tools>Options Klik menu Charts.

Tekan OK. Kemudian Klik Butang Experts properties sebelah kanan bawah. .

letak nilai modal awal di kotak Initial deposit contohnya 1000 dan yang lain default. Seterusnya klik menu Inputs .di menu Testing.

TrailingStop dan Slippage.Double klik di bahagian bawah Tajuk Step untuk Magic Numbers. Step = 1 dan Stop = 15 seperti ini . TakeProfit. StopLoss. Sahabat akan dapat lihat semua ruangan akan dipenuhi seperti di rajah bawah Pembetulan. masukkan dulu di ruang Value dan Start untuk TrailingStop dan 5 . Lots.

Tekan OK Kemudian klik kotak Optimization Seterusnya tekan butang Start .

optimization untuk Period H1 tidak berjaya. Tujuan proses ini adalah untuk mendapatkan kombinasi input yang memberikan profit yang tinggi.Sahabat lihat proses optimization sedang dijalankan. Dalam akaun demo ini. Kita tukar Period H4. Dan klik start Pun di Period H4 tidak Berjaya .

proses optimization telah berjaya di lakukan. .Kemudian tukar Period ke M30 Alhamdulillah di M30.

Optimization di M30 telah melalui fasa optimize sebanyak 392 .

copy semua data itu dan paste ke microsoft excel Letakkan di column B2 .Langkah seterusnya.

Set All borders Format Autofit coloum width .

Orders: Largest to Smallest .Seterusnya Sort & Filter >Custom Sort Sort by column: C.

Tekan Ok Itu hasilnya proses optimization. Langkat seterusnya masukkan nilai tersebut pada fail EA di MetaEditor akan jadi seperti di bawah .

.Tekan butang Compile dan Active the trading terminal. F4 Lihat perubahan nilai input parameters di bahagian Expert properties kemudian tekan butang Reset Nilai input telah pun berubah ke nilai yang baru.

Tekan OK Dan seterusnya untick kotak Optimization dan seterusnya klik butang Start Ini hasilnya .

Ok maka tamatlah proses pembelajaran hari ini. Kita boleh menggunakan mana-mana parameter selain dari row 1. . Seterusnya untuk mendapatkan laporan penuh strategy tester report.55 ditunjukan dalam rajah di atas.Profit sebanyak USD1555. letakkan mouse di sini dan tekan buatng kanan. Yang penting adalah profit yang dijanakan itu tinggi. klik Save as Report Letakkan dalam folder EA dan save Maka akan terpapar laporan tersebut.

Sahabat trader semua boleh mencuba. InsyaAllah saya akan cuba membantu dengan ilmu yang Allah swt berikan kepada saya. .