Beranda Perdagangan Sistem Postingan

EA Berbasis Dua Garis Moving Average untuk MetaTrader 4: Strategi Trading Efektif

Lampiran
13617.zip (118.38 KB, Unduh 1 kali)

Halo trader! Kali ini saya ingin berbagi tentang Expert Advisor (EA) yang saya kembangkan, yang berbasis pada dua garis Moving Average. Kode EA ini ditulis oleh Sergey Diubakin.

Versi EA ini digunakan untuk trading di akun PAMM. Meskipun adanya faktor manusia (yaitu saya), keuntungan bersih yang didapat mencapai 20%. Sementara itu, keuntungan maksimum yang bisa dicapai adalah 84% dari deposit awal.

Periode trading yang dilakukan adalah dari 23.02.2015 hingga 23.07.2015.

Menurut pengamatan saya, trading dengan EA ini memerlukan deposit yang besar, minimal sekitar 15.000 hingga 20.000.

EA ini menggunakan nilai dari indikator Moving Average untuk melakukan trading. Jika garis Moving Average cepat berada di atas garis Moving Average lambat, dan jarak antara kedua garis tersebut lebih besar dari yang ditentukan, maka EA akan membuka order beli.

Sebaliknya, jika indikator menunjukkan nilai yang berlawanan, maka EA akan membuka order jual. Penutupan order dilakukan berdasarkan nilai dari indikator Moving Average.

EA ini juga dilengkapi dengan modul tambahan: jarak antara garis Moving Average cepat dan lambat, Take Profit, Stop Loss, Trailing Stop, jarak antara order (naik dan turun), metode averaging Take Profit, waktu trading, Turn, serta peningkatan ukuran lot utama jika order sebelumnya ditutup dengan kerugian.

Algoritma EA:

  1. EA memeriksa apakah ada order yang telah dibuka sebelumnya.
  2. Jika tidak ada order yang terbuka, EA menganalisis grafik. Jika semua kondisi yang ditentukan dalam pengaturan terpenuhi, EA akan membuka order utama pertama.
  3. Setelah membuka order utama pertama, EA akan menetapkan level Take Profit dan Stop Loss (jika modul tersebut diaktifkan).
  4. Jika order utama pertama ditutup dengan kerugian, maka order berikutnya dapat dibuka dengan ukuran yang lebih besar.
  5. Jika order utama pertama sudah dibuka, modul Step Up dan Step Down diaktifkan, dan harga mencapai nilai yang ditentukan, maka order tambahan untuk modul tersebut akan ditempatkan. Order tambahan hanya dapat ditempatkan jika EA melihat bahwa order utama pertama telah dibuka sebelumnya atau terdapat order tambahan yang belum ditutup.
  6. EA ini memiliki 2 mode operasi:
    • a) Mode operasi 1: jika Fast MA berada di atas Slow MA, maka EA akan membuka order beli. Ketika tren berubah (Fast MA berada di bawah Slow MA), semua order yang terbuka akan ditutup dan order jual akan dibuka.
    • b) Mode operasi 2: jika EA telah membuka order beli dan tren berubah (Fast MA berada di bawah Slow MA), maka order tersebut tetap terbuka. EA hanya dapat membuka order jual jika Fast MA lebih rendah dari Slow MA dan semua order EA telah ditutup (Take Profit, Stop Loss tercapai, atau ditutup "secara manual").
  7. EA ini memiliki modul waktu trading, yang jika diaktifkan, memungkinkan EA untuk membuka order utama pertama hanya pada periode waktu yang ditentukan dalam modul ini. Modul ini tidak berlaku untuk order tambahan untuk modul Step Up, Step Down, dan Turn. Jadi, jika ada order yang sudah dibuka oleh EA, dan salah satu modul Step Up, Step Down, atau Turn diaktifkan, maka order tambahan untuk modul-modul tersebut akan tetap ditempatkan tanpa memperhatikan waktu.

