Sabtu, 25 Agustus 2012

Belajar Membuat EA Sederhana 10

Akhirnya kita sampai pada part 10  dan pastikan anda telah membaca part 9

Setelah kita belajar di part sebelumnya bahwa EA sudah bisa order buy dan sell dengan jam yang bisa disesuaikan serta order hanya terbatas masing2 1 order pertype.
Jadi dasar Order EA sebelumnya (triger) adalah jumlah order buy=0 atau jumlah sell = 0.

Nah dasar order EA inilah yang perlu dikembangkan berdasarkan keinginan.

Untuk menambah wawaan tetntang triger ini saya akan membasar tentang Indikator

Indikator yang paling sederhan di dalam Mt4 adalah Candelistik

Coba perhatikan image berikut:


1. Harga tertinggi disebut dengan High

Untuk mengetahui harga high ini dengan cara custum sbb
         iHigh(string Symbul ,int time frime , int shit)
string symbul untuk pair yang di attack digunakan Symbul()
untuk pair langsung bisa ditulikan contoh "GBPUSD"  atau "EURUSD"

int timefreme bisa ditentukan , coba perhatikan

nah tinggal dipilih aja yang mau digunakan, tapi kalau mau membaca candel pada EA di attack maka bisa diisi dngan angka 0

int shif ini untuk menentukan kondisi candel ,
contoh :
bila 0 artinya candel saat berlangsung,
 bila 1 artinya 1 candel sebelum sekarang
2 artinya 2 candel sebelum sekarang

Karena harga High ini merupakan bilangan berkoma maka termasuk tipe data double, sehingga untuk menentukan membuat variabel high ini sbb
contoh

doubel tinggi =  iHigh(Symbol(),PERIOD_H1, 1);

artinya  Harga tertinggi  pada 1  candel  sebelum sekarang (sebelumnya) dan pata time frime H1 dan saya namakan dengan nama variabel tinggi

Time frime ini juga bisa ditulis dalam nilai (value) dalam menit ,contoh kalau  PERIOD_H1  bisa diganti dengan 60 ,  PERIOD_H4 bisa diganti dengan 240 , PERIOD_D1  bisa diganti dengan 1440 dsb.
Tetapi bila di tulis 0 bukan berarti 0 menit tetapi timefrimenya mengikuti chart dimana EA di attack.

contoh:
doubel tinggi =  iHigh(Symbol(),0, 1);
Maka nilai tinggi candel dimana EA akan di attack , bila di attack di time frime(TF) 30 maka akan memabaca titik tinggi 1 candel  sebelumnyam demikian juga kalau di attack di TF H4 juga candel di H4 yang akan di bacanya.

Ada tambahan
doubel tinggi =  iHigh(Symbol(),0, 1);
kadang juga ditulis   
doubel tinggi =  High[1];


Jadi kalau  High[2]  artinya titik tertinggi pada 2 candel sebelumnya pada TF dimana EA di attack

2, Harga pembukaan disebut Open

Sama halnya dengan High, dalam penulisan ketentuannya sama

doubel buka =  iOpen(Symbol(),PERIOD_H1, 1);
Penjelasanya sama dengan High

3. Harga Penutupan disebut Close

doubel tutup =  iClose(Symbol(),PERIOD_H1, 1); 
 Penjelasanya sama dengan High

4. Harga terbawah disebut dengan Low

 doubel bawah =  iLow(Symbol(),PERIOD_H1, 1); 

Penjelasanya sama dengan High

Daei penjelasan di atas mungkin sedikit bisa di pahami
Contoh dalam terapan sebuah EA yang biasanya digunakan sebagai triger

if(Close[2] <  Close[1]) { -----order buy ----- }
atau
if(iClose(Symbol(),0, 2) <  iClose(Symbol(),0, 1)) { -----order buy -----}

artinya bila harga penutupan candel 2 sebelumnya lebih kecil dengan penutupan candel 1sebelumnya maka order buy
Bisa juga dibuat variabel
double tutup_1  = iClose(Symbol(),0, 1);
double tutup_2  = iClose(Symbol(),0, 2);

