PDA

View Full Version : Sebarang petua untuk melaksanakan EA dengan pantas?



MLSamwl
06-01-2015 21:48, 09:48 PM
Howdy,

Saya tertanya-tanya sama ada sesiapa akan mempunyai keupayaan untuk memberikan beberapa petua atau cadangan untuk membuat kod anda berfungsi lebih pantas. Saya tidak cuba untuk membina HFT algo supaya pelaksanaan masa nyata adalah menengah (tetapi tentu saja selalu bonus). Sebaliknya, saya cuba mengurangkan masa penguji egi antara setiap pas.
Ini mungkin mempunyai manfaat yang jelas untuk penggunaan masa apabila menjalankan pengoptimuman yang besar (kerana saya).

Saya bekerja dalam persekitaran MetaTrader tetapi mengalu-alukan perbualan dengan mana-mana bahasa yang seseorang mungkin menggunakan.
Saya mempunyai idea-idea ini yang telah kami laksanakan:

MetaTrader 5 (64 bit dan menggunakan semua teras)
CPU yang lebih kuat (dalam anggaran)
Penggunaan Integer
Pemrograman Berorientasikan Objek (Saya tidak 100% mengenai perkara ini tetapi nampaknya logik bahawa pelbagai jumlah yang lebih kecil .mqh dokumen akan menjadi lebih cepat daripada satu dokumen .mq5 gergasi - idea?)

Petua lain?

Terima kasih banyak!
https://www.justgetforex.com/attachments/1528588639.png

SXenay
08-08-2023 10:29, 10:29 AM
Pemrograman Berorientasikan Objek (Saya tidak 100% pada ini tetapi nampaknya logik bahawa sejumlah fail yang lebih kecil .mqh akan lebih cepat daripada satu fail .mq5 yang besar - idea?)
Mungkin tidak. Itu bukan bagaimana komputer berfungsi ... Kod itu akan disusun lagi.

MLSamwl
08-08-2023 11:50, 11:50 AM
Terima kasih atas penjelasannya.
https://www.justgetforex.com/attachments/1528588640.pngSaya tidak mempunyai latar belakang dalam komputer tetapi telah mengajar pengaturcaraan saya buat sementara waktu hari ini, jadi akan ada fasa besar pemahaman sains komputer saya menghadapinya. Maaf jika ini adalah kesilapan yang jelas. Mencari tabiat yang baik untuk dijemput, tidak sabar untuk mengetahui.

noelaycashfo91
08-08-2023 13:11, 01:11 PM
Terima kasih kerana penjelasannya.
https://www.justgetforex.com/attachments/1528588640.pngbahawa saya tidak mempunyai latar belakang dalam komputer tetapi telah mengajar pengaturcaraan saya buat sementara waktu hari ini, jadi akan ada bab-bab besar pemahaman sains komputer peribadi saya yang menghadap. Maaf jika ini adalah kesilapan yang jelas. Mencari kebiasaan yang baik untuk dipilih, tidak sabar untuk mengetahui.
Peningkatan tenaga pengiraan adalah langkah terakhir yang perlu anda ambil. Dalam mengoptimumkan pengiraan, pengiraan pengiraan sebenar datang. Anda dapat melihat kesan pengoptimuman algoritma dengan baik jika anda cuba mengira nombor Fibonacci iteratif vs rekursif. Salah satu daripada ini diperlukan. Editor mql45 mempunyai binaan dalam alat profil yang harus memberikan anda pemahaman asas mengenai bahagian algoritma yang memerlukan masa yang lama. Berapa kerapkah kod anda dilaksanakan? Adakah ia benar-benar penting bagi setiap tanda untuk meniru atau adakah cukup untuk menguji hanya pembukaan pub? Ini akan memberi anda pengurangan masa backtesting. Adakah terdapat sebahagian besar kod yang tidak perlu dilaksanakan berulang kali? Adakah anda akan mengarang sekiranya cek dan mengabaikan banyak pengiraan setiap kitaran? Pengoptimuman mikro (jika anda benar-benar mahukan yang boleh dilakukan mql4 bit terakhir) seperti pemetaan nilai yang sering digunakan dan bukannya mengira mereka berulang kali. Pemboleh ubah bersudut penambakan bersyarat. Saya fikir faktor tempatan agak lebih cepat dan juga antarabangsa. Jadi, anda dapat menyimpan sebilangan kecil seketika di sana. Menggunakan peralihan kecil dan bukan cawangan. Cuba untuk menghindari modulo dan sebagainya .... Walau bagaimanapun, ini adalah jenis yang berlebihan untuk anda yang saya rasa.

