Hatalar, hatalar, sorular - sayfa 32

 
Şimdi benim de bir hatam var... Siz yeniden derleyene kadar son çubuklar çizilir.
 
Interesting :

Tek doğru yol çok basit.

%100 çalışan bir gösterge yazılır ve klasik olarak "Sembol" parametresi olmadan yapılır, yani. mevcut sembol ve nokta ile hesaplanır.

Bundan sonra, böyle bir TEMEL hesap makinesi bir Uzman Danışmanda (mekanik çalışma sağlanırsa) veya bir hesap makinesinde (HESAPLANMAMIŞ BİR CİHAZ tablosunda bilgi görüntülemek gerekirse) çağrılır.

not

Aksi takdirde, her şeyi akıllıca yaparsanız, bir hesap makinesinde veya ayrı bir işlevde ek bir hesaplama yapmanız ve ardından sonuçları mevcut grafikteki verilerle ilişkilendirmeniz gerekir...

Değerlendirilmeye değer bir teklif

Tabii ki, sıradan mantık açısından, bu, sol kulağı sağ elle kaşımak gibidir (ama bu artık sizin için değil, geliştiriciler için),

o zaman neden yerel olmayan bir enstrümanın verilerini arama olasılığı?

Yine de özel göstergeler oluşturmanız ve bunları doğru araçtan çağırmanız gerekiyorsa, genel olarak sonuç şudur: Bir şapka alacağım.

Yine de, yine de, JPY verileriyle EUR üzerinde hazır bir gösterge arayacağım (örneğin, yen için yeterli tarih yok)

ama bu uzunluk için veri yok ve bana ne söyleyecek ??? aynı şarkı.

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 

İşte çalışan bir sürüm:

 #property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot LRma
#property indicator_label1   "LRma"
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red
#property indicator_style1  STYLE_SOLID
#property indicator_width1   1
input string              symbol      = "EURJPY" ;
input int                 MA_Period   = 25 ;           // период MA
input int                 MA_shift    = 0 ;           // сдвиг индикатора
input ENUM_APPLIED_PRICE price       = PRICE_OPEN ;   // тип цены 
//--- indicator buffers
double   LRma[],L[],S[],iPoint,iiMA;

int Lwma,Sma; // Хендлы машек
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,LRma, INDICATOR_DATA );
   Lwma= iMA (symbol, 0 ,MA_Period+ 1 ,MA_shift, MODE_LWMA ,price);
   Sma= iMA (symbol, 0 ,MA_Period+ 1 ,MA_shift, MODE_SMA ,price);
   iPoint= 1.0 / SymbolInfoDouble (symbol, SYMBOL_POINT );
   iiMA= 1.0 /MA_Period;
   IndicatorSetString ( INDICATOR_SHORTNAME , "LRma_symbol_" +symbol);
