Ayo bikin EA bersama Totom - part 3

Part 3 .... (lanjutan)

Selanjutnya saya membuat kode untuk user inputnya yang kurang lebihnya seperti ini:




Mari kita bahas kode tersebut diatas satu-persatu:
  1. #property copyright "xxxx" kode ini menunjukkan kepemilikan dari sebuah EA. Kode ini berfungsi hanya pada saat back testing saja dimana akan menampilkan nama pemiliknya dibelakang nama EA-nya. Lihat gbr. 
  2. #property link kode ini menunjukkan link si pembuat EA, dalam hal ini saya.
  3. MagicNumber variable ini digunakan sebagai order identifier oleh EA. Hanya order yang dibuat oleh EA yang memiliki MagicNumber.
  4. StartLot variable ini menunjukkkan besarnya lot dasar yang ditradingkan oleh EA. Kenapa variable ini dinamai StartLot? Karena jika feature Martingale-nya diaktifin, StartLot ini merupakan awal dari susunan lot yang besarnya berbeda-beda
  5. StopLoss variable ini menunjukkan besarnya toleransi kita mengenai seberapa besar pips yang maximum bisa kita relakan jika market bergerak melawan.
  6. TakeProfit variable ini menunjukkan seberapa besar target keuntungan kita dalam pips per order yang dibuat oleh EA
  7. TrailingStop variable ini menunjukan setiap berapa pips dalam arah profit EA akan menggeserkan stoplossnya.
  8. MoveToBreakEvent variable ini jika diset ke true, setelah harga bergerak kearah profit sebesar stoplevel + LockedPips, maka stoploss akan dipindahkan ke harga pembukaan +/- LockedPips tergantung tipe ordernya
  9. LockedPips baca no. 8
  10. RSIPeriod variable ini menunjukkan jumlah bar yang dikalkulasikan untuk mendapatkan nilai RSI
  11. UpperLevel variable untuk menentukan overbought
  12. LowerLevel variable untuk menentukan oversold
  13. Martingale variable ini jika diset ke true, maka fungsi martingale pada EA ini akan diaktifkan
  14. Multiplier variable ini adalah faktor kali yang digunakan untuk menentukan besarnya lot pada order berikutnya jika order sebelumnya dalam loss dan fungsi martingale dari EA ini diaktifkan
  15. DeepLevel variable ini digunakan untuk menentukan kedalaman martingale sampai berapa level kekalahan yang akan dicover atau digandakan lotnya secara terus-neberus jika terjadi loss yang berturut-turut.
  16. StartHour variable yang digunakan untuk menentukan jam mulai trading
  17. EndHour variable yang digunakan untuk menentukan jam berhenti trading



selanjutnya kita buat satu fungsi yang penting bagi EA ini, yaitu order counting atau fungsi penghitungan order.

kurang lebihnya kode dari fungsi order counting ini adalah sebagai berikut:



fungsi ini menghasilkan berapa jumlah order terbuka yang hanya dibuat oleh EA ini. Order lainnya misalkan kita open order lain baik di pair yang sama ataupun pair yang berbeda tidak akan dihitung.



selanjutnya kita akan buat fungsi lainnya yang tidak kalah penting dari fungsi sebelumnya yaitu fungsi checkforlosses atau fungsi memeriksa loss dari order yang baru saja tertutup.

kode yang saya pakai seperti ini:



kelebihan dari fungsi ini dia akan tetap mampu mengenali order yang dibuat oleh EA dan menjudgementnya sebagai order yang loss atau yang profit walaupun siempunya EA membuat banyak order secara manual.



fungsi lainnya yang perlu dibuat adalah lastlot untuk mengetahui lotsize dari sebuah order setelah ditemukan losses oleh fungsi checkforlosses diatas.


kodenya seperti ini: