Perdagangan Sistem

Menghitung Bounce Number untuk Strategi Grid dan Martingale di MetaTrader 4
MetaTrader4
Menghitung Bounce Number untuk Strategi Grid dan Martingale di MetaTrader 4

Dalam trading, ukuran lot dan jumlah transaksi untuk strategi seperti Grid dan Martingale sangatlah penting. Kita sering bertanya tentang apa yang terjadi di masa lalu suatu simbol selama zona range dan Berapa Kali harga memantul antara dua harga dalam Zona Range?! Inilah yang saya sebut sebagai Bounce Number. Bounce Number ini bisa dihitung melalui analisis statistik dari riwayat simbol di pasar. Untuk lebih jelasnya, mari kita lihat gambar No. 1. Gambar No. 1: Definisi Bounce Number, tujuan dan aplikasinya Gambar ini menggambarkan bagaimana pergerakan harga menghasilkan statistik dari Bounce Number Tool. Untuk menghindari keterlambatan pada alat ini, saya membuatnya sebagai EA yang menggunakan fungsi Sleep. Fungsi ini mencegah terjadinya crash pada grafik karena jumlah candle yang lebih tinggi yang diatur dalam input alat. Gambar lainnya (Gambar No. 2) menunjukkan struktur grafis alat dan arti objek-objeknya. Gambar No. 2: Statistik Bounce No. Penggunaan alat: Berdasarkan Gambar No. 2, jika kita mengatur Tinggi Setengah Saluran Bouncing menjadi 600 poin: terdapat 6 nomor pantulan berbeda dari 1 hingga 6 untuk simbol ini. Nomor pantulan 2 berarti, harga mulai dari tengah saluran pantulan (tinggi 2 * 600 = 1200 poin) dan bergerak naik turun juga menyentuh satu kali garis merah dan satu kali garis biru sebelum mencapai TP=1200 poin. Jadi untuk nomor pantulan 5, ini berarti harga mulai dari titik tengah saluran dan menyentuh 2 kali garis merah dan 3 kali garis biru ATAU 3 kali garis merah dan 2 kali garis biru sebelum mencapai TP=1200 poin. Hal yang sama dapat dikatakan untuk nomor pantulan lainnya. Kita tidak memiliki nomor pantulan 7, yang berarti tidak ada pantulan 7 kali antara garis merah dan biru (dengan jarak 1200 poin) dalam seluruh riwayat yang dipilih dalam input alat. Harap pertimbangkan bahwa jika Anda memilih lebih banyak data historis (Jumlah maksimal candle yang dilihat), peluang untuk menemukan 7 pantulan akan meningkat. Namun seperti yang kita lihat, bahkan peluang untuk 6 pantulan adalah 22 dari 9020 total item harga yang mencapai TP. Apa saja yang ada dalam input alat: Max number of lookback candles: Sama seperti alat pemindaian lainnya, berhati-hatilah dengan angka yang Anda atur untuk sel ini. Jangan meningkatkannya secara drastis untuk menghindari crash memori. Time-Frame: Time-Frame dari candle yang ingin kita gunakan untuk menemukan pantulan dari batas saluran dan juga menyentuh garis TP. Gunakan time-frame yang lebih rendah untuk saluran yang tipis. Jika Anda tidak tahu apa yang harus diatur, sebaiknya gunakan Time-Frame M1. Tinggi Setengah Saluran Bouncing: Jarak garis hijau dari garis merah dan biru, diukur dalam poin. Warna Latar Belakang Grafik Warna Grafik Batang 1/Warna Grafik Batang 2: untuk membuat batang statistik sedikit lebih menarik Warna Sel Hitung Warna Sel Nomor Pantulan Warna Bar Muat: Selama perhitungan, bar muat ini akan membantu pengguna mengetahui apakah alat sedang bekerja atau tidak serta seberapa cepat perhitungan berlangsung. - Tombol ditambahkan untuk memulai dan memasukkan jumlah candle historis dari layar.

2024.01.12
Cara Membuat Notifikasi Suara Koneksi dan Putus Koneksi di MetaTrader 5
MetaTrader5
Cara Membuat Notifikasi Suara Koneksi dan Putus Koneksi di MetaTrader 5

