Fungsi Magic Number pada EA

115695

Robot trading pun ternyata menggunakan Magic. Namun, Magic apakah itu? Simak selengkapnya dalam artikel Fungsi Magic Number pada EA berikut.

Advertisement

iklan

Advertisement

iklan

Tenang, sebelum memulai membaca artikel ini, kosongkan dahulu semua pikiran Anda dari hal-hal yang berhubungan dengan Magic di Harry Potter. Bukan Magic seperti itu yang akan dibahas di sini, karena Magic di artikel ini adalah perihal angka, pengenalan, dan program di Metatrader 4. Selain itu akan dibahas pula beberapa fungsi Magic Number pada EA secara mendalam, serta contoh penggunananya dalam pemrogaman di Metatrader 4.

 

Apa Itu Magic Number Pada EA?

Magic Number EA sebenarnya adalah sebuah parameter yang digunakan sebagai pengenal dan tanda dari Order yang dilakukan oleh robot trading. Pada masa MT3 dahulu, dibutuhkan waktu yang cukup lama untuk mengatur posisi yang sedang terbuka. Selain itu, belum ada Tools yang bisa digunakan untuk membantu dalam mengorganisirnya. Problem utama saat itu adalah ketidakmampuan untuk membedakan antara satu open posisi yang dibuka oleh satu metode, dengan open posisi milik metode lain. Gagal paham? Coba cermati beberapa kasus di bawah ini:

  1. Seorang trader dan EA trading pada satu Metatrader yang sama.
  2. Dua buah EA yang berbeda algoritma atau time frame penggunaan, bekerja pada satu Metatrader yang sama.

robot-trading-magic-number

Dalam 2 kasus tersebut, EA tentu saja harus mengerti mana yang merupakan posisi miliknya, dan mana yang tidak. Faktanya, tidak bisa dibedakannya posisi, sebenarnya baru menjadi masalah saat adanya perubahan rencana pada posisi yang terbuka, seperti penutupan posisi lebih dini atau memindahkan Stop Loss dan Take Profit.

Masalah ini kemudian berusaha diselesaikan oleh pihak Metaquotes.Inc dengan cara membuat parameter baru dalam Order bernama Magic Number. Tanpa menggunakan Magic Number, EA akan membabat habis semua posisi yang sedang terbuka di sana.

 

Fungsi Magic Number Pada EA

Setelah belajar sedikit masalah Magic Number di awal tadi. Mari kembali ke dasar dengan membahas apa sebenarnya fungsi Magic Number Pada EA. Secara umum, fungsi Magic Number pada EA adalah agar Anda dapat mengatur posisi yang telah terbuka berdasarkan keadaan atau alasan mengapa posisi tersebut terbuka. Keadaan atau alasan posisi terbuka ini sendiri bermacam-macam. Beberapa di antaranya adalah:

  • Robot trading yang sejenis tapi digunakan di 2 time frame berbeda (misalnya 1-jam dan 15-menit).
  • 2 buah robot trading dengan masing-masing strateginya berjalan pada satu pasangan mata uang dan time frame yang sama.
  • 1 buah robot trading yang bekerja pada satu akun yang sama dengan seorang trader.

Beberapa keadaan ini tentu saja akan sangat membingungkan bagi robot trading tersebut. Seperti misalnya pada keadaan nomor 1, saat robot trading memiliki sistem trading yang sama tapi dapat bekerja pada time frame manapun. Posisi yang dibuka dengan analisa time frame H1 tentu saja akan berbeda dengan analisa time frame M15.  Di sinilah fungsi Magic Number pada EA berperan. Tanpa adanya Magic Number, sangat besar kemungkinan bahwa robot akan salah menutup posisi, bahkan EA bisa saja langsung menutup semua posisi tanpa terkecuali.

sistem trading fungsi magic number pada ea

(Baca juga: Belajar Forex Dengan Membuat Sistem Handal)

Hal ini juga berlaku bagi kasus kedua dan ketiga. Pada kasus ketiga khususnya, EA dan trader bekerja pada satu akun yang sama. Tanpa adanya fungsi Magic Number pada EA, robot bisa saja menutup posisi yang dibuka oleh trader tersebut secara tidak sengaja. Untuk itulah fungsi Magic Number pada EA ini dirasa sangat penting.

 

Penempatan Magic Number

Lalu dimana sebenarnya Magic Number akan diselipkan oleh robot? Magic Number EA ini dimasukkan saat robot mengirimkan perintah Order ke market. Order ini dikirimkan dengan menggunakan perintah sebagai berikut:

OrderSend(string symbol, int cmd, double volume, double price int slippage, double stoploss, double takeprofit, string comment=Null, int magic =0, datetime expiration=0, color arrow_color=CLR_NONE)

fungsi magic number pada ea candle sederhana

(Baca juga: Cara Membuat EA Candle Sederhana)

Parameter int magic=0 adalah perintah yang digunakan untuk menyelipkan Magic Number pada Open Posisi. Secara Default, sistem di Metatrader 4 akan memberikan nilai 0 pada posisi yang tidak diinisialisasi Magic Number-nya. Contohnya adalah pada EA Candlestick yang pernah dibuat dahulu. Berikut perintah yang digunakan:

 

//+------------------------------------------------------------------+
//|                                             magic number ea.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int StopLoss=200;
extern int TakeProfit=600;
extern int autoMM=2;
extern int MagicNumber=3333;
extern int Slippage=5;
extern string txComment="sederhana";

