Skip to main content

Expert Advisor


 Expert Advisor

Expert Advisor atau trading bot merupakan suatu sistem yang melakukan trabsaksi trading secara auto mengikut algoritma tertentu. Algoritma dalam sistem pengaturcaraan adalah satu set langkah atau arahan yang perlu diikuti untuk menyelesaikan sesuatu masalah atau mencapai tujuan tertentu. Ia merupakan asas kepada semua program komputer. Berikut adalah penjelasan lebih terperinci:

A. Definisi Algoritma

Algoritma adalah urutan arahan atau langkah-langkah yang jelas dan teratur untuk menyelesaikan masalah tertentu. Setiap langkah dalam algoritma perlu dinyatakan dengan jelas supaya komputer dapat memahaminya dan melaksanakannya.

B. Ciri-ciri Algoritma

  • Tepat dan Jelas: Setiap langkah dalam algoritma mesti jelas dan tidak boleh mengelirukan.
  • Terbatas: Algoritma mesti mempunyai titik permulaan dan penghujung. Langkah-langkah tersebut tidak boleh berterusan tanpa henti.
  • Input dan Output: Algoritma menerima input (data yang digunakan untuk menyelesaikan masalah) dan menghasilkan output (hasil dari proses pengiraan atau tindakan).
  • Efisien: Ia perlu direka untuk mencapai penyelesaian dengan secepat dan serendah mungkin penggunaan sumber (masa, memori).
  • Berperingkat (Langkah demi Langkah): Algoritma mesti disusun dalam urutan yang betul.

C. Contoh Algoritma Ringkas:

Sebagai contoh, algoritma untuk menambah dua nombor boleh ditulis seperti berikut:

  1. Mulakan.
  2. Baca nombor pertama (A).
  3. Baca nombor kedua (B).
  4. Jumlahkan A dan B.
  5. Paparkan hasil (A + B).
  6. Tamatkan.

Setiap langkah dalam algoritma di atas adalah jelas dan mudah difahami, dan hasilnya akan memberikan jumlah dua nombor yang dimasukkan.

D. Jenis-jenis Algoritma:

  • Algoritma Rekursif: Menggunakan pendekatan berulang di mana fungsi memanggil dirinya sendiri untuk menyelesaikan submasalah.
  • Algoritma Iteratif: Menggunakan gelung seperti for atau while untuk mengulang sesuatu tugas sehingga keadaan tertentu dipenuhi.
  • Algoritma Pengisihan (Sorting): Contohnya, algoritma Bubble Sort, Quick Sort, dan Merge Sort yang digunakan untuk menyusun data.
  • Algoritma Carian (Searching): Contohnya, algoritma Linear Search dan Binary Search yang digunakan untuk mencari elemen dalam struktur data.

E. Pentingnya Algoritma dalam Programming:

  • Penyelesaian Masalah: Algoritma membantu dalam merancang bagaimana untuk menyelesaikan masalah yang kompleks.
  • Pengoptimuman Sumber: Algoritma yang baik dapat mengurangkan penggunaan masa dan memori, menjadikan program lebih efisien.
  • Kebolehbacaan Kod: Algoritma yang teratur membantu dalam menghasilkan kod yang lebih mudah difahami dan dikekalkan.

Dalam pengaturcaraan, pemilihan algoritma yang sesuai sangat penting untuk memastikan program dapat berjalan dengan cekap dan berfungsi seperti yang diharapkan.

Dalam dunia trading, sebuah Expert Advisor (EA) adalah sebuah program yang ditulis menggunakan bahasa pengaturcaraan MQL4 atau MQL5 (MetaQuotes Language), yang direka untuk menjalankan dagangan secara automatik berdasarkan peraturan yang telah ditetapkan. Algorithm dalam coding EA bertujuan untuk membuat keputusan dagangan secara automatik seperti membuka, menutup, atau mengubah posisi dagangan.

Berikut adalah beberapa komponen utama dalam algoritma coding untuk Expert Advisor:

1. Setup Asas

Setiap EA bermula dengan fungsi-fungsi asas untuk menginisialisasi dan melaksanakan operasi dagangan.

  • OnInit(): Digunakan untuk initialize parameter seperti variable global dan pengaturan.
  • OnTick(): Fungsi utama yang dipanggil setiap kali terdapat perubahan harga (tick). Algoritma perdagangan biasanya ditulis di sini.
  • OnDeinit(): Digunakan untuk membersihkan memori atau menyimpan data apabila EA dihentikan.

2. Penggunaan Indikator Teknikal

