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

 
Sayberix :

Okuyorum. Sadece henüz oraya ulaşmadı. 28 MB PDF formatındaki yardıma hakim olmanın o kadar kolay olmadığını düşünüyorum. Veya başka bir deyişle - tüm cemaatçiler, kesin olarak inanmalarına rağmen, İncil'in tamamını bilmiyorlar.

Başka bir sorum var, lütfen söyleyin - zor değilse:

strateji görselleştiricisindeki kodu yürütürken:

1. program sonsuz bir döngüye girer;

2. çalıştırma sonuçları farklıdır:

kesme noktaları olmadan:

Print üzerinde bir kesme noktası ile:


Geçmiş verilerde hata ayıklama konusunda her şeyi yaptım.

Sürekli bir değişkeni artırıyorsunuz. Ne düşünüyorsunuz: değişkenin boyutu ne zaman sınırlarının ötesine geçecek?

 
Vladimir Karputov :

Sürekli bir değişkeni artırıyorsunuz. Ne düşünüyorsunuz: değişkenin boyutu ne zaman sınırlarının ötesine geçecek?

Olong'un 10 yineleme için yeterli olması gerektiğini düşünüyorum. O zaman soru:

1. Döngü neden kopmuyor? ve

2. Neden yineleme zaman sayacının sonuçları görüntülenmiyor?


Hata ayıklamanın geçmiş veriler üzerinde gerçekleşmesi nedeniyle mi?

 
Sayberix :

Olong'un 10 yineleme için yeterli olması gerektiğini düşünüyorum. O zaman soru:

1. Döngü neden kopmuyor? ve

2. Neden yineleme zaman sayacının sonuçları görüntülenmiyor?


Geçmiş verilerde hata ayıklama nedeniyle mi?

Global program düzeyinde bildirdiğiniz değişkeni - sürekli olarak artırırsınız.

 
Ah, anladım... Yineleme bir milisaniyeden az sürüyor...
 
Vladimir Karputov :

Global program düzeyinde bildirdiğiniz değişkeni - sürekli olarak artırırsınız.

Yine de anlamıyorum ve burada global değişken . Programın kendisi şu döngüyle sınırlıdır: "for(int i=1; i<=10; i++)" ?

Yoksa bir şeyi mi kaçırıyorum, lütfen açıklayın.

 
Sayberix :

Yine de anlamıyorum ve burada global değişken . Programın kendisi şu döngüyle sınırlıdır: "for(int i=1; i<=10; i++)" ?

Yoksa bir şeyi mi kaçırıyorum, lütfen açıklayın.

Değişkenleri kaldır

 ulong count, raschet = 1 ;

küresel kapsamdan.


Her tikte raschet değişkenini çarparsınız. Ve bir sonraki tikte, çoğalmak için TEKRAR DEVAM EDİN. Birkaç tıklama ve raschet değişkeni sınırların dışına çıkıyor. Sonunda değişkenin değerlerini yazdırıyorsunuz ama nedense bu çıktıya bakmıyorsunuz.

 
Vladimir Karputov :

Değişkenleri kaldır

küresel kapsamdan.


Her tikte raschet değişkenini çarparsınız. Ve bir sonraki tikte, çarpmak için TEKRAR DEVAM EDİN. Birkaç tıklama ve raschet değişkeni sınırların dışına çıkıyor. Sonunda değişkenin değerlerini yazdırıyorsunuz ama nedense bu çıktıya bakmıyorsunuz.

Teşekkürler, anladım. Sadece kafam karıştı, dönüşün programı tamamen durdurduğunu düşünüyorum, o anki tikte yürütmesini kestiğinde. "Dönüş" yerine; " ExpertRemove() ;" koyun.

 

Lütfen bana bu kod hakkında bilgi verin:

 //+------------------------------------------------------------------+
//|                                                          env.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property indicator_buffers 2

int envHandle;
double upperEnv[], lowerEnv[];

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit ()
  {
   envHandle = iCustom ( _Symbol , _Period , "Examples\\Envelopes" , 3 , 0 , MODE_LWMA , PRICE_OPEN , 0.03 );
   if (envHandle< 0 )
     {
       Alert ( "Ошибка при создании индикаторов - номер ошибки: " , GetLastError (), "!!" );
       return ( INIT_FAILED );
     }
   SetIndexBuffer ( 0 ,upperEnv, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,lowerEnv, INDICATOR_DATA );

   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   IndicatorRelease (envHandle);
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick ()
  {

   ArraySetAsSeries (upperEnv, true );
   ArraySetAsSeries (lowerEnv, true );

   if (( CopyBuffer (envHandle, 0 , 0 , 3 ,upperEnv)< 0 ) || CopyBuffer (envHandle, 1 , 0 , 3 ,lowerEnv)< 0 )
       Alert ( "Ошибка копирования буферов индикатора Envelopes - номер ошибки:" , GetLastError (), "!!" );

   double    upEnv = upperEnv[ 0 ];
   double    lowEnv = lowerEnv[ 0 ];
  }
//+------------------------------------------------------------------+

upEnv ve lowEnv değişkenlerinde Zarf satırlarının sürekli güncellenen fiyat değerlerini nasıl alabilirim? İndikatörü çiziyor ama değişkenlerdeki indikatör değerleri 2 defa güncellenecek o kadar.

 
Sayberix :

Lütfen bana bu kodda söyleyin:

upEnv ve lowEnv değişkenlerinde Zarf satırlarının sürekli güncellenen fiyat değerlerini nasıl alabilirim? İndikatörü çiziyor ama değişkenlerdeki indikatör değerleri 2 defa güncellenecek o kadar.

Önce karar verin: Bir Uzman Danışman mı yoksa bir gösterge mi yazmak istiyorsunuz? (Artık kodunuzda yulaf lapası var - hem gösterge hem de danışman birlikte karıştırılır) - yani kod çalışmaz.

İpucu: Bir boşluk oluşturmak için MQL Sihirbazını kullanın.

 
Vladimir Karputov :

Önce karar verin: Bir Uzman Danışman mı yoksa bir gösterge mi yazmak istiyorsunuz? (Artık kodunuzda yulaf lapası var - hem gösterge hem de danışman birlikte karıştırılır) - yani kod çalışmaz.

İpucu: Bir boşluk oluşturmak için MQL Sihirbazını kullanın.

Zaten denedim. Ama master'da orada sınıflarla birlikte üretir. En azından basit bir şekilde anlardım - en azından fazla anlamadığım kodda. EA'daki gösterge değerlerini almak için kodu nasıl düzelteceğimi söyler misiniz?