Smart Trend Follower: Sistem Trading untuk MetaTrader 5

Mike 2025.02.04 12:53 17 0 0
Lampiran

1. Jenis Enum (enumJnsSignal, enumOrderType)

  • enumJnsSignal - Enum ini mendefinisikan jenis isyarat yang digunakan dalam EA. Terdapat dua pilihan isyarat:
    • `eTypeCrossMA`: Menggunakan isyarat Cross 2 MA (perpotongan dua Moving Averages).
    • `eTypeTrend`: Mengikuti trend menggunakan Moving Averages dan Stochastic.
  • enumOrderType - Enum ini mendefinisikan jenis pesanan:
    • `eBuy`: Pesanan Beli.
    • `eSell`: Pesanan Jual.
    • `eNone`: Tiada pesanan yang dilaksanakan.

2. Parameter Input

  • inMagicNumber - Nombor ajaib unik yang digunakan untuk membezakan pesanan dari EA ini.
  • inLotSize - Saiz lot awal untuk setiap pesanan.
  • inMultiply - Faktor pengganda yang digunakan dalam strategi saiz lot.
  • inJarakLayer - Jarak pip antara posisi dagangan dalam strategi grid/layer.
  • inMAPeriodFast & inMAPeriodSlow - Tempoh untuk Moving Averages cepat dan perlahan.
  • inSTOKPeriod, inSTODPeriod, inSTOSlowing - Parameter untuk Stochastic Oscillator.
  • inTakeProfit & inStopLoss - Tetapan untuk Take Profit dan Stop Loss.

3. Struktur dataTrades

- Struktur ini digunakan untuk menyimpan data berkaitan dengan posisi dagangan yang terbuka, seperti jumlah total posisi (`ttlPos`), harga purata posisi (`hargaTA`, `hargaTB`), dan jumlah total (`ttlLot`).

4. Fungsi OnInit()

- Fungsi ini mengendalikan inisialisasi EA, termasuk memvalidasi parameter input (contohnya, memastikan bahawa tempoh MA cepat adalah lebih kecil daripada tempoh MA perlahan) dan mencipta pemegang untuk indikator MA dan Stochastic.

5. Fungsi OnTick()

- Fungsi utama yang dilaksanakan setiap kali harga bergerak (tick).

- Ia memanggil fungsi untuk memeriksa isyarat baru dengan GetSignal(), dan jika isyarat ditemui, manageTrading() digunakan untuk melaksanakan dagangan.

- Ia juga memanggil setTPSL() untuk memastikan Take Profit dan Stop Loss sentiasa dikemaskini.

6. Fungsi isNewCandle()

- Fungsi ini mengesan sama ada lilin baru telah terbentuk. Ini penting kerana EA hanya memeriksa isyarat pada pembentukan lilin baru.

7. Fungsi GetSignal()

- Fungsi ini menentukan jika terdapat isyarat dagangan yang sah berdasarkan strategi yang dipilih:

  • Untuk eTypeCrossMA, isyarat ditentukan oleh perpotongan Moving Averages cepat dan perlahan.
  • Untuk eTypeTrend, isyarat menggunakan pengesahan dari MA dan Stochastic.

8. Fungsi manageTrading()

- Fungsi ini mengurus pelaksanaan dagangan.

- Jika isyarat yang sah dikesan, EA membuka posisi dengan saiz lot yang ditentukan menggunakan fungsi getLotSize().

- Strategi grid/layer juga diterapkan untuk membuka posisi tambahan berdasarkan jarak harga (`inJarakLayer`).

9. Fungsi updateDataTrades()

- Fungsi ini mengemas kini data berkaitan dengan posisi dagangan yang sedang berlangsung, seperti mengira harga purata dan jumlah volume posisi yang terbuka.

10. Fungsi openTrade()

- Fungsi ini membuka posisi dagangan baru berdasarkan isyarat yang dihasilkan dan saiz lot yang dikira. Ia menggunakan OrderSend() untuk melaksanakan pesanan.

11. Fungsi setTPSL()

- Fungsi ini menetapkan atau mengemas kini Take Profit dan Stop Loss untuk setiap posisi yang dibuka.

12. Fungsi modifTPSL()

- Fungsi ini mengubahsuai Take Profit dan Stop Loss posisi sedia ada jika nilainya berbeza dari yang telah ditetapkan sebelum ini.

13. Fungsi validateLot()

- Fungsi ini memastikan bahawa saiz lot yang digunakan adalah dalam julat minimum dan maksimum yang dibenarkan, serta selaras dengan langkah lot minimum (`gLotStep`).

14. Fungsi getLotSize()

- Fungsi ini mengira saiz lot yang akan digunakan berdasarkan saiz lot awal dan jumlah posisi yang telah dibuka, mengambil kira faktor pengganda (`inMultiply`).

Keseluruhan kod ini direka untuk menangkap trend pasaran dan mengurus posisi dagangan secara automatik menggunakan isyarat teknikal dari Moving Averages dan Stochastic.

Senarai
Komen 0