if( tutup_2< tutup_1){-----order buy -----}

 Nah dari gambaran diatas ini maka bisa silahkan dicoba di masukan ke dalam EA yang sudah dibuat di part sebelumnya
Oke silahkan dicoba dulu deh


Salam profit

Pastikan Membaca:


  • Belajar Membuat EA sederhana part 1
  • Belajar Membuat EA sederhana part 2
  • Belajar Membuat EA sederhana part 3
  • Belajar Membuat EA sederhana part 4
  • Belajar Membuat EA sederhana part 5
  • Belajar Membuat EA sederhana part 6
  • Belajar Membuat EA sederhana part 7
  • Belajar Membuat EA sederhana part 8
  • Belajar Membuat EA sederhana part 9
  • Belajar Membuat EA sederhana part 10
  • Belajar Membuat EA sederhana part 11
  • Belajar Membuat EA sederhana part 12
  • Belajar Membuat EA sederhana part 13
  • Belajar Membuat EA sederhana part 14
  • Belajar Membuat EA sederhana part 15
  • Belajar Membuat EA sederhana part 16
  • Belajar Membuat EA sederhana part 17
  • Belajar Membuat EA sederhana part 18
  • Belajar Membuat EA sederhana part 19
  • Belajar Membuat EA sederhana part 20
  • Belajar Membuat EA sederhana part 21
  • Belajar Membuat EA sederhana part 22





  • Jumat, 24 Agustus 2012

    Belajar Membuat EA Sederhana 9

    Di part 8 kita sudah banyak membahas tentang filter penggunaan EA di broker 5 digits

    Kali ini kita akan membahas tentang flter lots.
    Kegunaannya ini untuk mencegah terjadinya error yang di sebabkan oleh parameter lots yang tidak sesuai

    Di pembahasan sebelumnya kita sudah banyak membahas juga tentang penggunaan scrip secara langsung dan juga bisa menggunakn fungsi. Jada pada dasar setiap trader dalam menuangkan kode program itu punya gaya sendiri , dan tidak mesti sama setiap orang .

    Nah untuk menambahkan   filter lots ini saya akan berbagi script dalam bentuk fungsi yang selama ini saya gunakan, sbb:

    double NR(double thelot)
    {
        double maxlots = MarketInfo(Symbol(), MODE_MAXLOT),
        minilot = MarketInfo(Symbol(), MODE_MINLOT),
        lstep = MarketInfo(Symbol(), MODE_LOTSTEP);
        double lots = lstep * NormalizeDouble(thelot / lstep, 0);
        lots = MathMax(MathMin(maxlots, lots), minilot);
        return (lots);
    }

    Penggunaannya bagaimana?

    Pada EA yang telah kita buat di part sebelumnya kita ambil bagian yang ada hubungannya dengan pengaturaun lots yaitu  Lots dan kita tambahkan menjadi  NR(Lots)

    Sehingga sebelumnya

    if(Jam_trade()==1){
      if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
      if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
     }

    Menjadi:

    if(Jam_trade()==1){
      if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,NR(Lots),Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
      if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,NR(Lots),Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
     }

    Dari penamahan script diatas maka bila terjadi kekeliruan pengisian parameter lots maka EA tetap akan melakukan eksekuri order dan tidak error.
    Bila pengisian lotsnya salah dan terlalu kecil maka EA tetap melakukan order dengan menggunakan lots terkecil yang di ijin ka oleh broker, dan juga bila di gunakan pada penggunaan lots yang salah tetap akan order sesuai kektentuan broker , dengan tambahan filter ini maka akan terhindar dari error yang disebabkan oleh kesaalan penggunaan lots

    Kita masukkan ke dalam EA sebelumnya jadinya





    Oke bro sampai di sini dulu ketemu pada part 10 dalam pembahasan yang berbeda


    Salam Profit

    Pastikan Membaca:




  • Belajar Membuat EA sederhana part 1
  • Belajar Membuat EA sederhana part 2
  • Belajar Membuat EA sederhana part 3
  • Belajar Membuat EA sederhana part 4
  • Belajar Membuat EA sederhana part 5
  • Belajar Membuat EA sederhana part 6
  • Belajar Membuat EA sederhana part 7
  • Belajar Membuat EA sederhana part 8
  • Belajar Membuat EA sederhana part 9
  • Belajar Membuat EA sederhana part 10
  • Belajar Membuat EA sederhana part 11
  • Belajar Membuat EA sederhana part 12
  • Belajar Membuat EA sederhana part 13
  • Belajar Membuat EA sederhana part 14
  • Belajar Membuat EA sederhana part 15
  • Belajar Membuat EA sederhana part 16
  • Belajar Membuat EA sederhana part 17
  • Belajar Membuat EA sederhana part 18
  • Belajar Membuat EA sederhana part 19
  • Belajar Membuat EA sederhana part 20
  • Belajar Membuat EA sederhana part 21
  • Belajar Membuat EA sederhana part 22








  • Kamis, 23 Agustus 2012

    Belajar Membuat EA Sederhana 8

    Pada kesempatan sebelumnya di part 7  talah banyak kita bahas parameter EA sederhana dimana EA yang sudah jadi telah bisa melakukan order buy dan sell (hedge) secara terus menerus ketika type order 0 dan dengan penambahan filter jam trading.

    Kelemahan pada EA yang telah kita buat sebelum adalah belum suport untuk broker 5 digits .
    Untuk itu kali saya akan tambahkan filter broker 5 digits
     Perbedaan antara broker 4 digits dan 5 digits terletak pada Points

    Ada banyak cara untuk membuat EA agar dapat digunakan di broker 5 digits tapi saya akan beri 2 cara sederhana, al:
    1. membuat skrip langsung

    kita buat deklarasi dulu , mengingat nilai point merupakan bilangan berkoma maka termasuk type data double,
    double pt=0; // ini di letakkan di dklarasi.

     kita buat skrip sbb:
       if(Digits==3 || Digits==5) pt=10*Point;   else   pt=Point;

    Maksudnya adalah bila digits=3  atau  digits=5  maka pt = 10 x point  else (artinya bila tidak) maka pt =point
    disisipkan di bawah int init()

    jadinya

    int init()
      {
    //----
    if(Digits==3 || Digits==5) pt=10*Point;   else   pt=Point; 
    //----
       return(0);
      }
    Apa maksudnya di tempat kan disini ?

    int init() ini menyimpan data saat EA di attack , sebenarkan tidak mesti harus ditempatkan di dalam init() bisa juga ditempatkan di dalam int start().

    Terus apa bedanya bila di tempatkan di init() dan di start()?

    Bila di tempatkan di dalam init() maka nilai pt (pont) akan di baca baik di dalam int start() maupun diluar tetapi kalau di tempat kan di int start() maka diluar int start() tidak terbaca.

    terus gimana cara merubahnya?

    kita lihat bagian EA sebelumnya yang terkait dengan point

    if(Jam_trade()==1){
      if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
      if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
     }

    Ini yang ada point nya kita ganti dengan pt, jadinya <\:

    if(Jam_trade()==1){
      if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*pt, Ask+TP*pt,Nama_EA,Magic,0,Blue);}
      if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*pt, Bid-TP*pt,Nama_EA,Magic,0,Red);}
     }

    Sehingga bila kita masukkan kedalam EA sbb




    2. Dengan menggunakan fungsi

    Mengingat point adalah type data bilangan berkoma maka kita mulai dengan double


    double dpt()

    {

     if(Digits==3 || Digits==5) pt=10*Point;   else   pt=Point;
     return(pt);

    }

    karena ini fungsi maka di tempatkan di luar int start(), dan untuk penerapannya tinggal poin diganti dangan dpt()

    Sehinnga jadinya EAnya sbb




    Saya yakin tidak sulit ini tinggal di Compile saja jadi deh

    Mudahkan

    Kasih komen deh
    sampe ktemu di part 9 ya

    salam profit
    Pastikan Membaca:






  • Belajar Membuat EA sederhana part 1
  • Belajar Membuat EA sederhana part 2
  • Belajar Membuat EA sederhana part 3
  • Belajar Membuat EA sederhana part 4
  • Belajar Membuat EA sederhana part 5
  • Belajar Membuat EA sederhana part 6
  • Belajar Membuat EA sederhana part 7
  • Belajar Membuat EA sederhana part 8
  • Belajar Membuat EA sederhana part 9
  • Belajar Membuat EA sederhana part 10
  • Belajar Membuat EA sederhana part 11
  • Belajar Membuat EA sederhana part 12
  • Belajar Membuat EA sederhana part 13
  • Belajar Membuat EA sederhana part 14
  • Belajar Membuat EA sederhana part 15
  • Belajar Membuat EA sederhana part 16
  • Belajar Membuat EA sederhana part 17
  • Belajar Membuat EA sederhana part 18
  • Belajar Membuat EA sederhana part 19
  • Belajar Membuat EA sederhana part 20
  • Belajar Membuat EA sederhana part 21
  • Belajar Membuat EA sederhana part 22
  • Rabu, 22 Agustus 2012

    Belajar Membuat EA Sederhana 7

    Pastikan anda telah mengikuti part 6 disini

    Pada part 6 telah kita bikin EA yang bisa buy dan sell dengan tambahan paremeter pilihan untuk terus trading buy atau sell dengan menggunakan boolian sehingga bisa digunakan pilihan true ata false.

    Kali kita akan bahas tentang menambahkan waktu trading

    Waktu trading kali ini kita  bahas menggunakan waktu trading broker (time broker) dengan menggunkan variabel Hour() untuk Jam dan Minute() untuk waktu menit

    Cukup  sederhana contoh
    if(Hour()== 7 && Minute()==5)
    Artinya Ketika  (jam 7 lewat 5 menit  ) kondisi apa yang diinginkan .......

    kita coba terapkan dalam perintah EA  kita


    if(Hour()== 7 && Minute()==5){
       if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
       if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
    }

    Pada penambahan di atas maka EA hanya akan Order buy dan sell ketika jam broker telah menunjukan jam 7 lewat 5 menit .

    Nah bagamana supaya parameter waktu yang diinginkan bisa mudah di tampilkan dalam EA ?

    Maka kita bisa membuat deklarasi waktu jam dan menit (waktu ini merupakan tipe data integer / tidak berkoma)
    contoh

    extern int  Jam_Order  =7;
    extern int  Menite        = 5;
     sehingga kalau dimasukkan ke dalam EA  sbb:


    if(Hour()== Jam_Order && Minute()==Menite){
      if(jumlahorder(0)==0 && Trade_buy) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-SL*Point, Ask+TP*Point,Nama_EA,Magic,0,Blue);}
      if(jumlahorder(1)==0 && Trade_sell) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
     }

    Mudahkan?
    Ooooooo   ternyata mudah tinggal silahkan di coba di copas ke dalam EAnya .................
    Jadideh!

    Terus bagamana seandainya kita mau menambahkan waktu trading  dari jam tertentu sampai jam tertentu?

    Nah untuk membuat batasan waktu ini saya akan bagikan sebuah skrip jadi yang biasa digunakan dalam bentuk fungsi
    Sebelumnya kita buat deklarasi waktu mulai dan mengakhiri  trading

    extern    int                Mulai_Jam    =  22;
    exter       int              Akhir_Jam    =   4;
    kemudian fungsi waktunya sbb:


    int Jam_trade()
    {
       bool trade = false;
       if(Mulai_Jam > Akhir_Jam){
         if (Hour() >= Mulai_Jam || Hour() < Akhir_Jam) trade = true;
       } else
         if (Hour() >= Mulai_Jam && Hour() < Akhir_Jam) trade = true;
       return (trade);
    }

    Karena skrip tersebut dalam bentuk fungsi maka penempatannya diluar int start()
    Sekilas dari skrip tersebut menggunakan  bool dalam terapan waktu trading dan harus bernilai 1 .
    Silahkan di simak dan di telaah fungsi terebut diatas!

    untuk terapan penggunaanya dalam EA   if(Jam_trade()==1){.....}

     Kalau kita masukkan ke dalam EA 2 sbb:



    Oke bro EA sudah jadi silahkan di Compile dan EA siap digunakan untuk trade. Parameter sudah lengkap tapi mengenai profit dan tidaknya yang silahkan di coba sendiri 

    Salam profit 
    Sampai ketemu pada part 8 dalam pembahasan yang lain

    Pastikan Membaca:



  • Belajar Membuat EA sederhana part 1
  • Belajar Membuat EA sederhana part 2
  • Belajar Membuat EA sederhana part 3
  • Belajar Membuat EA sederhana part 4
  • Belajar Membuat EA sederhana part 5
  • Belajar Membuat EA sederhana part 6
  • Belajar Membuat EA sederhana part 7
  • Belajar Membuat EA sederhana part 8
  • Belajar Membuat EA sederhana part 9
  • Belajar Membuat EA sederhana part 10
  • Belajar Membuat EA sederhana part 11
  • Belajar Membuat EA sederhana part 12
  • Belajar Membuat EA sederhana part 13
  • Belajar Membuat EA sederhana part 14
  • Belajar Membuat EA sederhana part 15
  • Belajar Membuat EA sederhana part 16
  • Belajar Membuat EA sederhana part 17
  • Belajar Membuat EA sederhana part 18
  • Belajar Membuat EA sederhana part 19
  • Belajar Membuat EA sederhana part 20
  • Belajar Membuat EA sederhana part 21
  • Belajar Membuat EA sederhana part 22
  • Belajar Membuat EA Sederhana 6

    Untuk mengikuti ini pastikan sudah membaca  part 5 di sini


    Sebelum membahas tentang filter waktu kita akan tambahkan tentang  type data.  Sebelum nya kita sudah bahas tentang string, int dan doubel . Ada satu lagi yang sering digunakan untuk sebagai pilihan yaitu bool.
    Bool ini mengahilkan nilai 1 bila true dan 0 bila false.
    Jadi data tipe ini dalam sebiah deklarasi di dahului dengan  kata bool dan ditambahkan kata tanpa sepasi kemudian = (sama dengan) dan di beri pilihan false atau true dan diakhiri dengan ; (titik koma)
    contoh:
    Kita mau menambahkan pilihan untuk EA sebelumnya supaya ada pilihan untuk buy saja atau sell saja

    Kita buat deklarasi dulu
    extern bool Trade_buy= true;
    extern bool Trade_sell= true;

    terus dimana harus ditambahkan ?
    Untuk menambahkan ini maka yang perlu dicari adalah bagian triger atau pemicu ordernya, yaitu
      if(jumlahorder(0)==0)  jadinnya if(jumlahorder(0)==0 && Trade_buy== true )
      if(jumlahorder(1)==0)  jadinya  if(jumlahorder(1)==0 && Trade_sell==true )

    Penulisan Trade_buy== true bisa juga ditulis Trade_buy== 1  atau hanya  Trade_buy
    Sedangkan Trade_buy==false bisa juga ditulis Trade_buy== 0  atau   !Trade_buy

    Kita coba masukakan kedalam EAnya 


    Nah Ea di atas pada EA 2 yang menggunakan sedang kan untuk EA 1 silahkan ditambah akan sendiri
    Setelah kita Compile sukses maka kalau kita attack EAnya akan tampak sbb:

    Oke bro sampai di sini dulu bro kita lanjut di part 7

    Salam sukses
    Pastikan Membaca:




  • Belajar Membuat EA sederhana part 1
  • Belajar Membuat EA sederhana part 2
  • Belajar Membuat EA sederhana part 3
  • Belajar Membuat EA sederhana part 4
  • Belajar Membuat EA sederhana part 5
  • Belajar Membuat EA sederhana part 6
  • Belajar Membuat EA sederhana part 7
  • Belajar Membuat EA sederhana part 8
  • Belajar Membuat EA sederhana part 9
  • Belajar Membuat EA sederhana part 10
  • Belajar Membuat EA sederhana part 11
  • Belajar Membuat EA sederhana part 12
  • Belajar Membuat EA sederhana part 13
  • Belajar Membuat EA sederhana part 14
  • Belajar Membuat EA sederhana part 15
  • Belajar Membuat EA sederhana part 16
  • Belajar Membuat EA sederhana part 17
  • Belajar Membuat EA sederhana part 18
  • Belajar Membuat EA sederhana part 19
  • Belajar Membuat EA sederhana part 20
  • Belajar Membuat EA sederhana part 21
  • Belajar Membuat EA sederhana part 22
  • Belajar Membuat EA Sederhana 5

    Untuk mengikuti ini pastikan sudah membaca  part 4 di sini

    OKe semuanya
    Kalau pada EA yang sudah kita buat pada part 4 bahwa EA sudah bisa digunakan di semua pair dan telah digunakan fliter pair.
    Kali ini kita akan menambahkan supaya EA juga bisa melakukan order sell, mengingat pada EA sebelumnya hanya melakukan order buy saja.

    Untuk menambahkan Supaya bisa order sell maka yang diperlukan adalah skrip perintah order sell, sbb:

    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);

    Coba bandingkan dengan perintah order buy!
    Ada perbedaan yang perlu diketahui bahwa order buy mengacu pada harga berjalan Ask sedangkan order sell menggunakan  Bid.
    Selisih antara Ask dan bid inilah yang sering di sebut dengan spreed

    Pada order buy
    Ask-SL*Point, 
    Ask+TP*Point,

    Pada order sell
    Bid+SL*Point, 
    Bid-TP*Point 

    Dan untuk membedakan warna order disini saya gunakan blue untuk buy dan red untuk sell.

    Nah sekarang bagaimana untuk memasukkan perintah  order sell?

    Pada EA 1 di part 4 bahwa menggunakan filter pair langung, untuk itu sudah disediakan variabel penghitung order sell yaitu Jumlahsell  ,sehingga bisa dibuat kondisi : if(Jumlahsell==0) atau if(Jumlahsell<1)
    Jadinya sbb:

    if(Jumlahsell==0){OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}

    Pada EA 2 yang menggunakan filter pair dengan menggunakan fungsi adalah ,code>  if(jumlahorder(1)==0) bisa juga   if(jumlahorder(OP_SELL)==0) atau   if(jumlahorder(1)<1), bisa juga   if(jumlahorder(1)<1)

    Jadinya sbb:

    if(jumlahorder(OP_SELL)==0){OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
     
     bisa juga digunakan


    if(jumlahorder(1)<1){OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point, Bid-TP*Point,Nama_EA,Magic,0,Red);}
     Kemudian kita masukan kedalam EAnya

    EA 1 sbb:



    Jadi deh silahkan di Compile dulu kalau sukses berari EA sudah bisa Order sell , artnya bila tidak order buy maka akanmmelakukan order buy dan bila tidak ada order sell maka akan melakukan order sell sehingga EA ini akan melakukan hedge (order buy dan sell secara bersamaan)

    Mudah kan?

    Untuk EA 2 menggunakan filter fungsi sebagai berikut



      
    Oke silahkan di coba di Compile dulu dan kemudian di Beck test  , dan bila mana berhasil maka EA akan kelihatan melakukan buy dan sell

    Kemudaian hal lain yang perlu di ketahui bahwa dalam bahasa program mql4 untuk membuat keterangan yang dimana keterangan tersebut tidak di baca sebaga program biasa nya digunakan tanda  // untuk satu baris tetapi bila terdiri dari banya baris digunakan tanda  /* keterangan  dan diakhiri */ 

    Semoga berhasil dan selamat mencoba

    Sampai ketemu di part 6 (menambafkan filterWaktu trading) 

    Pastikan Membaca:


  • Belajar Membuat EA sederhana part 1
  • Belajar Membuat EA sederhana part 2
  • Belajar Membuat EA sederhana part 3
  • Belajar Membuat EA sederhana part 4
  • Belajar Membuat EA sederhana part 5
  • Belajar Membuat EA sederhana part 6
  • Belajar Membuat EA sederhana part 7
  • Belajar Membuat EA sederhana part 8
  • Belajar Membuat EA sederhana part 9
  • Belajar Membuat EA sederhana part 10
  • Belajar Membuat EA sederhana part 11
  • Belajar Membuat EA sederhana part 12
  • Belajar Membuat EA sederhana part 13
  • Belajar Membuat EA sederhana part 14
  • Belajar Membuat EA sederhana part 15
  • Belajar Membuat EA sederhana part 16
  • Belajar Membuat EA sederhana part 17
  • Belajar Membuat EA sederhana part 18
  • Belajar Membuat EA sederhana part 19
  • Belajar Membuat EA sederhana part 20
  • Belajar Membuat EA sederhana part 21
  • Belajar Membuat EA sederhana part 22
  • Selasa, 21 Agustus 2012

    Belajar Membuat EA Sederhana 4

    Untuk mengikuti ini pastikan sudah membaca  part 3 di sini

    Sebelum memulai ini saya mengucapkan Selamat Idhul Fitri
    "Minal Aidzin wal Faizin 
    Mohon Maaf Lahir dan Batin"

    Sebelumnya kita sudah mencoba membuat EA yang sederhana dimana EA yang telah dibikin hanya melakukan order Buy dan order dibatasi hanya  1 yang aktif yaitu buy.

    Kalau di perhatikan pada EA yang di buat pada part 3 ada beberapa kelemahan al:
    1. Hanya bisa digunakan satu pair saja (1 pasang mata uang)
    2. Hanya bisa melakukan order buy 
    3. Tidak ada batasan waktu trading
    4. Tidak menggunakan indikator untuk trigernya (pemicu ordernya)
    Kali ini kita bahas dulu tentang filter pair supaya EA yg telah kita buat di part 3 bisa digunakan di semua pair.
    di part 3 kita menggunakan:
    if(OrdersTotal()==0)
    yang dimaksud OrdersTotal ini adalah jumlah semua order diadalam Mt4 dari semua pair , termasuk pending order. Jadi kalau ada  1 pending buystop di EURUSD  dan ada 2 buy di GBPUSD jadi jumlahnya 3 order, sehingga karena kita membuat kondisi OrdersTotal() ==0  maka total order dihitung semua order.

    Ada beberapa cara untuk membuat filter pair dan saya akan bahas 2 macem cara yang umum digunakan menurut bahasa sederhana. 

    1. Cara langsung 

     Cara ini biasa dibuat skrip diatas perintah order  untuk menggantikan OrdersTotal(). 
    Skrip ini ada tinggal simpan di library  sebagai scrip standar yang mungkin suatu saat dipakai lagi

      int Jumlahbuy=0;
      int Jumlahsell=0;
      for(int i=0; i<OrdersTotal(); i++)
      {
          OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;
          if(OrderType()==OP_BUY)   Jumlahbuy++;
          if(OrderType()==OP_SELL)  Jumlahsell++;
      }
    Nah skrip diatas merupakan skrip yang sering dipakai

      int Jumlahbuy=0;
      int Jumlahsell=0;

    Ini merupakan variabel penghutung order , penempatan nya di ditempatkan di deklarasi (dibawah parameter yang ada extern) bisa juga di atas skrip seperti di atas.

    for(int i=0; i<OrdersTotal(); i++)
    Maksudnya adalah menghitung order aktif yang dimulai dari awal sampai terakhir. Kebalikan skrip ini biasannya menghitung mundur (bahasa sederhannya)
     for(int i=OrdersTotal()-1; i>=0; i--)

    Coba bandingkan dulu!

    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    ini scrip standar untuk memilih ordr aktif
     
    if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;


    Ini menggunakan atau (||) artinya memilih hanya pada symbul (pair) yang  dan numor magic di attack jadi yang lain dari itu diabaikan
    bisa juga kondisi ini menggunakan tanda dan (&&) bedanya bila menggunakan && tersebut  tanda != diganti dengan == sehingga jadinya
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) continue;

    Silahkan dibandingkan   2 kondisi tersebut  (jangan sampai terbalik karena kalau terbalik ini tidak berfungsi. Untuk itu tinggal  akan menggunakan && atau ||  atau keduanya dipakai

    Kemudian
      if(OrderType()==OP_BUY)   Jumlahbuy++;
    artinya membatasi order buy saja yang dihintung  dinyatakan kedalam sebuah variabel  Jumlahbuy
      if(OrderType()==OP_SELL)  Jumlahsell++;
     
     artinya membatasi order sell saja yang dihintung  dinyatakan kedalam sebuah variabel  Jumlahsell


    Terus gimana cara menggunakan?

    Tinggal mengganti saja 
    if(OrdersTotal()==0)  diganti dengan if(Jumlahbuy==0)  bisa juga diganti dengan  if(Jumlahbuy<1)

    Jadinya EAnya sbb:


    Nah EA diatas sudah bisa dipakai di semua pair 
    Mudahkan?

    2. Menggunakan Fungsi

    Jadi selain menggunakan cara langsung pada bagian 1 bisa juga digunakan fungsi.
    Fungsi ini menentukan nilai yang biasanya ditempatkan diluar int start().
    Karena jumlah order ini merupakan bilangan bulat tidak berkoma maka digunakan integer (int).

    coba perhatikan!

    int jumlahorder( int tipe)
    {
    int total=0;
    for(int i=0; i<OrdersTotal(); i++)
      {
          OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic ||
    OrderType()!=tipe) continue;
         total++;
      }
    return(total) ;
    }

    Ini merupakan skrip untuk filter order menggunakan fungsi .
    Cara menggunkan nya
     jumlahorder(OP_BUY) ini merupakan jumlah buy
    jumlahorder(OP_SELL) ini merupakan jumlah sell
    jumlahorder(OP_BUYSTOP) ini merupakan jumlah pending order Buystop
    dst....

    Type order bisa juga dinyatakan dalam bilangan
    OP_BUY     =    0
    OP_SELL    =   1
    OP_BUYLIMIT     =  2
    OP_SELLLIMIT    =  3
    OP_BUYSTOP     =   4
    OP_SELLSTOP    =  5

    Sehingga
     jumlahorder(OP_BUY)    bisa ditulis juga jumlahorder(0) 
    demikian juga untuk jumlahorder(OP_SELL) bisa ditulis jumlahorder(1)

    Sehingga pada EA diatas bisa diganti 
    if(Jumlahbuy==0) menjadi if(jumlahorder(OP_BUY)==0)  atau  if(jumlahorder(0)==0) 

    Dan kalau dimasukan ke dalam EAnya


    Nah silahkan di Compile hasil dari pembuatan terebut bila sukses berarti EA terebut sudah bisa digunakan, tapi bila masih ada errornya maka silahkan dikoreksei ulang mulai dari awal dan bandingkan dengan hasil di atas (copykan hasil di atas ke metaeditor ).

    Semoga sukses 
    Jangan lupa kasih komen masukan ya untuk memudahkan belajar membuat EA sederhana terebut.
    Disini saya berupaya menguraikan dengan bahasa saya yang sederhana dan bukan bahasa seorang yang belajar dari ilmu programer jadi mudah2 an mudah dipahami dan  bila ada kekurangan yah harap maklum, tapi ini didasari dengan niat yang tulus saling belajar dan memajukan trader Indonesia.

    Salam Profit semuanya
    sampai jumpa di part 5

    Pastikan Membaca:



  • Belajar Membuat EA sederhana part 1
  • Belajar Membuat EA sederhana part 2
  • Belajar Membuat EA sederhana part 3
  • Belajar Membuat EA sederhana part 4
  • Belajar Membuat EA sederhana part 5
  • Belajar Membuat EA sederhana part 6
  • Belajar Membuat EA sederhana part 7
  • Belajar Membuat EA sederhana part 8
  • Belajar Membuat EA sederhana part 9
  • Belajar Membuat EA sederhana part 10
  • Belajar Membuat EA sederhana part 11
  • Belajar Membuat EA sederhana part 12
  • Belajar Membuat EA sederhana part 13
  • Belajar Membuat EA sederhana part 14
  • Belajar Membuat EA sederhana part 15
  • Belajar Membuat EA sederhana part 16
  • Belajar Membuat EA sederhana part 17
  • Belajar Membuat EA sederhana part 18
  • Belajar Membuat EA sederhana part 19
  • Belajar Membuat EA sederhana part 20
  • Belajar Membuat EA sederhana part 21
  • Belajar Membuat EA sederhana part 22
  •  
    Support : Creating Website | Johny Template | Mas Template
    Copyright © 2011. Strategi Profit Forex - All Rights Reserved
    Template Created by Creating Website Published by Mas Template
    Proudly powered by Blogger