Navaffo
08-08-2023 14:32, 02:32 PM
Halo, Daripada apa yang saya tahu: MT5 multicore boleh baik-baik saja, tetapi anda perlu program begitu. Ini bermakna membahagikan kod anda dalam benang yang boleh dilaksanakan secara serentak. CPU yang lebih kuat, ya, yang akan mempercepatkan masa pelaksanaan anda, tetapi jika tempoh penghantaran anda (internet) lambat yang tidak masuk akal. Penggunaan integer? Saya tidak tahu ini, anda mahu menukar beregu kepada bilangan bulat dan sebaliknya? Tempoh penukaran akan membuat anda kehilangan keuntungan menggunakannya melainkan anda membuat pengiraan yang agak berat. OOP, tidak, yang membenarkan kod dekode sahaja, binary yang dihasilkan tidak lebih cepat daripada kod prosedur. Dan tempoh fail header atau mempunyai banyak fail header selain satu besar tidak ada hubungannya dengan kelajuan pelaksanaan. BT

SXenay
08-08-2023 15:52, 03:52 PM
Terima kasih atas penjelasannya.
https://www.justgetforex.com/attachments/1528588640.pngbahawa saya tidak mempunyai latar belakang dalam komputer tetapi telah mengajar pengaturcaraan saya buat sementara waktu sekarang, jadi akan ada fasa besar pengetahuan sains komputer peribadi saya yang menghadap. Maaf jika ini adalah kesilapan jelas. Pada mencari kebiasaan yang baik untuk memilih, ingin mengetahui.
Saya tidak tahu banyak tentang MQL, saya baru masuk ke dalamnya pada hujung minggu. Saya mempunyai banyak pengetahuan tentang bahasa lain. Masalahnya ialah: bahasa reka bentuk tidak dicipta untuk komputer, ia dibuat untuk manusia. Komputer membaca versi diterjemahkan - yang dihasilkan oleh pengkompil. Keluaran penyusun tidak mempunyai persamaan dengan apa yang anda lihat dalam editor anda. Pengkompil akan mengubah (Meningkatkan) banyak, seperti inlining kod yang kemudian akan menjadikan kod tersebut lebih besar daripada yang lebih kecil. Maklumat am: Jangan pergi ke pengoptimuman mikro sehingga kod anda benar-benar berfungsi. Ia adalah satu pembaziran masa. Mengatasi struktur keseluruhan program, logik dan pengiraan anda (sekiranya anda sangat bergantung kepada mereka). Hanya dengan melihat pembinaan EA sebagai contoh, agak jelas bahawa pengiraan banyak (tidak perlu) di OnTick () adalah idea yang buruk kerana rutin itu dipanggil sangat kerap.

MLSamwl
08-08-2023 17:13, 05:13 PM
petikan Kuasa pengiraan yang semakin meningkat adalah langkah terakhir yang perlu anda ambil. Penurunan pengiraan sebenar datang dalam mengoptimumkan algoritma. Anda mungkin melihat kesan pengoptimuman algoritma dengan baik jika anda cuba mengira nombor Fibonacci iteratif vs rekursif. Salah satu daripada ini mengambil minit yang lain hanya miliseconds. Editor mql45 mempunyai alat terbina dalam yang harus memberi anda pemahaman asas mengenai bahagian algoritma yang memerlukan seketika. Berapa kerapkah kod anda dilaksanakan? Adakah ia benar-benar penting untuk setiap tanda ...
Hi Kilian, Terima kasih atas balasannya. Iteratif vs Fibonacci rekursif: Tidak pernah mendengar tentang ini dan adalah sesuatu yang saya akan terus membaca. Menemui beberapa perkara pada stackoverflow. Alat pengedit editor Mql5: Bukan sesuatu yang saya gunakan sebelum ini, terdapat beberapa atan di dalamnya dan membaca tentangnya hari ini. Penyelesaian yang jelas, terima kasih! OnTick: Saya sangat memperhatikan dan cuba untuk mengekalkan sebahagian besar tugas OnBar tetapi ya salah satu daripada jenis transaksi adalah OnTick yang sedang memakan masa pemprosesan. Ini kelihatan seperti beberapa buah gantung rendah. Bahagian kod yang dieksekusi berulang-ulang kali? : Ini bukan bidang yang telah saya pertimbangkan dan akan menyelidikinya. Saya percaya anda betul ada beberapa kecekapan hebat yang ada di sini. Pengoptimuman mikro: Suka cadangan dan apabila saya sampai sejauh ini, saya pasti akan mencuba sesuatu (bagus untuk pembelajaran saya tidak kira). Sangat dihargai.