Pernahkah Anda merasa kesal ketika koneksi trading terputus dan Anda tidak menyadarinya? Dengan menggunakan utility ini, Anda bisa menambahkan notifikasi suara saat terhubung atau terputus dari server di MetaTrader 5. Ini sangat berguna untuk memastikan Anda tetap update dengan keadaan trading Anda.Berikut adalah langkah-langkah untuk menambahkan suara notifikasi:Tambahkan file suara wav ke dalam folder MQL5\Files\Sounds.Salin kode di bawah ini dan kompilasi utility EA. Pastikan untuk menghilangkan komentar yang berkaitan dengan #resource agar proses pengunggahan berjalan lancar.//+------------------------------------------------------------------+ //|                               Connect_Disconnect_Sound_Alert.mq5 | //|                                Copyright 2024, Rajesh Kumar Nait | //|                                https://www.mql5.com/en/users/rajeshnait/seller | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, Rajesh Kumar Nait" #property link      "https://www.mql5.com/en/users/rajeshnait/seller" #property version   "1.00" #include <Trade/TerminalInfo.mqh> bool     first             = true; bool     Now_IsConnected   = false; bool     Pre_IsConnected   = true; datetime Connect_Start = 0, Connect_Stop = 0; CTerminalInfo terminalInfo; //--- Sound files #resource "\\Files\\Sounds\\CONNECTED.wav" #resource "\\Files\\Sounds\\DISCONNECTED.wav" //+------------------------------------------------------------------+ //| Expert initialization function                                   | //+------------------------------------------------------------------+ int OnInit()   { //---       ResetLastError();       while ( !IsStopped() ) {          Pre_IsConnected = Now_IsConnected;          Now_IsConnected = terminalInfo.IsConnected();          if ( first ) {             Pre_IsConnected = !Now_IsConnected;          }          if ( Now_IsConnected != Pre_IsConnected ) {             if ( Now_IsConnected ) {                Connect_Start = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\\Sounds\\DISCONNECTED.wav"))                      Print("Error: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\\Sounds\\CONNECTED.wav"))                   Print("Error: ",GetLastError());             } else {                Connect_Stop = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\\Sounds\\CONNECTED.wav"))                      Print("Error: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\\Sounds\\DISCONNECTED.wav"))                   Print("Error: ",GetLastError());             }          }          first = false;          Sleep(1000);       } //---    return(INIT_SUCCEEDED);   } //+------------------------------------------------------------------+Untuk melihat cara mengimplementasikannya, Anda juga bisa menonton video berikut:

2024.01.08
Mengenal Alat MQL5 Lanjutan untuk Trader MetaTrader 5
MetaTrader5
Mengenal Alat MQL5 Lanjutan untuk Trader MetaTrader 5

Bagian 7. Alat MQL5 Lanjutan "Bagian 7. Alat MQL5 Lanjutan" dari buku "Pemrograman MQL5 untuk Trader" membahas kemampuan canggih dari API MQL5 yang sangat berguna saat mengembangkan program untuk MetaTrader 5. Di sini, kita akan membahas simbol keuangan kustom, peristiwa kalender ekonomi bawaan, dan teknologi umum seperti jaringan, basis data, serta kriptografi. Bagian ini juga mengupas mengenai pustaka – jenis program khusus yang menyediakan API siap pakai untuk menghubungkan dengan program MQL lainnya. Kita juga akan membahas kemungkinan pengembangan paket perangkat lunak dan menggabungkan program-program yang saling terkait secara logis ke dalam proyek. Terakhir, bagian ini akan memperkenalkan integrasi dengan lingkungan perangkat lunak lain, termasuk Python. Kita akan mulai dengan mempelajari sumber daya, yang merupakan file dari berbagai tipe yang dapat disematkan dalam kode program. Sumber daya ini bisa berisi: Elemen multimedia Pengaturan "keras" dari program eksternal Program MQL5 lainnya dalam bentuk terkompilasi Lingkungan pengembangan MQL5 memungkinkan inklusi array data aplikasi, gambar, suara, dan font ke dalam file sumber, sehingga program menjadi produk yang mandiri dan nyaman bagi pengguna akhir. Perhatian khusus akan diberikan pada sumber daya grafis dengan gambar raster dalam format BMP: Anda akan belajar bagaimana cara membuat, mengedit, dan menampilkan gambar tersebut secara dinamis di grafik. Kita akan menutup bagian akhir buku ini dengan mempelajari integrasi OpenCL di MQL5. OpenCL adalah standar terbuka untuk pemrograman paralel dalam sistem multiprosesor, termasuk prosesor grafis (GPU) dan unit pemrosesan pusat (CPU). Ini memungkinkan percepatan tugas-tugas yang memerlukan komputasi intensif selama algoritma dapat diparalelkan. Contoh tugas tersebut termasuk pelatihan jaringan saraf, transformasi Fourier, dan pemecahan sistem persamaan. Pemanfaatan OpenCL dalam program MQL memerlukan keberadaan driver khusus dari produsen dan dukungan untuk versi OpenCL 1.1 dan lebih tinggi. Keberadaan kartu grafis tidak wajib, karena prosesor pusat juga dapat digunakan untuk komputasi paralel.

2023.12.16
Otomatisasi Trading dengan MQL5: Panduan Lengkap untuk Trader
MetaTrader5
Otomatisasi Trading dengan MQL5: Panduan Lengkap untuk Trader