void OnTick()
  {
//---
   double mm= (autoMM * AccountBalance())/100;
   double jumlahlot = mm / StopLoss;
   if(OrdersTotal()==0){
   if(iClose(Symbol(),0,1)>iOpen(Symbol(),0,1)){
   OrderSend(Symbol(),OP_BUY,jumlahlot,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,txComment,MagicNumber);
   }
   else if(iClose(Symbol(),0,1)<iOpen(Symbol(),0,1)){
     OrderSend(Symbol(),OP_SELL,jumlahlot,Bid,Slippage, Bid+StopLoss*Point,Bid-TakeProfit*Point,txComment,MagicNumber);
     }  
     }  
   
  }

Pada program di atas, fungsi Magic Number pada EA diinisialisasikan dalam sebuah variabel bernama MagicNumber. Variabel ini juga diinisialisikan dengan memberikan fungsi Extern, agar dapat diedit manual oleh User. Lalu perhatikan pada perintah OrderSend() di beberapa baris terbawah.

fungsi magic number pada ea extern

(Baca juga: Fungsi Extern Pada EA)

OrderSend(Symbol(),OP_SELL,jumlahlot,Bid,Slippage, Bid+StopLoss*Point,Bid-TakeProfit*Point,txComment,MagicNumber);
OrderSend(Symbol(),OP_BUY,jumlahlot,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,txComment,MagicNumber);

Jike robot trading telah berjalan, maka baik posisi Buy dan Sell akan memproduksi nilai Magic Number yang sama. Perhatikan gambar di bawah ini:

fungsi maguc number pada ea

Sekarang, mari mengubah robot agar masing-masing Order memiliki fungsi Magic Number pada EA yang berbeda. Langkah pertama yang perlu dilakukan adalah menambahkan variabel baru untuk menyimpan nilai Magic Number. Berikut kodenya:

Extern int magicnumber1= 3333; //untuk order buy
Extern int magicnumber2 = 4444; //untuk order sell

Tambahkan kode ini di bagian atas program robot, tempat inisialisasi variabel global.

fungsi magic number pada ea variabel global

(Baca juga: Variabel Global Untuk EA)

Setelah itu, mari edit sedikit perintah eksekusi order. Berikut kode programnya:

//untuk order buy
OrderSend(Symbol(),OP_BUY,jumlahlot,Ask,Slippage,Ask-StopLoss*Point,Ask+TakeProfit*Point,"magic= "+IntegerToString(MagicNumber1),MagicNumber1);
//untuk order sell  
OrderSend(Symbol(),OP_SELL,jumlahlot,Bid,Slippage, Bid+StopLoss*Point,Bid-TakeProfit*Point,"magic= "+IntegerToString(MagicNumber2),MagicNumber2);

Pada kode Order Send di atas, variabel untuk masing-masing Magic Number telah diubah. Dengan MagicNumber1 diperuntukkan untuk order Buy dan MagicNumber2 untuk order Sell. Selain itu, ditambahkan pula komentar pada order tersebut agar nilai MagicNumber dapat diamati. Perintah untuk menambahkan komentar ini bisa Anda lihat pada kode berikut:

"magic= "+ IntegerToString(MagicNumber)

Kode ini akan diselipkan diperintah Send Order pada parameter komentarnya. Dengan menggunakan fungsi IntegerToString(), nilai Integer pada variabel MagicNumber akan dikonversikan ke String. Berikut hasil yang didapatkan dari perubahan yang dilakukan.

fungsi magic number pada ea 2

 

Penutup

Setelah mengetahui fungsi Magic Number pada EA, cara memanggil dan menempatkannya, Anda bisa mulai belajar cara pengaplikasiannya. Salah satu contoh yang bisa Anda kembangkan adalah dari EA Candlestick Sederhana. Anda bisa memulainya dengan cara memberikan masing-masing posisi Magic Number seperti di atas.

Tambahkan algoritma baru agar posisi dapat otomatis menutup sekaligus langsung terbuka posisi baru, jika muncul Candlestick berlawanan. Setelah menambahkan algoritma ini, pasanglah robot tersebut pada akun demo dan ikutlah trading bersama dengan robot. Untuk mengetahui apakah EA telah bekerja, Anda hanya harus memastikan posisi yang dibuka secara manual tidak ditutup paksa oleh robot.

fungsi magic number pada ea open sell

(Baca juga: Supaya Robot Bisa Open Sell Dan Buy)

Jika berhasil, maka dengan program dasar seperti itu Anda bisa mengembangkan fungsi Magic Number pada EA yang lebih kompleks. Fungsi Magic Number pada EA ini juga bisa digunakan pada pembuatan indikator maupun Script di Metatrader 4.

 

Jika Anda memiliki pertanyaan lebih lanjut perihal Expert Advisor, selain dari kolom komentar, Anda juga bisa langsung bertanya pada ahli kami pada forum tanya jawab spesial robot trading.

Meski berlatar belakang jurusan Biomedical Engineering, Muh Nuzul sudah menjadi trader forex sejak tahun 2013. Dengan dasar tekniknya, penulis ahli dalam membuat indikator dan Expert Advisor Metatrader. Hobi membaca dan menulis sejak kecil dan mulai aktif menulis di Seputarforex karena ingin membagikan pengetahuan selama menjadi trader.