You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
The codes will be added:
The codes will be added:
Thank you, then what is missing is a function to check the handle for validity.
We only accept from CL functions the value of the pointer, not the pointer itself, so storing the pointer in different places will cause a situation of trying to remove an invalid process (be it context, buffer, program or kernel).
function required:
And also it is necessary to get programmatically memory size of the device, because visions have less memory than CPU's, while all simultaneously existing contexts use the same memory.
It would be good to get the card temperature (and CPU too) by standard mql means in order to dose the load.
// 'Cause I've been going on a bit of a rampage... :)
Obtaining properties of OpenCL objects will be coming soon.
Handle checking will also be organised.
1. there is no functionality in OpenCL to get GPU temperature and load.
2. fetching properties of OpenCL objects will be available soon.
3. Handle checking will also be organized.
1. i know. It doesn't have to be through OpenCL, it has to be through the system. The idea is just to make the functionality native (without DLL calls from mql5 programs).
Here are some excellent functions:
TerminalInfoInteger
Returns an integer value of a corresponding environment property of an mql5 program.
TerminalInfoString
Returns a string value of a corresponding environment property of an mql5 program
MQL5InfoInteger
Returns an integer type value of a corresponding property of a running mql5 program
MQL5InfoString
Returns a value of string type of a corresponding property of a launched mql5-program
It would be nice and logical to add:
SystemInfoInteger and therefore
SystemInfoString
which provides access to all necessary information about system environment: number of cores, name and size of operating system, amount of memory (total), amount of available (free) memory (RAM and disk space), etc., etc.
After all, the terminal doesn't work in empty eternal space. Otherwise it looks very sandy.
2, 3.
4. Be sure to implement a normal buffer access (cl_Read/WriteBuffer), specifying both start offsets (both the mql-array offset and the offset in the cl-buffer). Otherwise, almost all the arrays have to be copied twice - do we really need it? We are not writing in OpenCL to waste time rewriting from nothing into nothing. That's not fair. :)
...
4. make sure you already have a normal buffer access (cl_Read/WriteBuffer), specifying both starting offsets (both mql-array offset and cl-buffer offset). Otherwise, almost all the arrays have to be copied twice - do we really need it? We are not writing in OpenCL to waste time rewriting from nothing into nothing. That's not fair. :)
Clarify what you mean by that.
I haven't come across the situations you're describing so far.
Specify what you mean by that.
What it's for, I haven't yet encountered the situations you describe.
No problem. Here's a recent example. Building an Ema family.
Nothing exotic is required. I just want it to be like here:
int ArrayCopy(
void dst_array[], // куда копируем
void src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int cnt=WHOLE_ARRAY // сколько элементов
);
No problem. Here's a recent example. Building the Ema family
Nothing exotic is required, I just want it to be like here:
int ArrayCopy(
void dst_array[], // куда копируем
void src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int cnt=WHOLE_ARRAY // сколько элементов
);
Yeah, I get it, you don't want more complicated algorithms and memory overruns from using
and you want to be able to offset at the copy stage.
I don't want to copy 100000 elements and then do 998000 shift. But we should leave the variant with shift that we have now, because it allows not to copy many times the same data, but to take it for a new task from an already prepared CL buffer with a new shift.
SZY it would also be nice to be able to overwrite by reallocating or overwriting part of data in CL buffer, then newly received data from tick could be added without having to buy all data. In realtime this is hardly useful, but in the tester it is.