Bagian 6: Otomatisasi Trading Pada "Bagian 6: Otomatisasi Trading" dari buku "MQL5 Programming for Traders", kita akan mempelajari komponen kunci dari bahasa MQL5. Kita akan mulai dengan deskripsi entitas dasar, seperti spesifikasi instrumen keuangan dan pengaturan akun trading. Ini merupakan prasyarat untuk menciptakan Expert Advisor yang berfungsi dengan baik. Selanjutnya, kita akan membahas fungsi-fungsi bawaan dan struktur data, peristiwa khusus robot, serta aspek-aspek penting dari operasi Expert Advisor dalam Strategy Tester. Strategy Tester di MetaTrader 5 adalah komponen krusial dalam pengembangan robot trading karena memungkinkan kita untuk mengevaluasi kinerja keuangan dan mengoptimalkan strategi trading. Tester ini menyediakan alat yang sangat berguna untuk debugging dalam berbagai mode, termasuk pengujian visual menggunakan bar atau tick, dengan tick yang dimodelkan atau nyata. Ia juga memungkinkan reproduksi visual aliran kutipan dan pengujian sederhana tanpa jendela visual. Kita sebelumnya sudah melihat bagaimana cara menguji indikator dalam mode visual. Namun, untuk indikator hanya diizinkan pengaturan terbatas. Ketika mengembangkan Expert Advisor, kita akan mendapatkan akses ke seluruh kemampuan yang ditawarkan oleh tester. Kita juga akan melihat representasi berbeda dari data pasar: Depth of Market dan antarmuka perangkat lunaknya. MetaTrader 5 menawarkan kemampuan untuk menganalisis dan melakukan trading terhadap instrumen keuangan (simbol), yang menjadi dasar dari semua subsistem terminal. Pengguna dapat memilih simbol dari daftar yang disediakan oleh broker dan memantau mereka di Market Watch. Dengan MQL5 API, kita bisa melihat dan menganalisis karakteristik semua simbol, menambah atau menghapusnya dari Market Watch. Selain simbol standar yang disediakan oleh broker, MetaTrader 5 juga mendukung pembuatan simbol kustom, memuat properti dan riwayat kutipannya dari sumber data sembarang atau menghitungnya menggunakan rumus dan program MQL5.

2023.12.16
Membuat Program Aplikasi di MQL5 untuk Trader: Panduan Lengkap
MetaTrader5
Membuat Program Aplikasi di MQL5 untuk Trader: Panduan Lengkap

Bagian 5: Membuat Program Aplikasi dalam MQL5 Dalam "Bagian 5: Membuat Program Aplikasi" dari buku MQL5 Programming for Traders, kita akan menyelami lebih dalam tentang API yang berkaitan dengan trading algoritmik, termasuk analisis dan pemrosesan data keuangan, visualisasi grafik, otomatisasi, serta interaksi pengguna. Kita akan memulai dengan prinsip umum dalam membuat program MQL dan mempertimbangkan jenis-jenis kejadian, fitur, dan model di terminal. Selanjutnya, kita akan mengeksplorasi akses ke time series, operasi dengan grafik dan objek grafis, serta prinsip-prinsip dalam menciptakan dan menerapkan setiap jenis program MQL secara terpisah. Terminal MetaTrader 5 mendukung lima jenis program: indikator teknis, System Trading (EA) untuk trading otomatis atau semi-otomatis, skrip untuk melakukan tugas sekali jalan, layanan untuk operasi latar belakang, dan pustaka untuk modul fungsional individual. Kita akan mendalami cara kerja dengan indikator dan grafik serta mempelajari teknik-teknik yang juga dapat diterapkan pada Expert Advisors. Pengembangan Expert Advisors akan dibahas di bagian selanjutnya dari buku ini, di mana kita akan mengeksplorasi eksekusi otomatis pesanan, formalisasi strategi trading, serta pengujian dan optimasi menggunakan data historis. Kita juga akan belajar cara menggunakan indikator bawaan standar dan bagaimana menciptakan aplikasi kustom dari awal atau berdasarkan indikator lain. Semua program yang sudah dikompilasi akan ditampilkan di Navigator di MetaTrader 5, kecuali pustaka EX5 yang digunakan oleh program lain namun tidak memiliki representasi terpisah di Navigator. Sebagai hasilnya, kita akan mendapatkan pemahaman yang lebih komprehensif mengenai kemampuan bahasa MQL5 dan penerapannya dalam trading algoritmik. Ini akan memungkinkan kita untuk bekerja secara efektif dengan data keuangan dan menciptakan indikator trading serta Expert Advisors.

2023.12.16
Menguasai MQL5: Panduan Fungsi API Umum untuk Trader
MetaTrader5
Menguasai MQL5: Panduan Fungsi API Umum untuk Trader