Pengaturan Expert Advisor:

  1. Mode operasi:

    • 1 — jika tren berubah, semua order yang terbuka akan ditutup dan order berlawanan akan dibuka;
    • 2 — jika tren berubah, order yang terbuka tidak ditutup (EA menunggu hingga Take Profit, Stop Loss tercapai, atau ditutup "secara manual").
  2. Fast MA — pengaturan untuk indikator Moving Average: periode, offset, metode MA. Moving Average yang digunakan adalah yang terdapat di terminal MetaTrader 4.

  3. Slow MA — pengaturan untuk indikator Moving Average: periode, offset, metode MA. Moving Average yang digunakan adalah yang terdapat di terminal MetaTrader 4.

  4. Lot awal

    4.1. Lot awal

    • LotConst_or_not — memungkinkan pengguna untuk memilih apakah akan memulai trading dari lot yang sama atau menghitung ulang lot awal tergantung pada perubahan deposit:
      true — lot pertama akan tetap dan sama dengan nilai Lots yang ditentukan di bawah;
      false — lot pertama akan berubah secara dinamis sesuai dengan perubahan deposit dan bergantung pada parameter RiskPercent serta ukuran deposit. Lots = AccountBalance() * (RiskPercent / 100.0) / 10000.0
    • Lots — mengatur lot awal untuk trading;
    • RiskPercent — mengatur lot awal tergantung pada deposit.

    4.2. Peningkatan lot

    • FirstLotMultiplicator — parameter yang bertanggung jawab untuk rasio peningkatan setiap order utama pertama jika order utama sebelumnya ditutup dengan kerugian (ditutup oleh Stop Loss, "secara manual" atau hanya dengan kerugian);
    • First_LotSize — jika order utama pertama mencapai nilai yang ditentukan di baris ini, maka EA akan menempatkan Take Profit pada level yang diatur di baris berikutnya (First_LotSize_TakeProfit), tetapi tidak di poin 5 dari pengaturan EA;
    • First_LotSize_TakeProfit — level Take Profit "baru" dari order utama pertama, jika mencapai ukuran yang ditetapkan di baris First_LotSize;
    • First_MaxLotSize — nilai maksimum di mana EA akan meningkatkan order utama pertama. Jika ukuran order utama pertama yang akan ditempatkan lebih besar dari nilai yang ditentukan di baris ini, maka EA akan menempatkan order utama pertama sesuai dengan p.3.1. dari pengaturan EA.
  5. Pengaturan jarak antara Fast MA dan Slow MA

    • Distance — jarak yang diperlukan antara Fast MA dan Slow MA untuk membuka order, diukur dalam poin grafik tempat EA terpasang.
      true — modul Distance diaktifkan (on),
      false — modul Distance dinonaktifkan (off).
  6. Profit dalam poin — TP

    • TakeProfit — nilai profit yang diinginkan dalam poin ketika menutup order atau sekelompok order.
      true — modul TakeProfit diaktifkan (on),
      false — modul TakeProfit dinonaktifkan (off).
  7. Metode averaging — Varyant — varian metode averaging level TakeProfit (dapat dipilih antara 1 atau 2).

    • Varyant 1. Averaging level dilakukan menurut rumus: (harga pembukaan 1 + harga pembukaan 2 + harga pembukaan 3 + harga pembukaan N) / N + level Take Profit yang ditentukan dalam pengaturan EA.
    • Varyant 2. Averaging level dilakukan sebagai berikut: EA menentukan "level tanpa kerugian" dari setiap posisi (mempertimbangkan setiap swap dan komisi pada order yang dibuka oleh EA saat level Take Profit averaging) dan menambahkan level Take Profit yang ditentukan dalam pengaturan EA ke harga tersebut.
  8. Stop dalam poin — SL

    • StopLoss — nilai kerugian dalam poin, yang mungkin diterima, jika harga bergerak ke arah yang berlawanan (ke order yang terbuka).
      true — modul StopLoss diaktifkan (on),
      false — modul StopLoss dinonaktifkan (off).
  9. Jarak antara order (Step Up) — jarak (interval) antara order yang dibuka dalam grid order, diatur sesuai "tren".

    true — modul Step Up diaktifkan (on),
    false — modul Step Up dinonaktifkan (off).

    9.1. Trailing stop — level Stop Loss yang dapat dipindahkan.

    true — modul Trailing stop diaktifkan (on),
    false — modul Trailing stop dinonaktifkan (off).
  10. Jarak antara order (Step Down) — jarak (interval) antara order yang dibuka dalam grid order, diatur berlawanan dengan "tren".

    true — modul Step Down diaktifkan (on),
    false — modul Step Down dinonaktifkan (off).

  11. Identifikasi order EA — Magic (Magic Number) — parameter ini membantu EA mengenali order mereka saat trading dalam satu terminal.

  12. Logo dan output data — ShowTableOnTesting — parameter ini memungkinkan untuk menghidupkan atau mematikan tabel (keuntungan hari ini, kemarin, dll.): true - on, false - off.

  13. Time frame — program kode yang menentukan timeframe grafik yang akan digunakan oleh EA untuk trading.

    • Current — timeframe grafik yang ditentukan dalam terminal.
    • M1, M5, M15, M30, H1, H4, D1, W1, MN1 — timeframe tetap.
  14. Waktu trading — modul untuk membuka order utama pertama pada waktu tertentu.

    true — modul waktu trading diaktifkan (on),
    false — modul waktu trading dinonaktifkan (off).

  15. Turn — menempatkan order limit sesuai level Stop Loss dari order utama pertama ke arah berlawanan.

    true — modul Turn diaktifkan (on),
    false — modul Turn dinonaktifkan (off).

    • Turn — jarak di mana order pending berlawanan ditempatkan.
    • LotMultiplicator — parameter yang bertanggung jawab untuk rasio peningkatan order yang ditempatkan oleh modul Turn, jika order sebelumnya ditutup dengan kerugian (ditutup oleh Stop Loss, "secara manual", atau hanya dengan kerugian);
    • Turn_TakeProfit — level Take Profit untuk order yang ditempatkan oleh modul Turn;
    • Turn_LotSize — jika order yang akan ditempatkan oleh modul Turn melebihi nilai yang ditetapkan di baris ini, maka level Take Profit "baru" digunakan untuk order tersebut, yang ditentukan oleh modul Turn di baris berikutnya, tetapi bukan di baris Turn_TakeProfit;
    • Turn_LotSize_TakeProfit — level Take Profit baru untuk order modul Turn, jika order yang akan ditempatkan melebihi ukuran yang ditentukan di baris Turn_LotSize;
    • Turn_MaxLotSize — ukuran maksimum order yang akan ditempatkan oleh modul Turn. Jika order yang akan ditempatkan melebihi ukuran yang ditentukan, maka EA tidak akan menempatkannya.

Hasil Trading:

Hasil Trading

Versi EA ini digunakan untuk trading di akun PAMM. Periode trading yang sebenarnya adalah dari 23.02.2015 hingga 23.07.2015.

Keuntungan maksimum yang dapat dicapai adalah 84% dari deposit awal. Namun, karena faktor diri saya sendiri, keuntungan bersih hanya mencapai 20%. Alasan di baliknya adalah karena saya sering mengintervensi trading EA.

Uji coba EA yang saya lakukan menunjukkan hasil keuntungan bersih sebesar 5%, 10%, hingga 15% per bulan dengan drawdown tidak lebih dari 20% dari deposit.

P.S. Set yang dilampirkan hanya berfungsi di akun yang saya tradingkan. Pengaturan EA kustom diperlukan untuk setiap DC/broker dan akun (demo atau real).

Jangan tergoda dengan optimisasi, karena tidak selalu membantu dan dapat mengabaikan kecepatan penempatan order saat pergerakan sangat cepat.

Postingan terkait

Komentar (0)