Beranda Indikator Teknis Postingan

Cara Mudah Menggunakan ChartObjectsCopyPaste di MetaTrader 5

Lampiran
52263.zip (7.43 KB, Unduh 0 kali)

Pernahkah kamu merasa kesulitan saat ingin menyalin dan menempel objek grafik antara chart yang terbuka? Saya yakin kamu pernah mengalaminya. Menariknya, MetaTrader tidak menyediakan fitur "Copy & Paste" untuk objek-objek tersebut. Satu-satunya cara yang bisa digunakan untuk mendapatkan efek serupa adalah dengan menggunakan template (file tpl). Namun, template ini menyimpan seluruh keadaan chart, termasuk indikator, pengaturan, dan banyak hal tambahan yang mungkin tidak relevan untuk proses yang kamu butuhkan.

Oleh karena itu, saya mengembangkan indikator ChartObjectsCopyPaste.mq5. Indikator ini memungkinkan kamu untuk menyalin objek yang dipilih ke clipboard, yang kemudian dapat ditempelkan ke chart lainnya. Tanpa syarat!

Indikator ini didasarkan pada indikator lain yang diterbitkan dalam buku algotrading - ObjectGroupEdit.mq5.

Silakan ikuti tautan tersebut untuk mempelajari lebih lanjut tentang semua kelas yang mendasari (seperti ObjectMonitor, MapArray, dan lainnya) yang bekerja di belakang layar.

Indikator ini tidak memiliki buffer. Indikator ini harus dipasang pada setidaknya 2 chart: chart sumber dari mana kamu ingin menyalin objek, dan chart tujuan tempat kamu berencana untuk menempelkannya.

Saat berjalan di chart, indikator ini melacak objek grafik yang ada dan mencatat objek mana yang dipilih.

Seperti biasa, perintah "Copy & Paste" bekerja secara berpasangan:

  • Tekan tombol pintas Ctrl+Q untuk menyalin semua objek yang dipilih ke clipboard Windows sebagai teks (kamu bisa menyimpannya dan melihatnya di editor teks, contohnya ada di bawah).
  • Di chart tujuan, tekan Ctrl+J untuk menempelkan semua objek dari clipboard.

Kenapa Ctrl+Q/Ctrl+J? Kedua kombinasi tombol ini dipilih secara sukarela dari sedikit pilihan yang ada. Ini karena MetaTrader mencegat dan tidak mentransmisikan banyak tombol pintas ke program MQL. Terutama untuk Ctrl+C/Ctrl+V/Ctrl+Ins/Shift+Ins yang tidak berfungsi dalam konteks ini.

Karena kode sumber tersedia, kamu bisa mengubah tombol pintas ke kombinasi lain.

Karena indikator ini menggunakan DLL sistem untuk mengakses clipboard Windows, kamu harus mengizinkan impor DLL dalam dialog Properties, pada tab Dependencies.

Karena Codebase tidak mengizinkan impor DLL, kode yang berkaitan dengan clipboard dibungkus dalam direktif preprocessor kondisional #ifdef DLL_LINK, jadi silakan hapus komentar pada baris

#define DLL_LINK

sebelum kompilasi. Jika tidak, kamu akan melihat bagaimana fungsi clipboard hanya menampilkan peringatan sebagai respons terhadap penekanan tombol pintas, dan tidak ada tindakan nyata yang akan dilakukan!

Input yang tersedia adalah:

  • MakeAllSelectable - flag untuk membuat semua objek dapat dipilih (yang biasanya false untuk objek yang dibuat secara programatik);
  • LogDetails - flag untuk mencetak semua properti objek yang dipindahkan ke log;

Indikator ini tidak memeriksa apakah objek yang ditempel cocok dengan chart tujuan yang sebenarnya, seperti simbol, rentang harga, jumlah sub-window, dll. - kamu harus melakukan ini sendiri.

Berikut adalah contoh teks clipboard dengan 2 objek:

OBJ_VLINE       H1 Garis Vertikal 5578   0       0
enum ENUM_OBJECT_PROPERTY_INTEGER
0       OBJPROP_COLOR   55295
1       OBJPROP_STYLE   2
2       OBJPROP_WIDTH   1
3       OBJPROP_BACK    0
4       OBJPROP_SELECTED        1
7       OBJPROP_TYPE    0
8       OBJPROP_TIME    1726739940
10       OBJPROP_SELECTABLE      1
11       OBJPROP_CREATETIME      1726847009
12       OBJPROP_TIMEFRAMES      2097151
200     OBJPROP_LEVELS  0
207     OBJPROP_ZORDER  0
208     OBJPROP_HIDDEN  0
1032    OBJPROP_RAY     1
enum ENUM_OBJECT_PROPERTY_DOUBLE
9       OBJPROP_PRICE   1.11449
enum ENUM_OBJECT_PROPERTY_STRING
5       OBJPROP_NAME    H1 Garis Vertikal 5578
6       OBJPROP_TEXT    
206     OBJPROP_TOOLTIP 
OBJ_CHANNEL     H1 Channel Equidistant 40885    5       1
enum ENUM_OBJECT_PROPERTY_INTEGER
0       OBJPROP_COLOR   255
1       OBJPROP_STYLE   0
2       OBJPROP_WIDTH   1
3       OBJPROP_BACK    0
4       OBJPROP_SELECTED        1
7       OBJPROP_TYPE    5
8       OBJPROP_TIME    1726758000
8       OBJPROP_TIME.1  1726797600
8       OBJPROP_TIME.2  1726758000
10      OBJPROP_SELECTABLE      1
11      OBJPROP_CREATETIME      1726847883
12      OBJPROP_TIMEFRAMES      2097151
200     OBJPROP_LEVELS  0
207     OBJPROP_ZORDER  0
208     OBJPROP_HIDDEN  0
1003    OBJPROP_RAY_LEFT        0
1004    OBJPROP_RAY_RIGHT       0
1031    OBJPROP_FILL    0
enum ENUM_OBJECT_PROPERTY_DOUBLE
9       OBJPROP_PRICE   -28.113879003558715
9       OBJPROP_PRICE.1 -21.708185053380777
9       OBJPROP_PRICE.2 -48.04270462633452
enum ENUM_OBJECT_PROPERTY_STRING
5       OBJPROP_NAME    H1 Channel Equidistant 40885
6       OBJPROP_TEXT    
206     OBJPROP_TOOLTIP 

Dan berikut adalah objek-objek tersebut yang ditempelkan di chart:

2 objek grafik ditempelkan di chart melalui clipboard


Postingan terkait

Komentar (0)