İşte herhangi bir DLL olmadan doğrudan MetaTrader 5 terminalinde OpenCL ile yapabilecekleriniz

[Silindi]  
Renat Fatkhullin :

Bu, yalnızca MQL5 kodundaki GPU üzerindeki hesaplamaların değil, aynı zamanda terminalin grafik yeteneklerinin bir gösterimidir:

Bir komut dosyası biçimindeki tam kaynak kodu ektedir.

Aaaaaaaaaa... Dur ben ineceğim!
Renat Fatkhullin  

Matematik ve işleme için birkaç hafta sürecek yerel bir OpenCL kitaplığı hazırlıyoruz. İnanılmaz hızlı ve güzel olacak.

Bu arada, bilimsel grafikler oluşturmak için güncellenmiş grafik kitaplığına bir göz atın.

Vitalie Postolache  

Ö! Çok yakında oyunlara gelecek)))

Ama neden ticaret platformunda? Eh, hesaplamalar açık, ancak her türlü güzellik sadece baştan çıkarır.

Renat Fatkhullin  
Vitalie Postolache :

Ö! Çok yakında oyunlara gelecek)))

Ama neden ticaret platformunda? Eh, hesaplamalar açık, ancak her türlü güzellik sadece baştan çıkarır.

OpenCL ile matematiksel hesaplamaları yüzlerce (birkaç yüz) kez hızlandırmak için binlerce GPU çekirdeği kullanabilirsiniz.

Bu, ticarette tam olarak ihtiyacınız olan şeydir ve büyüklük sıraları daha fazla hesaplama kaynağı gerektiren yöntemleri kullanmaya geçmenize izin verecektir.

MQL4'te kürekle kazıyorlar, OpenCL ile MQL5'te ise performans açısından traktör alıyorlar. GPU hesaplamalarını geniş kitlelere ulaştırmak için mevcut olanlara ek olarak yeni matematik kütüphaneleri hazırlıyoruz.

prostotrader  
Renat Fatkhullin :

Bu, yalnızca MQL5 kodundaki GPU üzerindeki hesaplamaların değil, aynı zamanda terminalin grafik yeteneklerinin bir gösterimidir:

Bir komut dosyası biçimindeki tam kaynak kodu ektedir.

Derlendi, başlatıldı.

Çalışmıyor.

MT5 yapı 1491

W7 prof SP1 tr 64-bit


Renat Fatkhullin  
prostotrader :

Derlendi, başlatıldı.

Terminal günlüklerine ve uzman pencerelerine bakın.

Komut dosyası karmaşıktır, sadece yazılmıştır ve henüz hata ayıklanmamıştır. GPU olmadan, her yerde başlamaz.

prostotrader  
Renat Fatkhullin :

Terminal günlüklerine ve uzman pencerelerine bakın.

Komut dosyası karmaşıktır, sadece yazılmıştır ve henüz hata ayıklanmamıştır. GPU olmadan, her yerde başlamaz.

2016.12 . 10 03 : 57 : 08.180 Seascape (GOLD- 12.16 ,H1)        OpenCL: GPU device 'GeForce GTX 970' selected
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)        <kernel>: 188 : 18 : error: subscripted access is not allowed for OpenCL vectors
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)           uint b=( uint )(res[ 2 ]* 255 );
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)                         ^   ~
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)        <kernel>: 189 : 18 : error: subscripted access is not allowed for OpenCL vectors
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)           uint g=( uint )(res[ 1 ]* 255 );
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)                         ^   ~
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)        <kernel>: 190 : 18 : error: subscripted access is not allowed for OpenCL vectors
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)           uint r=( uint )(res[ 0 ]* 255 );
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)                         ^   ~
2016.12 . 10 03 : 57 : 08.197 Seascape (GOLD- 12.16 ,H1)        
2016.12 . 10 03 : 57 : 08.218 Seascape (GOLD- 12.16 ,H1)        OpenCL program create failed
2016.12 . 10 03 : 57 : 36.695 Seascape (GOLD- 12.16 ,H1)        OpenCL: GPU device 'GeForce GTX 970' selected
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)        <kernel>: 188 : 18 : error: subscripted access is not allowed for OpenCL vectors
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)           uint b=( uint )(res[ 2 ]* 255 );
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)                         ^   ~
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)        <kernel>: 189 : 18 : error: subscripted access is not allowed for OpenCL vectors
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)           uint g=( uint )(res[ 1 ]* 255 );
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)                         ^   ~
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)        <kernel>: 190 : 18 : error: subscripted access is not allowed for OpenCL vectors
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)           uint r=( uint )(res[ 0 ]* 255 );
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)                         ^   ~
2016.12 . 10 03 : 57 : 36.711 Seascape (GOLD- 12.16 ,H1)        
2016.12 . 10 03 : 57 : 36.730 Seascape (GOLD- 12.16 ,H1)        OpenCL program create failed

2016.12 . 10 03 : 57 : 06.729 OpenCL  Device # 0 : GPU NVIDIA Corporation GeForce GTX 970 with OpenCL 1.2 ( 13 units, 1367 MHz, 4096 Mb, version 372.90 )
Renat Fatkhullin  

Tamam, çözelim. Kod, kalemin bir testi gibiydi.

Her GPU cihazının kendi derleyicisi vardır ve neyin atlanacağına o karar verir. Intel, AMD ve Nvidia'nın OpenCL derleyicileri birbirinden farklıdır.

Çok daha fazla işlevselliğe sahip olan OpenCL 2.0 altında kendimizi test ediyoruz. OpenCL 1.2'de bu testi kontrol edip düzelteceğiz.

Neden: