Kebanyakan Penasihat Pakar tidak perlu DLL yang. Walaupun pengaturcaraan MQL agak menghadkan, ia mencukupi untuk 99% penasihat pakar. Pengaturcaraan DLL untuk MetaTrader hanya bersesuaian sekiranya MQL tidak menawarkan keupayaan yang keperluan EA.
Apakah DLL yang?
DLL bermaksud pautan dinamik perpustakaan, yang tidak sedikitpun berguna dalam memahami apa yang dilakukan. Pengkonsepan toolbox yang penuh dengan alat. The DLL sendiri adalah toolbox. Yang “barangan” dalam DLL adalah alat-alat yang penasihat pakar atau petunjuk untuk membuat keputusan. The MQL hanya memutuskan yang alat untuk digunakan di mana pada masa.
MetaTrader membolehkan Expert Advisors keupayaan untuk mengawal sama ada atau tidak MQL boleh menggunakan DLL yang. Pilihan ini adalah yang pertama yang terdapat dalam gambar di atas. Pilihan yang tersusun untuk “mengesahkan panggilan fungsi DLL” adalah subset pilihan ini. Setiap kali MT4 mahu menggunakan DLL yang, ia akan segera pengguna dengan ya / tidak kotak mesej setiap kali tunggal yang DLL yang digunakan. Ia amat menjengkelkan. MetaTrader akan lebih baik tanpa pilihan ini kerana ia mengelirukan kebanyakan pengguna.
Apabila memprogram DLL MetaTrader
Kelajuan
Saya sering menghadapi keperluan untuk DLL yang setiap kali saya merancang untuk melakukan matematik intensif pengaturcaraan. MQL berjalan luar biasa perlahan-lahan untuk pengaturcaraan bahasa. Bilamana seseorang EA mahu memproses beberapa juta calcualtions, ia cenderung untuk membekukan. MetaTrader mengesyaki bahawa ia jatuh ke dalam gelung tak terhingga dan pencekik.
Bergerak mereka ke dalam pengiraan DLL pas bahawa tanggungjawab untuk mengira nombor dengan bahasa yang lebih kuat. MetaTrader hanya suka C / C atau Delphi, yang disebut sebagai tahap yang lebih tinggi. Yang MQL programmer boleh mengawal perkakasan fizikal bagi mengoptimumkan prestasi jika ia diperlukan. Yang ususally akan pembunuhan besar-besaran. A C bertulis program dll generik akan berjalan banyak, banyak kali lebih cepat daripada kod yang sama dalam MQL. Kami hanya DLL program di OneStepRemoved dalam C atau C (dibaca sebagai C plus plus).
Menjual produk dalam MetaTrader
MQL adalah yang pengaturcaraan bahasa yang direka sepenuhnya untuk dagangan. Apa-apa sahaja yang meluas di luar bidang perdagangan, seperti menyambung kepada pangkalan data atau membaca maklumat dari pelayan, tidak disokong.
Sebuah perniagaan yang mahu menjual Penasihat Pakar benar-benar memerlukan DLL yang. Bahasa peringkat tinggi dengan mudah menyokong operasi web yang boleh mengesahkan yang boleh dan tidak dibenarkan menggunakan fail.
Lebih penting lagi, Bahasa aras tinggi menawarkan pilihan penyulitan dramatik kuat. Decompiling satu fail MQL, yang bermaksud memecahkan ia terbuka untuk mencuri kandungan, hanya kos kira-kira $10-15 jika anda melakukan carian Google yang cukup. Cracking fail DLL mengambil kerja lebih. Juga satu fail tak disulitkan mungkin mengambil program kerja beberapa hari kerja penuh untuk membuka. Cracking DLL yang disulitkan boleh mengambil bulan jika retak untuk penyulitan yang tidak diketahui. Walaupun apa-apa yang boleh disulitkan secara teori boleh deencrypted, ia menjadi satu perkara skala dan sumber. Akan retak pekerjaan sepenuh masa fail anda waran seseorang untuk beberapa bulan? Jawapannya adalah tidak untuk semua tetapi yang paling sensitif bahan.
Merapatkan berbilang kejadian MetaTrader
Kadang-kadang, peniaga bentuk Expert Advisors yang perlu menerima maklumat dari pelbagai broker pada masa yang sama. Broker arbitraj dan mesin penyalin dagangan jatuh dengan rapi ke dalam kategori ini. Dalam kes fotokopi perdagangan, akaun MT4 yang mahu menyalin akaun lain perlu tahu apa yang berlaku. The DLL berdiri di tengah-tengah antara mereka sebagai jalan untuk lulus maklumat berulang-alik.
Banyak masalah-masalah lain yang paling sesuai diselesaikan dengan satu DLL. Jika anda tidak pasti sama ada ia masuk akal untuk situasi anda, sila kenalan saya.
paolo sioli berkata
ciao
i’m interested in your dll programming capabilities
i absolutely need multithread on mt4 backtest optimization, with the possibility to use all cpu cores of a pc, and all cpu cores in my lan. i know it should be possible using dll programming on mt4. can you help me?
Terima kasih
Shaun Overton berkata
Hi Paolo,
MT4 is limited to a single core – there’s no way to multithread the DLL to speed up your backtests. I wish I could help, but it’s a design flaw in MetaTrader 4.
Reynard berkata
Hi Shaun,
I have got an indicator that i want to sell online.
How do i use DLL or anything else that prevents people from redistributing my indicator once they purchase my indicator online?
Terima kasih,
Reynard
Shaun Overton berkata
Hi Reynard,
Please contact me directly. I have a solution named Trader Lockdown that does exactly that.
–Shaun
Florin berkata
Thank you for this professional article.
Evans Njuguna berkata
Hi Shaun,,,
Great article and your expertise on metatrader-dll is highly appreciated. I need your help in converting some of the code in my EA into dll,,,,for speed/efficiency purposes and also for security. Kindly assist.
Terima kasih.
Njuguna.
Shaun Overton berkata
Hi Njuguna,
Please email your EA to Info@onestepremoved.com untuk menerima anggaran.
–Shaun
Johnson berkata
So is there a way to have a backtest on a ea you want to test on strategy test That you say “alllow DLL imports “I’m really want to test on my ea on strategy test and is there a way to enable it to run on strategy test?
Shaun Overton berkata
The EA can refuse to run all backtests regardless of whether a DLL is involved or not.
wakup309 berkata
Hi Shaun,
How to Receive mt4 data from proxy server between client and server, can you guide me to general steps , terima kasih .
Shaun Overton berkata
That’s not something that I expect to cover soon.
Dennis Lai berkata
Hi Shaun,
thank you for your great sharing above
I have a question, if I’m going to build a EA that wish to check equity or balance if down to certain level, kemudian :
1) close all running and pending orders (even open by other EAs)
2) stop new others from any other EAs
believe (1) no need DLL, while is that needs DLL coding?
thx.
Dennis
Shaun Overton berkata
DLL is completely unnecessary for those tasks.
Kosta berkata
Hi. I am on the first time on your site. My English is not very well. Maaf.
I have one question How does any program Expert Advisor reads the price of EURUSD (or GBPUSD ,..) from editor of MT4?
Terima kasih. Kosta.
Shaun Overton berkata
Use the function MarketInfo()
Khaled berkata
Need tour help
I have an EA that i want to sell
But its need to call an indicator ans a dll file
Aldo i have problèmes of checking trade volume before sends orders
Help me please
Shaun Overton berkata
Hi Khaled,
Sila e-mel Info@onestepremoved.com and ask about Trader Lockdown.
–Shaun
Dee berkata
Can someone access all the files on my system through enabling DLL. Or the programmer only have access to my platform
Shaun Overton berkata
Theoretically they could, but your antivirus would likely detect that kind of attempt.