Menguasai Moving Average Dengan EA Untuk MetaTrader 4

Mike 2005.11.29 21:04 20 0 0
Lampiran


    Moving Average adalah salah satu alat yang berguna dalam dunia trading, terutamanya bagi mereka yang menggunakan MetaTrader 4. EA (Expert Advisor) ini menggunakan satu moving average untuk membentuk isyarat perdagangan. Pembukaan dan penutupan posisi dilakukan apabila moving average berjumpa dengan harga pada bar yang baru dibentuk (indeks bar sama dengan 1). Saiz lot akan dioptimumkan mengikut algoritma khas yang telah ditetapkan.

    EA ini menganalisis kesesuaian antara moving average dan carta harga pasaran. Proses pemeriksaan dilakukan melalui fungsi CheckForOpen(). Jika moving average bertemu dengan bar sedemikian rupa sehingga ia lebih tinggi daripada harga pembukaan tetapi lebih rendah daripada harga penutupan, posisi BUY akan dibuka. Sebaliknya, jika moving average lebih rendah daripada harga pembukaan tetapi lebih tinggi daripada harga penutupan, posisi SELL akan dibuka.

    Pengurusan Wang yang digunakan dalam EA ini sangat mudah tetapi berkesan: kawalan terhadap setiap volum posisi dilakukan berdasarkan hasil transaksi sebelum ini. Algoritma ini dilaksanakan melalui fungsi LotsOptimized(). Saiz lot asas dikira berdasarkan risiko maksimum yang dibenarkan:

    lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);

    Parameter MaximumRisk menunjukkan peratusan risiko asas bagi setiap transaksi. Biasanya, nilainya berada antara 0.01 (1%) hingga 1 (100%). Sebagai contoh, jika margin bebas (AccountFreeMargin) adalah $20,500 dan peraturan pengurusan modal menetapkan untuk menggunakan risiko 2%, saiz lot asas akan menjadi 20500 * 0.02 / 1000 = 0.41. Sangat penting untuk mengawal ketepatan saiz lot dan menormalkan hasil dengan nilai yang dibenarkan. Biasanya, lot pecahan dengan langkah 0.1 dibenarkan. Oleh itu, transaksi dengan volum 0.41 tidak akan dilaksanakan. Untuk menormalkan, fungsi NormalizeDouble() digunakan dengan ketepatan hingga 1 angka selepas titik. Ini menghasilkan lot asas sebanyak 0.4. Pengiraan lot asas berdasarkan margin bebas membolehkan peningkatan dalam volum operasi bergantung kepada kejayaan perdagangan, iaitu, berdagang dengan pelaburan semula. Ini adalah mekanisme asas dengan pengurusan modal yang wajib untuk meningkatkan keberkesanan perdagangan.

    DecreaseFactor adalah tahap di mana saiz lot akan dikurangkan selepas perdagangan tidak menguntungkan. Nilai normal adalah 2, 3, 4, 5. Jika transaksi sebelum ini tidak menguntungkan, volum seterusnya akan dikurangkan dengan faktor DecreaseFactor untuk menunggu melalui tempoh yang tidak menguntungkan. Ini adalah faktor utama dalam algoritma pengurusan modal. Ideanya sangat mudah: jika perdagangan meningkat dengan baik, EA akan beroperasi dengan lot asas untuk meraih keuntungan maksimum. Selepas transaksi tidak menguntungkan yang pertama, EA akan "mengurangkan kelajuan" sehingga transaksi positif baru dibuat. Algoritma ini membolehkan anda menonaktifkan "pengurangan kelajuan" dengan menetapkan DecreaseFactor = 0. Jumlah transaksi tidak menguntungkan berturut-turut dikira dalam sejarah perdagangan. Lot asas akan dikira berdasarkan ini:

    if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);

    Dengan cara ini, algoritma ini membolehkan pengurangan risiko dengan berkesan yang berlaku akibat daripada siri transaksi yang tidak menguntungkan. Saiz lot akan diperiksa dengan ketat untuk saiz lot minimum yang dibenarkan pada akhir fungsi kerana pengiraan yang dibuat sebelum ini boleh menyebabkan lot = 0:

    if(lot<0.1) lot=0.1;

    EA ini terutamanya bertujuan untuk bekerja dengan tempoh harian dan dalam mod ujian – untuk melaksanakan pada harga penutupan. Ia hanya akan berdagang pada pembukaan bar baru, jadi mod pemodelan setiap tick tidak diperlukan.

    Hasil ujian akan ditunjukkan dalam laporan.

Laporan Penguji Strategi

Moving Average


SimbolEURUSD (Euro vs Dolar AS)
Tempoh1 Jam (H1) 2003.01.08 00:00 - 2003.11.25 00:00
ModelSetiap tick (berdasarkan semua kerangka masa yang tersedia dengan interpolasi fraktal setiap tick)
ParameterLots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11;

Bars dalam ujian19371Ticks yang dimodelkan656918Kualiti pemodelan25.00%

Deposit awal10000.00



Jumlah keuntungan bersih1695.20Jumlah keuntungan kasar4293.20Jumlah kerugian kasar-2598.00
Faktor keuntungan1.65Bayaran yang dijangkakan10.80

Pengunduran mutlak40.35Pengunduran maksimum (%)318.50 (3.0%)


Jumlah dagangan157Posisi pendek (menang %)73 (26.03%)Posisi panjang (menang %)84 (32.14%)

Dagangan menguntungkan (% daripada jumlah)46 (29.30%)Dagangan rugi (% daripada jumlah)111 (70.70%)
Terbesardagangan menguntungkan262.55dagangan rugi-91.00
Puratadagangan menguntungkan93.33dagangan rugi-23.41
Maksimumkemenangan berturut-turut (keuntungan dalam wang)2 (387.15)kerugian berturut-turut (kerugian dalam wang)7 (-287.25)
Maksimumkeuntungan berturut-turut (bilangan kemenangan)387.15 (2)kerugian berturut-turut (bilangan kerugian)-287.25 (7)
Puratakemenangan berturut-turut1kerugian berturut-turut3
Senarai
Komen 0