Bagian 4: Fungsi API Umum MQL5 Pada bagian sebelumnya, kita sudah membahas dasar-dasar bahasa pemrograman MQL5, termasuk sintaks, aturan penggunaan, dan konsep-konsep kunci. Namun, untuk menulis program yang nyata yang melibatkan pemrosesan data dan trading otomatis, kita perlu memanfaatkan banyak fungsi bawaan untuk berinteraksi dengan terminal MetaTrader 5. Di "Bagian 4: Fungsi API Umum MQL5", kita akan fokus pada penguasaan fungsi bawaan (MQL5 API) dan secara bertahap menjelajahi subsistem khusus. Setiap program MQL5 dapat memanfaatkan berbagai teknologi dan fungsionalitas. Oleh karena itu, masuk akal untuk memulai dengan fungsi yang paling sederhana dan bermanfaat yang dapat digunakan dalam sebagian besar program. Beberapa topik utama yang akan kita pelajari meliputi operasi array, pemrosesan string, interaksi file, konversi data, dan fungsi interaksi pengguna. Kita juga akan menjelajahi fungsi matematika dan manajemen lingkungan program. Berbeda dengan beberapa bahasa pemrograman lainnya, penggunaan fungsi bawaan dari API MQL5 tidak memerlukan direktif preprocessor tambahan. Nama-nama semua fungsi API MQL5 tersedia dalam konteks global (namespace) dan selalu dapat diakses tanpa syarat. Kita juga akan membahas kemungkinan penggunaan nama yang sama dalam konteks program yang berbeda, seperti nama metode kelas atau namespace khusus. Dalam kasus seperti itu, Anda harus menggunakan operator resolusi konteks untuk memanggil fungsi global, yang telah kita bahas di bagian tentang tipe bersarang, namespace, dan operator konteks '::'. Pemrograman sering kali memerlukan operasi dengan berbagai tipe data. Pada bagian sebelumnya, kita sudah melihat mekanisme konversi eksplisit dan implisit dari tipe data bawaan. Namun, mekanisme tersebut tidak selalu cocok karena berbagai alasan. Untuk menyediakan konversi data yang lebih tepat antara berbagai tipe, MQL5 API mencakup sekumpulan fungsi konversi. Perhatian khusus diberikan pada fungsi untuk konversi antara string dan tipe lainnya, seperti angka, tanggal dan waktu, warna, struktur, dan enumerasi.

2023.12.15
Pengenalan Pemrograman Berorientasi Objek di MQL5 untuk Trader
MetaTrader5
Pengenalan Pemrograman Berorientasi Objek di MQL5 untuk Trader

Bagian 3: Pemrograman Berorientasi Objek dalam MQL5 "Bagian 3: Pemrograman Berorientasi Objek dalam MQL5" membawa kita menyelami dunia pemrograman berorientasi objek (OOP) dalam bahasa MQL5. Pengembangan perangkat lunak sering kali melibatkan kompleksitas yang terkait dengan pengelolaan berbagai entitas, yang memerlukan teknologi canggih untuk meningkatkan kenyamanan pemrograman, produktivitas, dan kualitas. Teknologi OOP didasarkan pada konsep objek, yaitu variabel dengan tipe kustom yang didefinisikan oleh programmer menggunakan alat MQL5. Dengan membuat tipe kustom, kita dapat memodelkan objek dan menyederhanakan penulisan serta pemeliharaan program. Bagian ini membahas berbagai cara untuk mendefinisikan tipe baru, termasuk kelas, struktur, dan union. Tipe kustom ini dapat menggabungkan data dan algoritma untuk menggambarkan keadaan dan perilaku objek aplikasi. Pembicara menjelaskan prinsip "membagi dan menaklukkan", menunjukkan bahwa objek adalah mini-program, masing-masing bertanggung jawab untuk menyelesaikan tugas kecil namun lengkap secara logis. Kita dapat menggabungkan objek-objek ini menjadi satu sistem dan menciptakan produk serta layanan dengan kompleksitas yang bervariasi. Untuk membantu pengguna dalam mempelajari kemampuan MQL5, Bagian "Pemrograman Berorientasi Objek dalam MQL5" memperkenalkan prinsip-prinsip OOP beserta contoh implementasi praktis. Buku ini juga membahas template, antarmuka, dan namespace, mengungkapkan fleksibilitas dan kekuatan OOP dalam pengembangan program MQL5.

2023.12.15
Panduan MQL5 untuk Trader: Memahami Dasar-dasar dan Lingkungan Pengembangan
MetaTrader5
Panduan MQL5 untuk Trader: Memahami Dasar-dasar dan Lingkungan Pengembangan

