Hatalar, hatalar, sorular - sayfa 1360

 
A100 :
İşte önerdiklerim:
...
Değişiklikler yalnızca == ve != işlemlerini etkiler.
İşlem dahil diğer her şey = şimdilik olduğu gibi bırakın (değişiklik yok)

= operatörü, şimdi işaretçiler ve nesnelerin kendileri arasında karışıklığa neden oluyorsa, nasıl değişmeden bırakılabilir? Bunun için * kullanırsanız, diğer tüm operatörler için kullanılmalıdır. Tek bir standart olmalıdır. Ve derleyicinin doğru seçeneği kendisinin seçtiğini önermeniz yanlıştır. Çok ince hatalar olacak. Her şey açık olmalıdır: bir nesneyle veya bir işaretçiyle yapılan eylemler.

Ancak, tüm bu yıldızlar elbette zorunlu koltuk değneğidir. Başlangıçta geliştiriciler tarafından pek de iyi olmayan bir şekilde seçilen konseptin tamamının değiştirilmesi gerektiğini düşünüyorum.

C ++ 'a bağlanmaktan uzaklaşmak ve buna bağlı olarak işaretçileri bağımsız bir değişken türü olarak bırakmak ve bunları referanslarla değiştirmek gerekiyordu. Referanslar temelde aynı işaretçilerdir, yalnızca derleyici tarafından nesnelerin kendileri olarak yorumlanırlar. Bu nedenle, operatörler dahil olmak üzere bu tür değişkenlere sahip tüm eylemler, bir nesneye sahip eylemler olarak değerlendirilir. Tam olarak referansları karşılaştırmanız veya atamanız gerekiyorsa, referans alma operatörünü kullanın. Bu nedenle, herhangi bir çelişki olmayacaktır. Bunun gibi:

 A  a;                     // воздаём объект
 A& aref;                   // создаём неинициализированную ссылку

 &aref = &a;                 // присваиваем ссылку на a
 bool equalref = &aref==&a; // сравниваем ссылки

 aref = a;                   //вызываем оператор=()
 bool equal = aref==a;       // вызываем оператор==()

Genel olarak, bir gün geliştiriciler MQL6'yı düşünürse, bu yöne gitmemiz gerekir. C++'a bağlanma zaten anlamsızdır, çünkü dil kavramına karşılık gelmez.

 
A100 :
En son yaptığınız güncelleme neydi?

Hem MetaTrader hem de MetaEditor 1159 oluşturur (Windows 10 32 bit). Büyük bir bilgisayarda (64 bit) MetaEditor'dan emin değilim, ancak MetaTrader kesinlikle 1159'u oluşturuyor.
 
A100 :
En son yaptığınız güncelleme neydi?

1150'm var. 1159'dan sonraki güncellemeleri göremiyorum
 
Gennadiy Stanilevych :
1150'm var. 1159'dan sonraki güncellemeleri göremiyorum
En son güncellemeleri almak için MetaQuotes-Demo sunucusuna bağlanmanız gerekir.
 
A100 :
İlgi çekici olan MetaQuotes-Demo'dur, çünkü önceki güncellemeler ayda 2-3 defaydı. Aracılardan gelen güncellemelerin çok daha az sıklıkta olduğu açıktır.
Vladimir Karputov :
En son güncellemeleri almak için MetaQuotes-Demo sunucusuna bağlanmanız gerekir.

Katılıyorum, MetaQuotes-Demo ile güncellendi, hala 1150! Ayrıca, terminal birkaç kez güncellemelerin indirildiğini ve yeniden başlatmanın teklif edildiğini bildirdi, hala 1150.

Tamam, dağıtım paketini http://www.metatrader5.com/ru/download adresinden indirdim, MetaQuotes-Demo'da bir demo hesabı açtım, terminali birkaç kez kapatıp açtım - 1150! UAC devre dışı, Windows 7 SP1 - 64

Скачать MetaTrader 5
Скачать MetaTrader 5
  • www.metatrader5.com
Скачать торговый терминал MetaTrader 5 для комфортной и успешной работы на финансовых рынках. Терминал обладает внушительными торговыми и аналитическими возможностями и является одним из лучших в мире
 

Soruyu tekrar edeceğim, çünkü kimse cevap vermedi ve FKÖ'nün hararetli tartışmasıyla bağlantılı olarak aşağı indi. Soru gerçekten önemli, bu bir hata mı yoksa bir özellik mi? MT4'te görüldü.

Program yürütülürken extern değişkeni değiştiğinde bir durumla karşılaştım ancak zaman dilimi değiştiğinde yine özellikler penceresinde ayarlanan değeri alıyor. Örneğin, başlatmadan önce TradeEnable değerini EnableAll olarak ayarlarsam ve program yürütüldüğünde değeri EnableBuy olarak değiştirirsem, grafiği başka bir zaman dilimine tıkladığımda değer EnableAll'a dönecektir. Timer olayındaki değeri tanımlıyorum ve Comment üzerinden gösteriyorum, hata olamaz.

 enum ETradeEnable {EnableAll, EnableBuy, EnableSell, DisableAll};
extern ETradeEnable TradeEnable = EnableAll;

Grafikler arasında geçiş yapmak, TradeEnable değişkenini hiçbir şekilde etkilemez. Yardımın okunması - Giriş değişkenlerinin aksine, harici değişkenlerin değerleri program çalışması sırasında programlı olarak değiştirilebilir.

OnDeinit ve OnInit'e bu şekilde sahibim.

S: Bir şey anlamıyorum veya TradeEnable'ı değiştirmek bir çalışma zamanı hatası mı?

 int LastDeinitReason = 0 ;

void OnDeinit ( const int reason)
{
    LastDeinitReason = reason;
     if (reason== REASON_CHARTCHANGE || reason== REASON_TEMPLATE || reason== REASON_PARAMETERS )
         return ;
     EventKillTimer ();
// далее код при завершении работы советника
}

int OnInit ()
{
     if (LastDeinitReason== REASON_CHARTCHANGE || LastDeinitReason== REASON_TEMPLATE )
    {
        LastDeinitReason = 0 ;
         return ( INIT_SUCCEEDED );
    }
     if (LastDeinitReason== REASON_PARAMETERS )
    {
        SetParams();
         return ( INIT_SUCCEEDED );                              
    }
// далее код инициализации при запуске
}
 
Karputov Vladimir :
En son güncellemeleri almak için MetaQuotes-Demo sunucusuna bağlanmanız gerekir.
yardımcı olmuyor. MT5'i bile yıktım. Demoyu metaquotes üzerinde açtım. Hala 1150.
 
Gennadiy Stanilevych :
yardımcı olmuyor. MT5'i bile yıktım. Demoyu metaquotes üzerinde açtım. Hala 1150.
MetaQuites-Demo sunucusunda sadece bir demo hesabı açmak yeterli değildir: güncellemek için bu demo hesabına da bağlanmanız gerekir.
 
Karputov Vladimir :
MetaQuites-Demo sunucusunda sadece bir demo hesabı açmak yeterli değildir: güncellemek için bu demo hesabına da bağlanmanız gerekir.

Eh, tabii ki katıldım. Ardından terminali yeniden başlattı. Hala güncellemeleri görmüyor.

Dosyalar:
20150826.log  7 kb
 
Gennadiy Stanilevych :

Eh, tabii ki katıldım. Ardından terminali yeniden başlattı. Hala güncellemeleri görmüyor.

Garip (günlük dosyasına bakın). Deneyimden - güncellemeler varsa, bağlandıktan sonra, kelimenin tam anlamıyla üç saniye içinde indirme başlar.

Neden: