Hatalar, hatalar, sorular - sayfa 676

 

pahalı_ ,

Başarısız bir başlatmadan sonra yeniden başlatmayı ve sonsuz bir döngüye girmeyi deneyin?

Oninite'de programın global seviyesi ile ilgili değişkenleri başlatıyorum (değişkenlere değer atadım). Sıfır olmayan bir dönüş kodu kullanma yeteneği, hatanın nedenini yazdırmanıza ve programı düzgün bir şekilde durdurmanıza (yani OnDeinit aracılığıyla durdurma) olanak tanır. Oldukça memnun.

 

init başarıyla tamamlanana kadar sonsuz değil. yardımda kene başına (çünkü gösterge) uyarısı.

Kürenin başlatılmasından sonra kontrol edersiniz. başlatmayla eşleşecek değişkenler?

Başarısızlık durumunda başlatmayı denemek için birkaç kez daha denemek ister misiniz?

 

Cevap verenlere teşekkürler. Bu kod, çoklu para birimi Uzman Danışmanı kesilerek elde edildi - test cihazının onu yemek istemediği tespit edildi.

Yeni ayrıntılar: düşüş yalnızca 7-8 Mart 2011'de, yalnızca Alfa Forex'te gerçekleşir

 

pahalı_

 Не вечный, до удачного завершения иниц. потиково (т.к. индикатор) предупредив в справке.

Görünüşe göre, niyetinizi anlamıyorum, yani: "Oninit() tik-tik başlatma" nın ne olduğunu ve "Oninit() tik-tik başarılı başlatma"nın ne olduğunu anlamıyorum.

Kürenin başlatılmasından sonra kontrol edersiniz. başlatmayla eşleşecek değişkenler?

Benim için yeni bir kavram daha: "başlatmadan sonra programın global değişkenlerini başlatmaya uygunluk açısından kontrol etmek."

