Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 777

 
Aleksey Vyazmikin :

OpenCL için bir çekirdek yazabilir misiniz? EA çalışırken, anında optimizasyon için OpenCL kullandığını iddia eden yalnızca bir kişi tanıyorum. Başka örnek bilmiyorum.

Kendimi görmek isterim. Hatta bu konuyla ilgili bir makale bile istemiştim ama yönetim bunu gerçek ticarette nasıl uygulayacağını bilmiyor.

şaşırtıcı, opencl desteği zaten 5 yaşında, ancak ticaret ve makaleler için belirli bir çalışma örneği yok.. peki, geliştiricilerin kendileri bunu nasıl uygulayacaklarını bilmediğinden, o zaman bulut optimizasyonuna odaklanacağız
 
ax237b :
şaşırtıcı, opencl desteği zaten 5 yaşında, ancak ticaret ve makaleler için somut çalışma örnekleri yok.. peki, geliştiricilerin kendileri nasıl uygulanacağını bilmediğinden, o zaman bulut optimizasyonuna odaklanacağız
Şaşırtıcı olan ne? Terminal yeterli hızda çalışıyor, aracının yanıtında bir gecikme var. Yani opencl şimdilik dinleniyor. Bundan sonra ne olacak - bakalım
 

Lütfen yardım et!

Göstergeyi yeniden yapıyorum, işte çizim kodu

 #property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots    3
//--- plot Label1
#property indicator_label1   "High" ;
#property indicator_type1   DRAW_LINE ;
#property indicator_color1   clrRed ;
#property indicator_style1   STYLE_DOT ;
#property indicator_width1   1 ;
//--- plot Label2
#property indicator_label2   "Low" ;
#property indicator_type2   DRAW_LINE ;
#property indicator_color2   clrRed ;
#property indicator_style2   STYLE_DOT ;
#property indicator_width2   1 ;
//--- plot Label3
#property indicator_label3   "Close" ;
#property indicator_type3   DRAW_LINE ;
#property indicator_color3   clrAquamarine ;
#property indicator_style3   STYLE_SOLID ;
#property indicator_width3   1 ;


//--- input parameters
input int InpChannelPeriod= 48 ; // Period
//--- indicator buffers
double ExtHighBuffer[];
double ExtLowBuffer[];
double ExtCloseBuffer[];
//---
int i,limit,start;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,ExtHighBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,ExtLowBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,ExtCloseBuffer, INDICATOR_DATA );   
//--- set accuracy
   IndicatorSetInteger ( INDICATOR_DIGITS , _Digits );
//--- set first bar from what index will be drawn
   PlotIndexSetInteger ( 0 , PLOT_DRAW_BEGIN ,InpChannelPeriod);
   PlotIndexSetInteger ( 1 , PLOT_DRAW_BEGIN ,InpChannelPeriod);
   PlotIndexSetInteger ( 2 , PLOT_DRAW_BEGIN ,InpChannelPeriod);   
//---
   return ( 0 );
  }

//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- check for rates if(rates_total<InpChannelPeriod) return(0); //--- preliminary calculations if(prev_calculated==0) limit=InpChannelPeriod; else limit=prev_calculated; //--- the main loop of calculations for(i=limit;i<rates_total && !IsStopped();i++) { ExtHighBuffer[i]=100.0; ExtLowBuffer[i]=0.0; ExtCloseBuffer[i]=50.0; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+

#özellik göstergesi_style2 stili STYLE_DOT ; - grafikte hiç çizmiyor

Stil #özellik göstergesi_style2 STYLE_SOLID ; - STYLE_DOT stelindeki çizelgeyi çizer

Bu anormallik nedir, yoksa ellerim eğri mi?

 

Grafik diziden hareketli ortalamayı hesaplamanın en iyi yolu nedir - tam orada göstergede mi?

Belki geliştiriciler tarafından önerilen bazı hazır işlevler veya kitaplıklar vardır?

 
Aleksey Vyazmikin :

Grafik dizisinden hareketli ortalamayı hesaplamanın en iyi yolu nedir - tam orada göstergede mi?

Belki geliştiriciler tarafından önerilen bazı hazır işlevler veya kitaplıklar vardır?


Veya basit bir seçenek bile - iMA'dan bodrum katında MA çizin - saçmalıyorum :(

Bir fonksiyon aracılığıyla arama

 double MA_TF( int index)
  {
   double MA[ 1 ];
   ResetLastError ();
   if ( CopyBuffer (handle_MA_TF, 0 ,index, 1 ,MA)< 0 )
     {
       PrintFormat ( "Failed to copy data from the handle_MA_TF indicator, error code %d" , GetLastError ());
       return ( 0.0 );
     }
   return NormalizeDouble (MA[ 0 ], Digits ());
  }

Ancak, bir şekilde doğru olmadığı ortaya çıktı - içten dışa chtol ...

 

Masha ile tersten bir arama yaptım MA_TF(rates_total-i) - yardımcı oldu gibi görünüyor, ancak tarihe bakıyorum ve bazen yerleşik göstergede bir tutarsızlık var (normalleştirme kaldırılmış olsa bile), bu olabilir mi? ?

Ve göstergenin ondalık değerleri göstermesi nasıl sağlanır?

 
Aleksey Vyazmikin :

Grafik diziden hareketli ortalamayı hesaplamanın en iyi yolu nedir - tam orada göstergede mi?

Belki geliştiriciler tarafından önerilen bazı hazır işlevler veya kitaplıklar vardır?

Yani Include klasörü, her şeyi içeren MovingAverages.mqh dosyasını içerir...
 
Alexey Viktorov :
Yani Include klasörü, her şeyi içeren MovingAverages.mqh dosyasını içerir...

Teşekkür ederim, bilmiyordum ama onunla çalışmayı nerede göreceğime dair bir örnek görebilir miyim?

 
Aleksey Vyazmikin :

Teşekkür ederim, bilmiyordum ama onunla çalışmayı nerede göreceğime dair bir örnek görebilir miyim?

Alexey, arama artık çalışmıyor mu?

Sağ üstte bir dosya araması var. Arama alanı, vitese basılarak yapılandırılır.


ve işte sonuç


 
Alexey Viktorov :

Alexey, arama artık çalışmıyor mu?

Sağ üstte bir dosya araması var. Arama alanı, vitese basılarak yapılandırılır.


ve işte sonuç



Gerçekten, neden kendin aramıyorsun - teşekkürler!