Pengenalan MQL5 dan Lingkungan PengembangannyaBagian pertama dari buku ini berjudul "Pengenalan MQL5 dan Lingkungan Pengembangan" yang menjelaskan tentang dasar-dasar bahasa MQL5 dan lingkungan pengembangannya.Salah satu fitur baru yang diperkenalkan di bahasa MQL5 dibandingkan dengan MQL4 (bahasa untuk MetaTrader 4) adalah dukungan untuk pemrograman berorientasi objek (OOP), yang menjadikannya mirip dengan C++. Meskipun beberapa fungsi OOP sudah ditransfer dari MQL5 ke MQL4, banyak pengguna yang tidak terbiasa dengan pemrograman mungkin akan merasa kesulitan dengan OOP.Tujuan dari buku ini adalah untuk membuat pendekatan ini dapat dimengerti dan diakses dengan mudah. Buku ini berfungsi sebagai pelengkap referensi MQL5, mencakup semua aspek pemrograman MQL5 dan menjelaskan setiap proses secara detail. Para pengembang dapat memilih antara gaya pemrograman berorientasi objek dan prosedural, serta menggabungkan keduanya.Bagi Anda yang sudah memiliki pengalaman dalam pemrograman, Anda bisa melewatkan bagian dasar. Programmer C++ akan lebih mudah menguasai MQL5, tetapi Anda harus memperhatikan perbedaan bahasa untuk menghindari kesalahan.Dengan MQL5, Anda dapat membuat berbagai jenis program, seperti indikator untuk menampilkan data secara grafis, Expert Advisors untuk otomatisasi trading, skrip untuk tindakan sekali jalan, dan layanan untuk tugas latar belakang.Fitur khas dari MetaTrader 5 adalah manajemen seluruh sistem trading dari terminal klien, di mana program MQL5 dijalankan dan mengirim perintah trading ke server trading. Aplikasi MQL5 tidak diinstal di server.Bagian 1 ini menjelaskan bagaimana cara mengedit, mengompilasi, dan menjalankan program, serta membahas berbagai tipe data, variabel, ekspresi, array, debugging, dan output.

2023.12.15
Mengenal Model ONNX untuk Pengakuan Angka Tangan pada MetaTrader 5
MetaTrader5
Mengenal Model ONNX untuk Pengakuan Angka Tangan pada MetaTrader 5

Penggunaan Expert Advisor untuk Mengenali Angka Tangan Database MNIST terdiri dari 60.000 gambar untuk pelatihan dan 10.000 gambar untuk pengujian. Gambar-gambar ini dihasilkan dengan "mengolah ulang" set asli NIST yang terdiri dari contoh hitam-putih berukuran 20x20 piksel, yang diperoleh dari Biro Sensus AS dan ditambah dengan sampel pengujian dari siswa sekolah menengah Amerika. Sampel-sampel tersebut dinormalisasi menjadi ukuran 28x28 piksel dan dihaluskan, sehingga menghasilkan level gradasi abu-abu. Model pengenalan angka tangan yang telah dilatih, yaitu mnist.onnx, bisa diunduh dari Github di Model Zoo (opset 8). Bagi yang berminat, Anda bisa mengunduh dan mencoba model lainnya, kecuali model dengan opset 1 yang tidak lagi didukung oleh runtime ONNX terbaru. Yang menarik, vektor output tidak diproses dengan fungsi aktivasi Softmax, seperti yang umum dilakukan dalam model klasifikasi. Namun, ini bukan masalah karena kita bisa dengan mudah menerapkannya sendiri. int PredictNumber(void)  {   static matrixf image(28,28);   static vectorf result(10);   PrepareMatrix(image);   if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result))     {      Print("OnnxRun error ",GetLastError());      return(-1);     }   result.Activation(result,AF_SOFTMAX);   int predict=int(result.ArgMax());   if(result[predict]<0.8)      Print(result);      Print("value ",predict," predicted with probability ",result[predict]);   return(predict);  }  Gambar angka di dalam grid khusus menggunakan mouse dengan menekan tombol kiri mouse. Untuk mengenali angka yang digambar, tekan tombol CLASSIFY. Jika probabilitas yang diperoleh untuk angka yang dikenali kurang dari 0.8, vektor hasil dengan probabilitas untuk setiap kelas akan dicetak ke log. Misalnya, coba klasifikasikan bidang input yang kosong. [0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267]value 5 predicted with probability 0.11471312493085861 Pada beberapa kasus, akurasi pengenalan untuk angka sembilan (9) terlihat jauh lebih rendah. Angka yang miring ke kiri lebih mudah dikenali dengan akurat.

2023.11.23
Optimalkan Take Profit Berdasarkan Profit Saat Ini di MetaTrader 4
MetaTrader4
Optimalkan Take Profit Berdasarkan Profit Saat Ini di MetaTrader 4

