Contoh Ujian ChartEvent - Sistem Trading untuk MetaTrader 4

Mike 2017.05.11 19:36 11 0 0
Lampiran

Expert Advisor "Test_ChartEvent.mq4" ini adalah contoh yang menunjukkan pelbagai jenis ChartEvent: peristiwa kunci papan kekunci, klik & gerakan tetikus, serta peristiwa khusus. Anda boleh tekan kunci 'H' untuk mendapatkan bantuan dan tekan kunci 'M' untuk memasuki mod peristiwa MOUSE_MOVE.

Kod sumber ini berfungsi di MetaTrader 4 dan MetaTrader 5.


Prototip Fungsi

  • bool Obj_Create()
  • bool Obj_Delete()
  • bool Obj_Move(int hSens,int vSens) - menggerakkan objek.
  • void Print_Info() - mencetak maklumat tentang objek.
  • int MouseMove(int aXX,int aYY,string sState) - mengendalikan peristiwa gerakan tetikus.


Variabel Global

  • int gChartNo=0
  • int gSubWinNo=0
  • string gsObj_Name_selected="" - nama objek yang sedang dipilih.


Peristiwa Khusus

Tiga jenis peristiwa khusus ditakrifkan:

  • #define cMyEvent_1 0
  • #define cMyEvent_2 1
  • #define cMyEvent_3_broadcast 2


Fungsi OnTimer()

Fungsi ini mencipta ChartEvent khusus secara berkala. Ia secara rawak menjana tiga peristiwa khusus ini (cMyEvent_1, cMyEvent_2 dan cMyEvent_3_broadcast). Khususnya, peristiwa cMyEvent_3_broadcast dijana untuk semua tetingkap carta terbuka.


Contoh Kelas

Kelas "CObjectMan" dicipta untuk mengendalikan fungsi objek pada carta. Dua contoh (variabel) kelas ini diisytiharkan: gObjectMan1 dan gObjectMan2.

Nama Objek Grafik yang berkaitan dengan dua contoh ini masing-masing adalah: "Butang Hijau" dan "Butang Kuning".


Pemprosesan Peristiwa

void OnChartEvent():

Peristiwa "CHARTEVENT_KEYDOWN":

  1. 4 kunci arah (anak panah) atau 4 kunci arah pada panel digital untuk menggerakkan objek yang dipilih.
  2. 'H': mencetak maklumat Bantuan (di tetingkap log pakar).
  3. 'I': mencetak maklumat posisi dua Objek.
  4. 'M': mengaktifkan peristiwa MOUSE_MOVE.


Peristiwa Khusus

Mencetak maklumat tentang peristiwa ini. Terutama untuk peristiwa MyEvent_3_broadcast.


Peristiwa Objek

  • CHARTEVENT_OBJECT_CHANGE, CHARTEVENT_OBJECT_DRAG, CHARTEVENT_OBJECT_DELETE - mencetak nama objek yang berkaitan.
  • CHARTEVENT_OBJECT_CLICK - mencetak nama objek yang diklik, pilih namanya untuk dipindahkan dengan kunci arah.


Peristiwa Tetikus

  • CHARTEVENT_CLICK - mencetak maklumat bar yang diklik: harga (buka, tutup) dan masa bar.
  • CHARTEVENT_MOUSE_MOVE (lihat: CHART_EVENT_MOUSE_MOVE) - mencetak maklumat interval yang diliputi: jumlah bar, variasi harga.

Contoh Ujian ChartEvent


Demonstrasi

Anda boleh melakukan ujian berikut:

  • Klik pada salah satu daripada dua objek (Butang) untuk memilih dan gunakan kunci anak panah untuk menggerakkan objek yang dipilih.
  • Klik pada bar grafik dan lihat maklumat bar dalam tab log (mesej).
  • Tekan kunci 'M' untuk memasuki mod peristiwa MOUSE_MOVE. Tekan Ctrl+F untuk menunjukkan kursor silang, kemudian lakukan operasi drag'n'drop. Jika anda tidak melihat mesej log, sila ubah parameter input: "iLogLevel".
Senarai
Komen 0