//---
   int count=( int ) SeriesInfoInteger (symbol, 0 , SERIES_BARS_COUNT );
   while ( BarsCalculated (Lwma)<count){}
   while ( BarsCalculated (Sma)<count){}
   ArraySetAsSeries (L,true);
   ArraySetAsSeries (S,true);
   ArraySetAsSeries (LRma,true);
   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[])
  {
//---
   int count=rates_total-prev_calculated;
   if (count> 1 )count=( int ) SeriesInfoInteger (symbol, 0 , SERIES_BARS_COUNT );
   if (count== 0 )count= 1 ;
   while ( BarsCalculated (Lwma)<count){}
   while ( BarsCalculated (Sma)<count){}
   if ( CopyBuffer (Lwma, 0 , 0 ,count,L)!=- 1 )
     {
       if ( CopyBuffer (Sma, 0 , 0 ,count,S)!=- 1 )
        {
         for ( int i= 0 ;i< MathMin ( ArraySize (LRma), ArraySize (L));i++)
            LRma[i]=(L[i]-S[i])* 6 *iPoint*iiMA;
        }
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 

Bir baş ağrısı daha ekleyebilirim. Gösterge bir grafikte asılıysa ve  diğerinden gösteriler, o zaman şunları göz önünde bulundurmanız gerekir:

  1. Bar sayısı farklı olabilir. Beğenmek zaten dikkate alındı.
  2. Bir enstrümanın geçmişinde delikler olabileceğini ve bir enstrümanın geçmişinde 25 bar olabileceğini hesaba katarsak Pazartesi, diğerinde Cuma olabilir…
  3. ilk iki sorun çözülse bile, zaman senkronizasyonu devam ediyor, bir enstrüman için yeni bir çubuk zaten devam ediyor, diğeri için henüz başlamadı...
  4. gösterge çalışmaları  sadece yeni bir kene gelmesiyle, yani. eğer grafikte asılıysa nerede  birkaç onay işareti var, başka bir grafiğin 0 çubuğunu iletmek sorunlu…
  5. 0 bar saymayı bırakırsanız, onunla incir, sadece tamamlandı, o zaman orada birkaç tuzak daha görünecek ...
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Доступ к таймсериям и индикаторам / Bars - Документация по MQL5
 
Prival :

Bir baş ağrısı daha ekleyebilirim. Gösterge bir grafikte asılıysa ve   diğerinden gösteriler, o zaman şunları göz önünde bulundurmanız gerekir:

  1. Bar sayısı farklı olabilir. Beğenmek   zaten dikkate alındı.
  2. Bir enstrümanın geçmişinde delikler olabileceğini ve bir enstrümanın geçmişinde 25 bar olabileceğini hesaba katarsak Pazartesi, diğerinde Cuma olabilir…
  3. ilk iki sorun çözülse bile, zaman senkronizasyonu devam ediyor, bir enstrüman için yeni bir çubuk zaten devam ediyor, diğeri için henüz başlamadı...
  4. gösterge çalışmaları   sadece yeni bir kene gelmesiyle, yani. eğer grafikte asılıysa nerede   birkaç onay işareti var, başka bir grafiğin 0 çubuğunu iletmek sorunlu…
  5. 0 bar saymayı bırakırsanız, onunla incir, sadece tamamlandı, o zaman orada birkaç tuzak daha görünecek ...

güzel sözlerin için teşekkürler :o)
 

Böcek. Tanım. ATS her zaman piyasadadır (çift lot 0.2 ile tersine çevirme)

Tüm onayları test modu . Herşey yolunda.

test modu, açılış fiyatlarında. aynı parça.

Nedense 2 işleme ayrılmıştır. belki sadece öyle görünüyor, ama doğru değil. böyle olmamalı.

 
Alexandr2385 :

Merhaba! MT5 Terminalinin çalışmasıyla ilgili ciddi bir sorunum var. Gerçek şu ki, terminali başlattığımda, çalışması sırasında sadece fiyat çizgisi (teklif) hareket ediyor ve mumların (çubukların) kendileri çizilmiyor / değişmiyor. Bu nedenle, fiyat grafiğin kendisini değiştirmeden hareket eder. Sorum şu: Bu sorunu nasıl düzeltebilirim? Sonuçta, MT4'te her şey yolunda gidiyor !!!?! Aynı zamanda terminali yeniden kurmaya çalıştım ama bu da yardımcı olmadı! Ve birkaç broker ile böyle bir sorun ... bana bu durumda ne yapacağımı söyle?
Geliştiricilerden herhangi biri soruyu cevaplayabilir mi? Yoksa başka bir konuya mı yazayım?
Dosyalar:
1.png  31 kb
 
Alexandr2385 :
Geliştiricilerden herhangi biri soruyu cevaplayabilir mi? Yoksa başka bir konuya mı yazayım?
+1 Aynı resmi kendimde gözlemledim, ama şimdi her şey doğru çalışıyor gibi görünüyor, muhtemelen ortadan kaldırıldı
 
SHOOTER777 :

+1 Aynı resmi kendimde gözlemledim, ama şimdi her şey doğru çalışıyor gibi görünüyor, muhtemelen ortadan kaldırıldı

Evet, ne kadar garip, ama şimdi gitti, ne kadar süredir bilmiyorum ...

 
Prival :

Bir baş ağrısı daha ekleyebilirim. Gösterge bir grafikte asılıysa ve   diğerinden gösteriler, o zaman şunları göz önünde bulundurmanız gerekir:

  1. Bar sayısı farklı olabilir. Beğenmek   zaten dikkate alındı.
  2. Bir enstrümanın geçmişinde delikler olabileceğini ve bir enstrümanın geçmişinde 25 bar olabileceğini hesaba katarsak Pazartesi, diğerinde Cuma olabilir…
  3. ilk iki sorun çözülse bile, zaman senkronizasyonu devam ediyor, bir enstrüman için yeni bir çubuk zaten devam ediyor, diğeri için henüz başlamadı...
  4. gösterge çalışmaları   sadece yeni bir kene gelmesiyle, yani. eğer grafikte asılıysa nerede   birkaç onay işareti var, başka bir grafiğin 0 çubuğunu iletmek sorunlu…
  5. 0 bar saymayı bırakırsanız, onunla incir, sadece tamamlandı, o zaman orada birkaç tuzak daha görünecek ...

Delikler ve tarihle ilgili sorunlar pahasına, katılıyorum.

Normal çalışma ve periyotların senkronizasyonu sırasında, yeni çubuklar (mantıksal olarak gibi) aynı anda başlamalıdır...