Pendahuluan Banyak robot trading (Expert Advisor) biasanya menutup order saat mencapai take profit berdasarkan jarak dalam pips dari harga beli. Namun, kode yang digunakan oleh EA Perceptron lebih mengedepankan profit saat ini. Pendekatan ini memungkinkan kita untuk lebih mudah mengelola take profit dengan banyak posisi terbuka, serta memantau total profit saat ini berdasarkan magic number, terutama jika kamu menggunakan beberapa instance bot atau EA yang berbeda secara bersamaan. Tambah saya sebagai teman dan ikuti feed saya untuk tetap mendapatkan informasi terbaru! Penggunaan kode ini juga dapat membantu mengatasi beberapa masalah yang muncul saat menggunakan take profit berbasis pips. Misalnya, take profit berbasis pips dapat berubah tergantung pada slippage dari broker, yang bisa membatasi profit. Dengan menggunakan kode berbasis profit saat ini, kamu bisa menghindari masalah ini dan memiliki kontrol lebih terhadap tradingmu. Jika kamu ingin belajar lebih lanjut tentang cara mengatur take profit berdasarkan profit saat ini, kamu bisa menggunakan kode dari EA SwingBot sebagai referensi. … Total Order Mari kita mulai dengan kode yang menghitung total jumlah order terbuka dengan magic number yang sama. Magic number adalah pengenal unik yang diberikan kepada suatu order oleh trader atau EA (Expert Advisor). Kode ini menginisialisasi variabel total_orders menjadi nol. Kemudian, kode ini akan melakukan iterasi melalui semua order terbuka menggunakan loop for dan memilih setiap order menggunakan fungsi OrderSelect(). Jika order berhasil dipilih, variabel total_orders akan bertambah satu. //-----------------    int total_orders = 0;    for(int i = 0; i < OrdersTotal(); i++)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == MagicNumber)          {          total_orders++;         }         }      } … Menghitung Profit Saat Ini Kode ini menginisialisasi dua variabel: ProfittoMinimo dan Profit. Variabel ProfittoMinimo digunakan untuk mengaktifkan take profit pada level ini, dan nilainya dinyatakan dalam mata uang akun. Variabel Profit digunakan untuk mengakumulasi profit saat ini dari semua posisi terbuka yang memiliki magic number yang sama. Variabel StopLoss digunakan untuk stop loss. Kode ini menggunakan loop for untuk melakukan iterasi melalui semua posisi terbuka menggunakan fungsi OrdersTotal(). Untuk setiap posisi terbuka, order yang bersangkutan dipilih menggunakan fungsi OrderSelect(). Jika order berhasil dipilih dan memiliki magic number yang sama, profit dari order tersebut akan ditambahkan ke variabel Profit.       double ProfittoMinimo = 3; // target profit       double Profit = 0; // current profit              for(int i=0; i<OrdersTotal(); i++)         {          if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))            {             if(OrderMagicNumber() == MagicNumber) // Jika menggunakan beberapa EA, kamu bisa menghapus filter MagicNumber untuk menghitung total order               {                Profit += OrderProfit();               }         }       } Profit minimum dapat diatur sebagai variabel eksternal dan dikonfigurasikan dalam opsi EA: … Menutup Posisi Jika Profit Tercapai Kode ini menggunakan loop for untuk iterasi melalui semua order terbuka menggunakan fungsi OrdersTotal(). Loop dimulai dari order terakhir hingga order pertama. Untuk setiap order, trade yang bersangkutan dipilih menggunakan fungsi OrderSelect(). Jika trade yang dipilih memiliki simbol yang sama dengan grafik saat ini, bertipe OP_BUY, dan memiliki magic number yang sama seperti yang ditentukan dalam kode, maka akan diperiksa apakah Profit dari trade tersebut lebih besar atau sama dengan ProfittoMinimo. Jika ya, trade akan ditutup pada harga bid menggunakan fungsi OrderClose() dan mencetak pesan yang menunjukkan bahwa order beli telah ditutup. Begitu juga, jika trade yang dipilih memiliki simbol yang sama dengan grafik saat ini, bertipe OP_SELL, dan memiliki magic number yang sama seperti yang ditentukan dalam kode, maka akan diperiksa apakah Profit dari trade tersebut lebih besar atau sama dengan ProfittoMinimo. Jika ya, trade akan ditutup pada harga ask menggunakan fungsi OrderClose() dan mencetak pesan yang menunjukkan bahwa order jual telah ditutup.       for(int e = OrdersTotal() - 1; e >= 0; e--)         {          if(OrderSelect(e, SELECT_BY_POS, MODE_TRADES))            {             if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber) // order hanya akan dimodifikasi jika MagicNumber sesuai dengan order yang sedang berlangsung.               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // harga Bid                   Print("Order beli ditutup", Profit, " - Stoploss minimum: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }               }             if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber)               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // harga Ask                   Print("Order jual ditutup", Profit, " - Stoploss minimum: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }               }           }         } … Kesimpulan Kode ini bisa sangat berguna untuk semua strategi penutupan posisi yang berbasis take profit, dan juga bisa dikombinasikan dengan trailing stop berdasarkan peningkatan profit saat ini. Sistem ini juga bermanfaat jika kamu menggunakan beberapa Expert Advisor. Jika kamu menghapus kondisi if pada MagicNumber, kamu bisa menetapkan level take profit umum untuk mengontrol semua posisi terbuka dari semua EA yang aktif secara bersamaan.

