This C Bot (RSTI_Ausama)
Bot C ini (Robot) ditulis dalam C# menggunakan platform cAlgo.API dan direka untuk perdagangan automatik di pasaran Forex. Bot ini bergantung pada isyarat dari penunjuk teknikal (Purata Pergerakan Mudah) untuk membuat keputusan beli dan jual. Berikut adalah penjelasan terperinci mengenai komponen bot dan cara ia berfungsi:
---
### 1. **Parameter**
Bot ini termasuk satu set parameter yang boleh disesuaikan untuk menyesuaikan tingkah laku perdagangannya:
- **Tetapan RSTI**:
- `Source`: Sumber data yang digunakan untuk pengiraan (contohnya, harga penutupan).
- `Length`: Tempoh panjang untuk Purata Pergerakan Mudah (SMA).
- `Signal Length`: Tempoh panjang untuk SMA isyarat.
- **Pengurusan Risiko**:
- `Trade Direction`: Arah perdagangan (Beli Sahaja, Jual Sahaja, atau Kedua-duanya).
- `Lot Size`: Saiz lot yang digunakan untuk perdagangan.
- `Target Percentage (%)`: Sasaran peratusan untuk Ambil Untung.
- `Target Partial (%)`: Peratusan untuk pengambilan untung separa.
- `Stop Loss Percentage (%)`: Peratusan untuk Henti Rugi.
---
### 2. **Penunjuk Teknikal**
Bot menggunakan penunjuk teknikal berikut:
- **Purata Pergerakan Mudah (SMA)**: Purata pergerakan mudah berdasarkan harga penutupan.
- **SMA Diff**: Purata pergerakan mudah bagi perbezaan antara harga dan SMA.
- **SMA Diff Abs**: Purata pergerakan mudah bagi perbezaan mutlak.
- **SMA Signal**: Purata pergerakan mudah bagi isyarat kekuatan relatif.
---
### 3. **Fungsi Utama Bot**
#### a. **OnStart()**
- Fungsi ini dijalankan apabila bot bermula.
- Memulakan penunjuk dan mengira nilai awal untuk purata pergerakan.
- Menyimpan nilai isyarat terakhir (`_previousSignalValue`) untuk perbandingan kemudian.
#### b. **OnBar()**
- Fungsi ini dijalankan apabila bar baru ditutup.
- Mengemas kini purata pergerakan berdasarkan data baru.
- Memeriksa perubahan dalam isyarat perdagangan:
- Jika isyarat melintasi di atas 60 (Beli) atau di bawah 40 (Jual), perdagangan dilaksanakan.
- Mengemas kini nilai isyarat sebelumnya (`_previousSignalValue`).
#### c. **OnTick()**
- Fungsi ini dijalankan pada setiap perubahan harga (Tick).
- Memeriksa jika tahap Ambil Untung separa dicapai (`HandleCloseOnTPReached`).
#### d. **ExecuteTrades()**
- Melaksanakan perdagangan berdasarkan isyarat perdagangan:
- Jika isyarat lebih besar daripada 60, perdagangan Beli dibuka.
- Jika isyarat kurang daripada 40, perdagangan Jual dibuka.
- Mengira tahap Ambil Untung dan Henti Rugi berdasarkan peratusan yang ditetapkan.
- Melaksanakan perdagangan menggunakan `ExecuteMarketOrder`.
#### e. **HandleCloseOnTPReached()**
- Memeriksa jika tahap Ambil Untung separa dicapai:
- Jika perdagangan mencapai tahap keuntungan yang ditetapkan, saiz posisi dikurangkan sebanyak 50%.
#### f. **HandleCloseOnSignal()**
- Menutup perdagangan jika isyarat perdagangan berubah:
- Jika perdagangan adalah Beli dan isyarat jatuh di bawah 50, perdagangan ditutup.
- Jika perdagangan adalah Jual dan isyarat naik di atas 50, perdagangan ditutup.
#### g. **DrawSignalOnChart()**
- Memaparkan nilai isyarat semasa pada carta:
- Jika isyarat di atas 50, ia dipaparkan dalam warna biru.
- Jika isyarat di bawah 50, ia dipaparkan dalam warna merah.
---
### 4. **Pengurusan Risiko**
- Saiz lot (`LotSize`) ditentukan berdasarkan saiz akaun.
- Tahap Sasaran (`TargetPercentage`) dan Henti Rugi (`StopLossPercentage`) ditetapkan sebagai peratusan harga semasa.
- Pengambilan untung separa (`Target Partial`) dilaksanakan apabila tahap tertentu dicapai.
---
### 5. **Arah Perdagangan**
- Arah perdagangan boleh ditetapkan menggunakan parameter `TradeDirection`:
- `Both`: Berdagang dalam kedua-dua arah (Beli dan Jual).
- `Buy_Only`: Berdagang hanya dalam arah Beli.
- `Sell_Only`: Berdagang hanya dalam arah Jual.
---
### 6. **Cara Menggunakan Bot**
1. Tambahkan bot ke platform cTrader.
2. Laraskan parameter mengikut strategi anda (contohnya, saiz lot, sasaran, dan tahap henti rugi).
3. Jalankan bot pada carta yang dikehendaki.
4. Bot akan secara automatik membuka dan menutup perdagangan berdasarkan isyarat perdagangan.
---
### 7. **Kekuatan**
- Bergantung pada isyarat yang jelas dari purata pergerakan.
- Memberikan fleksibiliti dalam menetapkan arah perdagangan dan pengurusan risiko.
- Menyokong pengambilan untung separa dan penutupan perdagangan berdasarkan perubahan isyarat.
---
### 8. **Kelemahan**
- Bergantung sepenuhnya pada purata pergerakan, yang mungkin tidak berkesan dalam semua keadaan pasaran.
- Memerlukan pengoptimuman parameter untuk menyesuaikan pasangan mata wang dan jangka masa tertentu.
---
### 9. **Petua untuk Penambahbaikan**
- Uji semula bot pada data sejarah untuk mengoptimumkan parameter.
- Tambah penunjuk teknikal tambahan untuk meningkatkan ketepatan isyarat.
- Pantau prestasi bot secara berkala dan buat pelarasan yang diperlukan.
---
Bot ini adalah alat yang kuat untuk perdagangan automatik, tetapi ia harus digunakan dengan berhati-hati dan pemahaman menyeluruh mengenai mekanisme dan pengurusan risikonya.