Ama soruyu cevaplayabilirim. Global program değişkenlerine (örneğin, tutamaçlar) değer atamada başarı kontrolü, Oninit() işlevinin kendisinde gerçekleşir. Arıza durumunda gerekirse son çevrimi aynı yerde (Oninit'te) çalıştırırım. Oninit () içindeki değişkene değerlerin atanması ile son başarısızlık olursa yazdırmak için bir mesaj gönderirim. Sonra ya kodda hatamı bulurum ya da sorunu forumda bildiririm.

Oninit() işlevi tamamlandıktan sonra "başlatmayla uyumluluk için" türünü kontrol etmiyorum, çünkü Oninit() işlevinin başarıyla tamamlanması anlamsızdır.

Senin örneğine gelince. Yerel değişken bool err burada bildirildi. Oninit() işlevinin yerel değişkenini bir şekilde her tik bazında başlatmayı mı planlıyorsunuz?

Başarısızlık durumunda başlatmayı denemek için birkaç kez daha denemek ister misiniz?

Bunu, işi tamamlanana kadar Oninit () işlevi içinde her zaman yapıyorum.

Ekleyeceğim. Konu çerçevesinde "başlatma" ile, Oninit işlevi çerçevesinde global değişkenlere değer atamayı kastediyorum (yani argo kullanıyorum). Ekledim çünkü Init olayını göndermeden önce, istemci terminali global değişkenleri başlatma sürecini başlatır.

 

ilunga

Gerçekten de, kod ve test koşulları daha iyidir - hizmet masasında.

 

fonk. birkaç MqlRates EURUSD[],AUDUSD[],GBPUSD[],NZDUSD[],USDCAD[],USDCHF[],USDJPY[];

ilk deneme hiçbir şekilde çalışmayacak, teorik olarak bir kez senkronize ettim ve xxxxxx[0].time == yyyyyy [0] .time == ..... zzzzzz[0] ile örnek yapılar var. zaman > xxxxxx[0 ].zaman.

Daha sonra kendi init () işlevimi yarattım, ancak bu OnInit () ile ilgili!

OnInit () başarılı olmazsa, başlatma gerçekleşmez (marş motorundan başlamazsa >> krank milini tutamaçlarla çevirin), o zaman kullanıcı şunları yapmalıdır:

  • gösterge listesi >> ind'yi yeniden başlat.
  • sil >> ind.
  • desteği arayın >>
  • diğer

İşaretle >> " OnInit () işlevi başarısız olursa, başlatmayı kaldırma neden kodu REASON_INITFAILED " + ile Deinit olayı oluşturulur, ardından başarılı başlatmaya kadar bir sonraki işarette yeniden başlatma. +

(niye bir kesinti yapın - gösterge yine de kirpi gösterecekse başlatmayı iptal edin).

Bu soru daha çok geliştiriciler için...

 
abolk :
Peki ya forumdaki "Cevapla" butonu ile çalışamama sorunu ne olacak? Düzeltecekler mi? Destekten biraz sessizlik. En azından "yap/yapma" türü onları rahatlattı.
Düzeltildi, fark eden herkese teşekkürler.
 

costy_ :

Ne hakkında olduğu çok açık. Senkronizasyon sorununu kendim atlıyorum, bu yüzden hiçbir şey tavsiye edemem. Ancak sorunun kendisi forumda defalarca tartışıldı. Anahtar kelime aramasıyla arayın.

 
Yedelkin :

Ne hakkında olduğu çok açık. Senkronizasyon sorununu kendim atlıyorum, bu yüzden hiçbir şey tavsiye edemem. Ancak sorunun kendisi forumda defalarca tartışıldı. Anahtar kelime aramasıyla arayın.

Teşekkürler, taramaya devam ediyorum.

 

Merhaba, söyle lütfen

Ticaret modülü için bir ADX göstergesi eklemeye çalışıyorum. ADX'ten onay alarak iki hareketli ortalama sinyali yapmaya çalışıyorum. Bu kodu başka bir modülden kopyaladım, orijinal sürümde her şey doğal olarak çalışıyor, bu siteden indirdim ve kodun kendisi hata oluşturmamalı.

 //+------------------------------------------------------------------+
//| Create ADX indicator.                                            |
//| INPUT:  indicators -pointer of indicator collection.             |
//| OUTPUT: true-if successful, false otherwise.                     |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CSignalMY_MA_ADX::InitADX(CIndicators* indicators)
  {
//--- create ADX indicator
   if (m_ADX== NULL )
       if ((m_ADX= new CiADX)== NULL )
        {
         printf ( __FUNCTION__ + ": error creating object of the ADX" );
         return ( false );
        }
//--- add ADX indicator to collection
   if (!indicators.Add(m_ADX))
     {
       printf ( __FUNCTION__ + ": error adding object of the ADX" );
       delete m_ADX;
       return ( false );
     }
//--- initialize ADX indicator
   if (!m_ADX.Create(m_symbol.Name(),m_period,m_period_ADX))
     {
       printf ( __FUNCTION__ + ": error initializing object of the ADX" );
       return ( false );
     }
//--- ok
   return ( true );
  }

Ama görünüşe göre yanlış bir şey yaptım ve bana şu hataları veriyor:

'==' - yasadışı işlem kullanımı SignalADX-MA.mqh 183 12

'CiADX' - tür uyuşmazlığı SignalADX-MA.mqh 184 21

'=' - yasadışı işlem kullanımı SignalADX-MA.mqh 184 on altı

'm_ADX' - parametre dönüştürmeye izin verilmez SignalADX-MA.mqh 190 23

'm_ADX' - nesne işaretçisi bekleniyor SignalADX-MA.mqh 193 on dört

Lütfen bana yardım edin, çok minnettar olacağım. Gerekirse, dosyayı buraya ekleyebilirim, bir karışıklık olduğuna dikkat etmeyin, sadece öğreniyorum ve tüm süreç, danışman için birkaç farklı ticaret modülünü parçalayıp kör ettiğim gerçeğinden oluşuyordu.