MLSamwl
08-08-2023 18:34, 06:34 PM
Halo, Dari apa yang saya tahu: MT5 multicore mungkin baik-baik saja, tetapi anda perlu program begitu. Ini biasanya bermakna membahagikan kod anda dalam benang yang boleh dilaksanakan secara serentak. CPU yang lebih kuat, ya, yang boleh mempercepatkan masa pelaksanaan anda, tetapi jika tempoh penghantaran anda (bersih) lambat yang tidak masuk akal. Penggunaan integer? Saya tidak tahu ini, anda ingin menukarkan beregu kepada bilangan bulat dan sebaliknya? Tempoh penukaran akan membuat anda menghapuskan keuntungan menggunakannya jika anda tidak membuat pengiraan yang agak berat. OOP, tidak, yang membenarkan hanya menyusun semula ...
Hei Broketrader, MT5 multicoreI tidak menyadari bahwa mungkin untuk memisahkan kode Anda ke berbagai thread seperti itu. Ini mungkin memberi impak. Pada masa ini anda mendapat kelebihan multicore apabila mengendalikan pengoptimal. (yang merupakan perbezaan epik berbanding mt4). CPU: Saya mempertimbangkan untuk mendapatkan mesin baru pada masa ini. Cip Haswell baru kelihatan cantik licin. Kelajuan sambungan internet bukan masalah. Saya hanya tertumpu pada pelaksanaan kod. Integers: Saya boleh benar-benar salah tetapi dengan pemahaman saya yang terbatas Integer adalah lebih mudah untuk mesin untuk dikira daripada mengatakan Dual. Cth. hanya berfungsi dalam pips atau _Points apabila mengira perkara seperti berhenti dan matlamat. Tidak menimbangkan untuk menukar bilangan bulat dan muncul kembali ke belakang. Int StopLoss = 300;/StopLoss di _Points tidak dapat dijalankan di mana-mana, di mana peluang itu muncul. Terima kasih kerana semua input anda sangat dihargai.

MLSamwl
08-08-2023 19:55, 07:55 PM
sebut saya tidak tahu banyak tentang MQL, saya baru sampai pada hujung minggu. Saya mempunyai banyak pengetahuan tentang bahasa lain walaupun. Masalahnya ialah: bahasa reka bentuk tidak dibuat untuk komputer, ia dibuat untuk manusia. Komputer membaca versi diterjemahkan - yang dihasilkan oleh pengkompil. Keluaran penyusun tidak mempunyai persamaan dengan apa yang anda lihat dalam editor anda. Pengkompil akan mengubah (Meningkatkan) banyak, seperti inlining kod yang kemudiannya akan membuat kod lebih besar daripada lebih kecil. Nasihat umum: Jangan pergi ke blog mikro ...
Terima kasih atas maklumat umum. Saya akan membuat benda tersebut. Mengatasi masalah yang lebih besar (struktur, pengiraan dan logik) dan kemudian berjalan ke tahap mikro. OnTick () kelihatan seperti tempat yang hebat untuk memulakan keuntungan yang mudah. Baru ke mql? Terbaik dalam perdagangan anda kepada anda! Sekiranya anda sudah biasa dengan pengaturcaraan secara amnya, anda perlu berpura-pura melalui mql dengan cepat. Mql4 pastinya rasa pemilihan, tetapi jika anda tahu perkara anda pergi terus ke mql5. Faedah dalam menganalisis makan apa-apa kelebihan yang dapat diberikan oleh mql4. Kuda tua yang penat dan semua orang terus menyerangnya.

cavehe
08-08-2023 21:16, 09:16 PM
Saya melihat pengurus tugas windows, saya melihat mt4 hanya boleh menggunakan maksimum 25 CPU, maka, mt4 tersangkut. Cara untuk meningkatkan penggunaan% CPU untuk mt4 untuk mt4 menjalankan cepat, tidak tersangkut?

SXenay
08-08-2023 22:36, 10:36 PM
Saya melihat pengurus tugas windows, saya melihat mt4 hanya boleh menggunakan 25 CPU maksimum, maka, mt4 tersangkut. Cara untuk meningkatkan penggunaan% CPU untuk mt4 supaya mt4 berjalan dengan cepat, tidak terjejas?
Saya fikir anda mempunyai PC teras quad - dalam kes itu 25 peratus bersamaan dengan 100% teras tunggal. Untuk mendapat manfaat daripada beberapa teras, aplikasi perlu direka bentuk untuk multi threading (pelaksanaan selari) jadi mungkin ada yang anda boleh lakukan pada akhirnya.

cavehe
08-08-2023 23:57, 11:57 PM
petikan Saya rasa anda mempunyai PC teras quad - kerana kes 25% bersamaan dengan 100 peratus teras tunggal. Untuk mendapat manfaat daripada beberapa teras permohonan perlu dibuat untuk pelbagai threading (pelaksanaan selari) jadi mungkin ada apa-apa yang anda boleh lakukan pada akhirnya.
Ya, kamu betul. PC saya mempunyai teras teras dalam CPU. Terima kasih.