EA sering menggunakan indikator teknikal seperti Moving Averages, Relative Strength Index (RSI), atau Bollinger Bands untuk membuat keputusan dagangan. Contoh: Menggunakan Moving Average untuk membeli apabila harga berada di atas MA, dan menjual apabila harga berada di bawah MA.


double ma = iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 0); if (Close[0] > ma) { // Buy signal } else if (Close[0] < ma) { // Sell signal }

3. Pengurusan Risiko

Pengurusan risiko adalah aspek penting dalam algoritma EA untuk melindungi modal.

  • Stop Loss (SL): Tetapkan tahap di mana posisi akan ditutup secara automatik jika harga bergerak melawan.
  • Take Profit (TP): Tetapkan tahap keuntungan di mana posisi akan ditutup secara automatik apabila target tercapai.

double sl = 100; // Jarak stop loss dalam pip double tp = 200; // Jarak take profit dalam pip

4. Logik Membuka Posisi

EA menentukan bila posisi dagangan dibuka berdasarkan syarat yang telah diprogram. Contohnya, membuka posisi BUY apabila ada isyarat buy dan tidak ada posisi terbuka.


if (buy_signal && OrdersTotal() == 0) { OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, StopLossLevel, TakeProfitLevel); }

5. Pengurusan Posisi

Selain membuka dan menutup posisi, EA juga boleh mengatur pengubahsuaian posisi sedia ada, contohnya Trailing Stop di mana Stop Loss akan bergerak secara dinamik mengikut harga pasaran.


if (OrderType() == OP_BUY && Bid > OrderOpenPrice() + 30 * Point) { OrderModify(OrderTicket(), OrderOpenPrice(), Bid - 15 * Point, TakeProfit, 0, clrGreen); }

6. Penapisan Signal

Untuk mengelakkan dan menapis fake signal, beberapa algoritma menambah penapisan. Contohnya hanya menerima isyarat beli jika RSI menunjukkan pasaran oversold. Menggunakan beberapa indikator juga mampu memberi kualiti signal yang lebih tepat.


double rsi = iRSI(NULL, 0, 14, PRICE_CLOSE, 0); if (rsi < 30) { // Oversold, buy signal }

7. Pengurusan Modal

Algoritma EA biasanya mempunyai formula untuk mengatur saiz lot berdasarkan baki akaun atau risiko yang ditetapkan. Contohnya, menetapkan saiz lot sebagai peratusan daripada baki akaun.


double lot = AccountBalance() * 0.01; // 1% daripada baki akaun

8. Backtesting & Optimization

Sebelum menggunakan EA pada akaun sebenar, backtesting dan optimization perlu dilakukan untuk menguji prestasi algoritma menggunakan historicaldata.


Contoh Struktur Sederhana EA

int OnInit() { // Inisialisasi parameter return INIT_SUCCEEDED; } void OnTick() { // Algoritma dagangan double ma = iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, 0); if (Close[0] > ma && OrdersTotal() == 0) { // Buka posisi beli OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, Ask - 50 * Point, Ask + 100 * Point); } } void OnDeinit(const int reason) { // Bersihkan memori atau simpan data }

 

Kesimpulan

Algoritma dalam Expert Advisor boleh menjadi sangat kompleks atau sederhana bergantung kepada keperluan strategi. Setiap elemen seperti signal teknikal, pengurusan risiko, dan pengurusan modal berperanan penting dalam kejayaan EA dalam perdagangan automatik. 


# Tips Penggunaan EA

  • Trader perlu faham tentang algoritma EA yang hendak digunakan, baru boleh mengawal EA tersebut dengan efisien.
  • Parameter yang digunakan di dalam sesuatu EA perlu sentiasa diubah bersesuaian dengan keadaan pasaran semasa. Setting untuk sideway market tak sama ngan trending market.
  • Perlu gunakan pendekatan dinamik berbanding statik. Sebagai contoh bagi pembolehubah take profit berubah secara dinamik mengikut berapa banyak posisi yang telah dibuka.
  • Perlu melakukan backtest dan forward test secara berterusan
  • Backtest menggunakan data pihak ketiga seperti Tickstory lebih tepat berbanding data dari broker
  • Akhir sekali kena test kat akaun real kerana akaun demo ngan real ada perbezaan. Gunakan akaun CENT supaya modal yang digunakan adalah minima.

Comments

Popular posts from this blog

"GOLD MAFIA" - antara silent trader berjaya yang kami kagumi

 

TEAM SEMBANG TRADER - kami mengalu-alukan para trader nusantara yang ingin berkongsi ilmu dan pengalaman