主要注释:
不,先生,正如许多MQL4/5帖子已经发布的那样,
[ CustomIndicator ]
MQL4/5类型的代码除了最终尽可能同步地响应外部响应之外,其他任何东西都无法容纳
QUOTE
-流事件处理,因此没有阻塞,没有GUI MMI交互,没有
Print()
-ing,没有任何东西会减慢速度,更少地阻止所有的单线程(SPOF)
[自定义指示器]
数据刷新/事件同步处理。
OpenCL不是用于此目的的工具(如果没有其他原因,它会增加延迟)。
OpenCL打开了利用异构计算资源的大门
CPU+GPU+多个核心设备,并在它们之间组织计算作业的工作流。。。
OpenCL程序用于在支持
OpenCL 1.1或更高版本
。现代视频卡包含数百个小型专用处理器,可以同时对传入的数据流执行简单的数学运算。这个
OpenCL
该语言组织并行计算,并为特定类别的任务提供更高的速度。
如果要进入OpenCL领域,最好从简单、非顺序(因此,大多数技术指标,即在时域中卷积,无论如何都是不可能的)并行计算开始,因为异步、分布式合作需要掌握多个域:
总是先测试现在
<COMPUTING RESOURCES>
可用:
void OnStart() {
uchar cDATA[1024];
uint aSIZE;
int aDevCOUNT = CLGetInfoInteger( 0, CL_DEVICE_COUNT );
for ( int aDEVICE = 0;
aDEVICE < aDevCOUNT;
aDEVICE++
)
{
int clCONTEXT = CLContextCreate( aDEVICE );
if (clCONTEXT == -1 ) Print( "ERROR in CLContextCreate() for aDEVICE#", aDEVICE );
string aDeviceNAME;
CLGetInfoString( clCONTEXT,
CL_DEVICE_NAME,
aDeviceNAME
); Print( "INF[", aDEVICE, "].NAME:: ", aDeviceNAME );
CLGetDeviceInfo( clCONTEXT,
CL_DEVICE_VENDOR,
cDATA,
aSIZE
); Print( "INF[", aDEVICE, "].VENDOR:: ", CharArrayToString( cDATA ) );
}
}