EA Berasaskan 2 Garisan Moving Average untuk MetaTrader 4

Mike 2015.12.10 21:58 27 0 0
Lampiran

Idea untuk Expert Advisor ini datang dari saya. Kod EA ini ditulis oleh Sergey Diubakin.

Pada versi ini, EA digunakan untuk berdagang di akaun PAMM. Akibat faktor manusia (iaitu saya), keuntungan bersih hanya 20%. Namun, keuntungan maksimum yang dapat dicapai adalah 84% daripada deposit asal.

Tempoh perdagangan sebenar: dari 23.02.2015 hingga 23.07.2015.

Berdasarkan pemerhatian saya, perdagangan dengan EA ini memerlukan deposit yang besar (minimum 15,000 - 20,000).

Nilai indikator Moving Average digunakan dalam perdagangan. Jika garisan Moving Average pantas berada di atas garisan Moving Average perlahan, dan jarak antara kedua garisan ini lebih besar daripada yang ditetapkan, maka pesanan beli akan dibuka.

Sebaliknya, nilai indikator digunakan untuk membuka pesanan jual. Penutupan pesanan berlaku mengikut nilai indikator Moving Average.

EA ini juga mempunyai modul tambahan: jarak antara garisan Moving Average pantas dan perlahan, Take Profit, Stop Loss, Trailing Stop, jarak antara pesanan (naik dan turun), kaedah purata Take Profit, waktu perdagangan, Turn, dan peningkatan lot utama pertama jika pesanan sebelumnya ditutup dengan kerugian.


Algoritma EA:

  1. EA akan memeriksa jika terdapat pesanan yang sudah dibuka sebelum ini.
  2. Jika tiada pesanan terbuka, EA akan menganalisis carta, dan jika semua syarat dalam tetapan dipenuhi, ia akan membuka pesanan utama pertama.
  3. Selepas membuka pesanan utama pertama, EA akan menetapkan tahap Take Profit dan Stop Loss (jika modul tersebut diaktifkan).
  4. Jika pesanan utama pertama ditutup dengan kerugian, pesanan seterusnya boleh dibuka dengan peningkatan saiz.
  5. Jika pesanan utama pertama sudah dibuka, modul Step Up dan Step Down diaktifkan dan harga mencapai nilai yang ditetapkan, maka pesanan tambahan untuk modul ini akan dibuka. Pesanan tambahan untuk modul Step Up dan Step Down hanya boleh dibuka jika EA melihat bahawa ia telah membuka pesanan utama pertama atau terdapat pesanan tambahan yang belum ditutup.
  6. EA ini mempunyai 2 mod operasi:
    • a) Mod 1 ialah jika Fast MA berada di atas Slow MA, maka EA akan meletakkan pesanan beli, dan sebaik sahaja trend berubah (Fast MA berada di bawah Slow MA), semua pesanan yang dibuka akan ditutup dan pesanan jual akan dibuka.
    • b) Mod 2 ialah jika EA telah membuka pesanan beli dan trend berubah (Fast MA berada di bawah Slow MA), maka pesanan tersebut kekal terbuka. EA hanya boleh meletakkan pesanan jual apabila Fast MA menjadi lebih rendah daripada Slow MA dan semua pesanan EA ditutup (Take Profit, Stop Loss dicapai, atau ditutup "secara manual").
  7. EA ini mempunyai modul waktu perdagangan, yang, jika diaktifkan, membolehkan EA hanya meletakkan pesanan utama pertama pada tempoh waktu yang ditetapkan dalam modul ini. Modul ini tidak terpakai untuk pesanan tambahan bagi modul Step Up, Step Down dan Turn. Jadi, jika terdapat pesanan yang telah dibuka oleh EA, dan mana-mana modul Step Up, Step Down atau Turn diaktifkan, maka pesanan tambahan untuk modul ini akan dibuka tanpa mengira waktu.