2023.10.27
Strategi Double Bollinger Band untuk MT4: Panduan Praktis untuk Trader
MetaTrader4
Strategi Double Bollinger Band untuk MT4: Panduan Praktis untuk Trader

1. Gambaran Umum Strategi Double Bollinger Band memanfaatkan dua Bollinger Bands untuk menyaring sinyal masuk dan keluar di pasar forex. Dengan menggunakan strategi ini, kita akan lebih mudah menentukan kapan saat yang tepat untuk melakukan transaksi. Tujuan dari strategi ini adalah untuk membuka posisi Buy (jual) ketika harga melewati batas atas 3σ (3 deviasi standar) dan membuka posisi Sell (beli) ketika harga turun di bawah batas bawah 3σ. Selain itu, strategi ini juga mempertimbangkan batas 2σ (2 deviasi standar) dari Bollinger Bands sebagai acuan dalam pengambilan keputusan trading. Parameter default yang digunakan adalah: 2σ Bollinger Bands (20,2): rata-rata bergerak sederhana (20) dan deviasi standar (2). 3σ Bollinger Bands (20,3): rata-rata bergerak sederhana (20) dan deviasi standar (3). 2. Masuk Posisi Buy Buka order Buy ketika dua kondisi berikut terpenuhi: Kondisi 1: Harga Ask melewati batas atas 3σ (BB3UP). Kondisi 2: Jika kondisi 1 terpenuhi, pastikan harga saat ini berada dalam rentang batas atas 2σ (BB2UP) dan batas bawah 2σ (BB2LO). 3. Masuk Posisi Sell Buka order Sell ketika dua kondisi berikut terpenuhi: Kondisi 1: Harga Bid melewati batas bawah 3σ (BB3LO). Kondisi 2: Jika kondisi 1 terpenuhi, pastikan harga saat ini berada dalam rentang batas bawah 2σ (BB2LO) dan batas atas 2σ (BB2UP). 4. Keluar dari Posisi Gunakan format order OCO, di mana baik stop-loss maupun take-profit diatur pada N pips. ※N: Parameter input yang disetting sesuai kebutuhan.

2023.10.02
Strategi Breakout Martin Gale: Expert Advisor Terbaik untuk MetaTrader 4
MetaTrader4
Strategi Breakout Martin Gale: Expert Advisor Terbaik untuk MetaTrader 4

Halo, para trader! Hari ini kita akan membahas tentang strategi trading yang cukup menarik, yaitu Martin Gale Breakout. Ini adalah Expert Advisor (EA) yang dirancang khusus untuk trading di pasar Forex. EA ini menggabungkan pendekatan trading breakout dengan sistem manajemen uang Martin Gale, yang bertujuan untuk mengoptimalkan performa trading kamu. Parameter Input: TakeProfPoints: Parameter ini memungkinkan kamu untuk mengatur level Take Profit dalam poin untuk setiap trade. BalancePercentageAvailable: Tentukan persentase dari saldo akunmu yang akan digunakan untuk trading. TP_Percentage_of_Balance: Menentukan persentase saldo akun yang akan digunakan sebagai Take Profit untuk setiap trade. SL_Percentage_of_Balance: Mengatur persentase dari saldo yang akan dialokasikan sebagai Stop Loss untuk trade. Start_The_Recovery: Parameter ini berperan penting dalam proses pemulihan, mengontrol kapan dan bagaimana langkah pemulihan diaktifkan. TP_Points_Multiplier: Sebuah pengganda untuk poin Take Profit, memungkinkan strategi pengambilan profit yang lebih fleksibel. MagicNumber: Sebuah identifikasi unik untuk EA ini, memastikan bahwa ia dapat mengelola trade-nya sendiri secara independen. Keunggulan Strategi: Trading Breakout: EA ini mengkhususkan diri dalam mengidentifikasi peluang breakout di pasar, di mana pergerakan harga melampaui level kunci. Pemilihan Lot Dinamis: Ukuran lot disesuaikan secara dinamis berdasarkan saldo akun dan preferensi risiko kamu, mengikuti prinsip manajemen uang Martin Gale. Pemulihan Kerugian: EA ini dilengkapi dengan mekanisme pemulihan yang kuat yang dirancang untuk memulihkan kerugian dengan memodifikasi parameter trade secara adaptif ketika diperlukan. Fungsi utama yang digunakan dalam EA ini adalah CalcLotWithTP() yang memiliki 3 parameter input: Takeprofit, Startprice, Endprice. Fungsi ini menghitung volume yang dibutuhkan untuk trade agar mencapai target profit saat masuk di Startprice dan keluar di Endprice. Semua kode dalam EA ini sudah diberi komentar, sehingga memudahkan pemahaman kamu. Saya juga telah membuat video di YouTube tentang hal ini:

