Hatalar, hatalar, sorular - sayfa 1297

 
_Konstantin_ :

Yeniden tanımlamaya çalışıyorum, ancak sabit nesne için const olmayan bir hata çağrısı alıyorum. sabit bir yöntemde const olmayan yöntemleri kullanamazsınız. Bana çıkış yolunu söyle, aksi takdirde sanal sabit yöntemini nasıl doğru bir şekilde geçersiz kılacağımı kendim düşünemiyorum.

Çıkış yolu, const olmayan yöntemleri bir const yönteminde kullanmamaktır. Ve üzerinden atlamanın bir yolu yok.
 
A100 :
Çıkış yolu, const olmayan yöntemleri bir const yönteminde kullanmamaktır. Ve üzerinden atlamanın bir yolu yok.

İşin gerçeği, MQ, oluşturulan sıralama mekanizmasında kullanılması amaçlanan Sanal Karşılaştır yöntemini birkaç yıldır değiştirmek istemedi ve yeniden tanımlamadan, bu mekanizma basitçe çalışmıyor. Sonuç olarak, tasarlanan MQ mekanizmasını kullanmadan kendi sıralama mekanizmalarınızı oluşturmanız gerekir.

MQL4 OOP'ye girişin en başından itibaren kendi sıralama mekanizmamı yarattım ve safça bu anın MQL5'te zaten düzeltildiğini düşündüm, ama ortaya çıktı ki yanılmışım :)

 
_Konstantin_ :

İşin gerçeği, MQ, oluşturulan sıralama mekanizmasında kullanılması amaçlanan Sanal Karşılaştır yöntemini birkaç yıldır değiştirmek istemedi ve yeniden tanımlamadan, bu mekanizma basitçe çalışmıyor. Sonuç olarak, tasarlanan MQ mekanizmasını kullanmadan kendi sıralama mekanizmalarınızı oluşturmanız gerekir.

MQL4 OOP'ye girişin en başından itibaren kendi sıralama mekanizmamı yarattım ve safça bu anın MQL5'te düzeltildiğini düşündüm, ancak ortaya çıktığı gibi yanılmışım :)

Din const değiştiricinin kullanılmasına izin vermiyor mu?

 class IntObject : public CObject
{
public :
   int Value;
   virtual int Compare( const CObject *node, const int mode= 0 ) const
   {
       const IntObject* intObj = node;
       if (intObj.Value < Value) return MORE;
       else if (intObj.Value > Value) return LESS;
       return EQUAL;
   }
   IntObject();
   IntObject( int value ){Value= value ;}
};
 
C-4 :

Din, const değiştiricinin kullanılmasına izin vermiyor mu?

Farklı bir hata türü var (sabit nesne için const olmayan yöntemi çağırın)

 #define NO_CONST
class IntObject : public CObject {
public :
   virtual int f( const CObject *node ) NO_CONST { return 0 ; }
   virtual int Compare( const CObject *node, const int mode= 0 ) const { return f( node ); }
};
Temel düşüncelerle üstesinden gelinemez.
 
A100 :

Farklı bir hata türü var (sabit nesne için const olmayan yöntemi çağırın)

Temel düşüncelerle üstesinden gelinemez.
Nasıl olmaz!? Sabit nesnede çağrılan yöntemi sabit yapmak yeterlidir.
 
C-4 :
Nasıl olmaz!? Sabit nesnede çağrılan yöntemi sabit yapmak yeterlidir.
f() ancak izin veriyorsa const yapılabilir
 class IntObject : public CObject { public :
         int i;
   virtual int f( const CObject *node ) const { return i = 0 ; } //ошибка
};
 

Bir soru vardı, biri bana bir şey söyleyebilir mi!?

Çevrimdışı sentetik bir grafik 1/EURUSD,GBPUSD oluşturdum ve ayrıca EURUSD-1 GBPUSD+1 hisse senedi ayarladım

neredeyse hiç fark olmadan aynı grafik ve gösterge çizgileri elde edilir https://charts.mql5.com/7/422/synthetic-m15-alpari-limited-6.png

Ve ikinci bir çevrimdışı sentetik EURUSD,1/GBPUSD grafiği oluşturuyorum ve ayrıca EURUSD+1 GBPUSD-1 hisse senedi ayarlıyorum

çizelge ve gösterge çizgileri aynı DEĞİLDİR https://charts.mql5.com/7/422/synthetic-m15-alpari-limited-5.png

En muhtemel olanın euro-dolar'ın şu anda pariteye yakın olduğu varsayımı var, bu nedenle 1/1.08 ile dönmesi minimum bozulma veriyor ve sterlin-dolar pariteden daha fazla, dolayısıyla 1/1.48 daha fazla bozulma veriyor.

Söyle bana, aleti tersine çevirmek nasıl daha doğru olur?

 

Önceden her şey yolundaydı, ancak şimdi öz sermaye göstergesindeki (ekli) Symbol_Side_A parametresinde 28 araçlık bir dizi ayarlayamıyorum:

EURGBP-0.1 EURUSD-0.1 GBPUSD-0.1 EURCHF-0.1 EURCAD-0.1 EURAUD-0.1 EURNZD-0.1 EURJPY-0.1 AUDUSD-0.1 NZDUSD-0.1 USDCAD-0.1 USDCHF-0.1 USDJPY-0.1 GBPAUD-0.1 GBPCAD-0.1 GBPJPY-0.1 GBPCHF- 0.1 NZDJPY-0.1 AUDJPY-0.1 CADJPY-0.1 CHFJPY-0.1 AUDCAD-0.1 NZDCAD-0.1 AUDCHF-0.1 AUDNZD-0.1 CADCHF-0.1 NZDCHF-0.1 GBPNZD-0.1

Bazı nedenlerden dolayı verilerin bir kısmı kesilir ve aynı zamanda veriler bu satırda görüntülenmez. Yalnızca Symbol_Side_A satırını etkinleştirdiğimde gösterilir. Sorun ne olabilir? Lütfen bana söyle.

Terminal MT4-765. ALPARI ve RVD'nin bir sorunu var ama GKFX'te her şey yolunda! Garip!

Dosyalar:
 

Yüklenen dosyaların isimlerinin değişmemesi için forumda bunu yapmak gerçekten çok mu zor? Normal forumlarda olduğu gibi!

Yukarıda EquityHedgeGraph2(v670) göstergesi yüklendi. Peki isim neden bozuldu?

 
#define parametre listesi içinde yorum yapılamaz
 #define MACRO( X /*комментарий*/ )       (X) //ошибка компиляции
ancak bazen gereklidir, özellikle birkaç parametre varsa