Tetapan Expert Advisor:

  1. Mod operasi:

    • 1 — jika trend berubah, semua pesanan yang dibuka akan ditutup dan pesanan lawan akan dibuka;
    • 2 — jika trend berubah, pesanan yang dibuka tidak ditutup (EA menunggu sehingga Take Profit, Stop Loss dicapai, atau ditutup "secara manual").
  2. Fast MA — tetapan untuk plugin indikator Moving Average: tempoh, offset, kaedah MA. Moving Average yang termasuk dalam terminal MetaTrader 4 digunakan.

  3. Slow MA — tetapan untuk plugin indikator Moving Average: tempoh, offset, kaedah MA. Moving Average yang termasuk dalam terminal MetaTrader 4 digunakan.

  4. Lot awal

    4.1. Lot awal

    • LotConst_or_not — membolehkan pengguna memilih sama ada untuk memulakan perdagangan dari lot yang sama atau mengira semula lot awal bergantung pada perubahan deposit:
      true — lot pertama akan tetap dan sama dengan nilai Lots, yang ditetapkan di bawah;
      false — lot pertama akan berubah secara dinamik mengikut perubahan deposit dan bergantung pada parameter RiskPercent dan saiz deposit. Lots =AccountBalance() * (RiskPercent / 100.0) / 10000.0
    • Lots — menetapkan lot awal untuk perdagangan;
    • RiskPercent — menetapkan lot awal bergantung pada deposit.

    4.2. Peningkatan lot

    • FirstLotMultiplicator — parameter yang bertanggungjawab untuk nisbah peningkatan setiap pesanan utama pertama yang seterusnya jika pesanan utama pertama ditutup dengan kerugian (ditutup oleh Stop Loss, "secara manual" atau sekadar dengan kerugian);
    • First_LotSize — jika pesanan utama pertama mencapai nilai yang ditetapkan dalam baris ini, maka EA akan meletakkan Take Profit pada tahap yang ditetapkan dalam baris berikut (First_LotSize_TakeProfit), tetapi tidak dalam titik 5 tetapan EA;
    • First_LotSize_TakeProfit — tahap Take Profit "baru" bagi pesanan utama pertama, sekiranya ia mencapai saiz yang ditetapkan dalam baris First_LotSize;
    • First_MaxLotSize — nilai maksimum yang akan meningkatkan pesanan utama pertama. Jika saiz pesanan utama pertama yang akan diletakkan lebih besar daripada nilai yang ditetapkan dalam baris ini, maka EA akan meletakkan pesanan utama pertama mengikut p.3.1. tetapan EA.
  5. Tetapan jarak antara Fast MA dan Slow MA

    • Jarak — jarak yang diperlukan antara Fast MA dan Slow MA untuk membuka pesanan, diukur dalam poin carta di mana EA dipasang.
      true — modul Jarak diaktifkan (hidup),
      false — modul Jarak dinyahaktifkan (mati).
  6. Keuntungan dalam poin — TP

    • TakeProfit — nilai keuntungan yang diingini dalam poin ketika menutup pesanan atau sekumpulan pesanan.
      true — modul TakeProfit diaktifkan (hidup),
      false — modul TakeProfit dinyahaktifkan (mati).
  7. Kaedah purata — Varyant — variasi kaedah purata tahap TakeProfit (boleh dipilih antara 1 atau 2).

    • Varyant 1. Purata tahap berlaku menurut formula ini: (harga pembukaan 1 + harga pembukaan 2 + harga pembukaan 3 + harga pembukaan N) / N + tahap Take Profit yang ditetapkan dalam tetapan EA.
    • Varyant 2. Purata tahap berlaku seperti berikut: EA menentukan "tahap tanpa kerugian" bagi setiap posisi (mengambil kira setiap swap dan komisi pada pesanan yang dibuka oleh EA pada masa purata tahap Take Profit) dan menambah tahap Take Profit yang ditetapkan dalam tetapan EA ke harga itu.
  8. Stop dalam poin — SL

    • StopLoss — nilai kerugian dalam poin, yang mungkin diterima, jika harga bergerak ke arah bertentangan (ke arah pesanan yang dibuka).
      true — modul StopLoss diaktifkan (hidup),
      false — modul StopLoss dinyahaktifkan (mati).
  9. Jarak antara pesanan (Step Up) — jarak (interval) antara pesanan yang dibuka dalam grid pesanan, ditetapkan mengikut "trend".

    true — modul Step Up diaktifkan (hidup),
    false — modul Step Up dinyahaktifkan (mati).

    9.1. Trailing stop — tahap Stop Loss yang boleh bergerak.

    true — modul Trailing stop diaktifkan (hidup),
    false — modul Trailing stop dinyahaktifkan (mati).
  10. Jarak antara pesanan (Step Down) — jarak (interval) antara pesanan yang dibuka dalam grid pesanan, ditetapkan bertentangan dengan "trend".

    true — modul Step Down diaktifkan (hidup),
    false — modul Step Down dinyahaktifkan (mati).

  11. Pengenal pesanan EA — Magic (Magic Number) — parameter ini membantu EAs mengenal pasti pesanan mereka semasa berdagang dalam satu terminal.

  12. Logo dan output data — ShowTableOnTesting — parameter ini membolehkan anda menghidupkan atau mematikan jadual (pendapatan hari ini, semalam dan lain-lain): true - hidup, false - mati.

  13. Time frame — kod program yang menentukan time frame carta yang akan digunakan oleh EA untuk perdagangan.

    • Semasa — time frame carta yang ditetapkan dalam terminal.
    • M1, M5, M15, M30, H1, H4, D1, W1, MN1 — timeframes tetap.
  14. Waktu perdagangan — modul untuk membuka pesanan utama pertama pada waktu tertentu.

    true — modul Waktu perdagangan diaktifkan (hidup),
    false — modul Waktu perdagangan dinyahaktifkan (mati).

  15. Turn — meletakkan pesanan limit mengikut tahap Stop Loss pesanan utama pertama dalam arah bertentangan.

    true — modul Turn diaktifkan (hidup),
    false — modul Turn dinyahaktifkan (mati).

    • Turn — jarak di mana pesanan pending bertentangan diletakkan.
    • LotMultiplicator — parameter yang bertanggungjawab untuk nisbah peningkatan pesanan yang diletakkan oleh modul Turn, sekiranya pesanan sebelumnya ditutup dengan kerugian (ditutup oleh Stop Loss, "secara manual" atau sekadar dengan kerugian);
    • Turn_TakeProfit — tahap Take Profit untuk pesanan yang diletakkan oleh modul Turn;
    • Turn_LotSize — jika pesanan yang akan diletakkan oleh modul Turn melebihi nilai yang ditetapkan dalam baris ini, maka tahap Take Profit baru digunakan untuk pesanan tersebut, yang ditentukan oleh modul Turn dalam baris berikut, tetapi bukan dalam baris Turn_TakeProfit;
    • Turn_LotSize_TakeProfit — tahap Take Profit baru untuk pesanan modul Turn, sekiranya pesanan yang akan diletakkan melebihi saiz yang ditetapkan dalam baris Turn_LotSize;
    • Turn_MaxLotSize — saiz maksimum pesanan yang akan diletakkan oleh modul Turn. Jika pesanan yang akan diletakkan melebihi saiz yang ditetapkan, maka EA tidak akan meletakkannya.


Keputusan Perdagangan:

Keputusan Perdagangan

Versi ini EA digunakan untuk perdagangan di akaun PAMM. Tempoh perdagangan sebenar: dari 23.02.2015 hingga 23.07.2015.

Keuntungan maksimum yang dapat dicapai adalah 84% daripada deposit asal. Namun, disebabkan oleh tindakan saya sendiri, keuntungan bersih hanya 20%. Sebabnya adalah saya campur tangan dalam perdagangan EA.

Ujian EA yang saya jalankan menunjukkan hasil keuntungan bersih 5%, 10%, 15% sebulan dengan penarikan balik tidak melebihi 20% daripada deposit.

P.S. Set yang dilampirkan hanya berfungsi pada akaun yang saya dagangkan. Tetapan EA yang khusus diperlukan untuk setiap DC/broker dan akaun (demo atau sebenar).

Jangan terlalu teruja dengan pengoptimuman, kerana ia tidak selalu membantu dan mungkin mengabaikan kelajuan pengunduran pesanan pada pergerakan yang sangat pantas.

Senarai
Komen 0