2023.09.26
Strategi Breakout Martin Gale: EA Canggih untuk MT5
MetaTrader5
Strategi Breakout Martin Gale: EA Canggih untuk MT5

Strategi "Martin Gale Breakout" adalah sebuah Sistem Trading (EA) yang dirancang khusus untuk trading di pasar Forex. EA ini menggabungkan pendekatan trading breakout dengan elemen sistem manajemen uang Martin Gale untuk mengoptimalkan kinerja trading Anda. Parameter Input: TakeProfPoints: Parameter ini memungkinkan Anda untuk mengatur level Take Profit dalam poin untuk setiap trade. BalancePercentageAvailable: Tentukan persentase dari saldo akun Anda yang akan digunakan untuk trading. TP_Percentage_of_Balance: Menentukan persentase dari saldo akun yang akan digunakan sebagai Take Profit untuk setiap trade. SL_Percentage_of_Balance: Mengatur persentase dari saldo yang akan dialokasikan sebagai Stop Loss untuk trade. Start_The_Recovery: Parameter ini berperan penting dalam proses pemulihan, mengontrol kapan dan bagaimana langkah pemulihan diaktifkan. TP_Points_Multiplier: Pengganda untuk poin Take Profit, memungkinkan strategi pengambilan keuntungan yang fleksibel. MagicNumber: Identifier unik untuk EA ini, memastikan EA dapat mengelola trading-nya sendiri secara independen. Keunggulan Strategi: Trading Breakout: EA ini mengkhususkan diri dalam mengidentifikasi peluang breakout di pasar, di mana pergerakan harga melampaui level kunci. Penyusunan Lot Dinamis: Ukuran lot disesuaikan secara dinamis berdasarkan saldo akun dan preferensi risiko Anda, mengikuti prinsip manajemen uang Martin Gale. Pemulihan Kerugian: EA ini dilengkapi dengan mekanisme pemulihan yang kuat yang dirancang untuk memulihkan kerugian dengan mengubah parameter trading secara adaptif saat diperlukan. Fungsi utama yang digunakan dalam EA ini adalah fungsi CalcLotWithTP() yang memiliki 3 parameter input: Takeprofit, Startprice, Endprice. Fungsi ini menghitung volume yang dibutuhkan untuk trade agar mencapai target keuntungan saat masuk trade di Startprice dan keluar di Endprice. Semua bagian dalam kode ini sudah diberi komentar, sehingga memudahkan pemahaman tentangnya.

2023.09.26
Menentukan Kebijakan Pengisian Symbol di MetaTrader 5 untuk Trader
MetaTrader5
Menentukan Kebijakan Pengisian Symbol di MetaTrader 5 untuk Trader

Dalam dunia trading, memahami kebijakan pengisian simbol sangatlah penting. Mari kita bahas bagaimana cara menentukan kebijakan pengisian untuk suatu instrumen keuangan di MetaTrader 5. Langkah-langkah Menentukan Kebijakan Pengisian Mendapatkan Jenis Kebijakan Pengisian: Pertama, kita perlu menggunakan fungsi SymbolInfoInteger untuk mengambil informasi mengenai kebijakan pengisian dari simbol yang diberikan. Informasi ini akan disimpan dalam sebuah variabel bernama filling sebagai nilai numerik. Perbandingan Kebijakan Pengisian: Selanjutnya, nilai numerik (filling) akan dibandingkan dengan konstanta yang sudah ditentukan sebelumnya, yang mewakili berbagai kebijakan pengisian, seperti "Fill or Kill" (SYMBOL_FILLING_FOK), "Immediate or Cancel" (SYMBOL_FILLING_IOC), dan "Return" (SYMBOL_FILLING_RETURN). Menentukan Tipe Kebijakan Pengisian: Setelah perbandingan, kita dapat menentukan tipe kebijakan pengisian berdasarkan hasilnya. Jika cocok dengan "Fill or Kill," maka akan mengembalikan ORDER_FILLING_FOK. Jika cocok dengan "Immediate or Cancel," maka akan mengembalikan ORDER_FILLING_IOC. Jika tidak ada yang cocok, akan mengembalikan ORDER_FILLING_RETURN. Secara singkat, fungsi ini memungkinkan kita untuk mengambil dan mengembalikan kebijakan pengisian dari simbol di MetaTrader 5. Hal ini sangat berguna untuk membuat keputusan trading yang lebih baik berdasarkan kebijakan pengisian dari instrumen keuangan tertentu.

2023.09.26
Awal Sebelumnya 3 4 5 6 7 8 9 10 11 12 13 Berikutnya Akhir