TradingBoxing: EA Unggulan untuk MetaTrader 5

Mike 2018.06.18 22:58 22 0 0
Lampiran

Dalam pengembangannya, kami terinspirasi oleh kode TradingBoxing. Namun, kode di bawah ini hanya berdasarkan ide tersebut, sementara semua implementasi sepenuhnya menggunakan MQL5 dan kelas trading yang baru.

Panel trading ini memiliki satu parameter input, yaitu magic number - pengenal unik untuk EA.

Tampilan panel trading:

TradingBoxing

Untuk menampilkan volume (baik untuk posisi maupun order yang tertunda), kelas standar CSpinEdit sedikit dimodifikasi dan disimpan sebagai CSpinEditDouble. Sayangnya, kami tidak dapat membuatnya menggunakan pewarisan, karena kami harus mengubah anggota kelas yang dideklarasikan sebagai "private".

Sesuai dengan nama kelasnya, kelas ini dibuat untuk menampilkan data tipe double. Oleh karena itu, kami menambahkan metode DisplayedDigits - yang menentukan akurasi tampilan teks dalam kontrol.

Field teks dalam kontrol ini juga dibuat dapat diedit. Misalnya, ini bisa sangat berguna ketika Anda perlu memasukkan harga atau volume yang sangat berbeda dari nilai dalam field teks. Agar teks dari field teks dapat disimpan sebagai nilai, metode EndEdit ditambahkan ke kelas CSpinEditDouble:

   int               m_digits;              // digit yang ditampilkan
   //---
   void              EndEdit() { Value(StringToDouble(Text())); }

public:
                     CSpinEditDouble(void);

Metode ini mengingat teks yang dimasukkan sebagai nilai.


Metode EndEdit dipanggil dari kelas OnEvent CSpinEditDouble:

//+------------------------------------------------------------------+
//| Pengolah umum untuk event chart                                   |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CSpinEditDouble)
  ON_EVENT(ON_CLICK,m_inc,OnClickInc)
  ON_EVENT(ON_CLICK,m_dec,OnClickDec)
  ON_EVENT(ON_END_EDIT,m_edit,EndEdit)
EVENT_MAP_END(CWndContainer)

Agar order trading dapat diproses secepat mungkin (bahkan di pasar yang sangat tenang di mana tick datang dengan interval yang besar), setiap klik pada tombol panel trading akan memanggil secara paksa handler internal CTradingBoxingDialog::OnTick().

Daftar
Komentar 0