MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 777

 

Hayır, her zaman bip sesi çıkarmaz, >= olduğunda "dizi menzil dışında" çöker. Niye ya?

 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[])
  {
//---
   if (rates_total< 2 ) return ( 0 );
     {
       int limit=rates_total-prev_calculated;
       if (limit> 1 ) 
        {
         ArrayInitialize (BufferUP, EMPTY_VALUE );
         ArrayInitialize (BufferDN, EMPTY_VALUE );
        }
       for ( int i=limit; i>= 0 ; i--) 
        {
         if ( TimeCurrent ()>=Input1 || TimeCurrent ()>=Input2 || TimeCurrent ()>=Input3)
           {
            BufferUP[i]=low[i]- 10 * Point ; // в этой строке array out of range in 'a1.mq4' (75,28)

             Alert ( "__" , TimeCurrent ());
           }
        }
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
 
volyal :
Teşekkürler. Sadece >= mümkün değil, sabit bir sinyal olacak, ilk tarihten sonra zaman aralığını ayarlamanız gerekiyor. Nasıl sorulur?

bu sorunun ikinci kısmı ve cevabın ikinci kısmı

sinyal (Alert) tetiklendikten sonra, sinyalin zaten verilmiş olduğunu düzeltmeniz gerekiyor, ek bir koşula ihtiyacınız var, kodunuzu şu şekilde yazabilirsiniz:

 {
//---
   static bool alerton= true ;
   A= 1 ;B= 2 ;
   if (rates_total< 2 ) return ( 0 );
     {
       int limit=rates_total-prev_calculated;
       if (limit> 1 )
        {
         ArrayInitialize (BufferUP, EMPTY_VALUE );
         ArrayInitialize (BufferDN, EMPTY_VALUE );
        }
       for ( int i=limit; i>= 0 ; i--)
        {
         if (alerton)
           {
             if (A>B)
              {
               if (( TimeCurrent ()>=Input1 || TimeCurrent ()>=Input2 || TimeCurrent ()>=Input3))
                 {
                  BufferUP[i]=low[i]- 10 * Point ;
                   Alert ( "__" , TimeCurrent ());
                   alerton = false ;
                 }
              }
           }
        }
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }

kodunuzda bir Uyarıyı tetiklemek için açık koşullarınız vardır, genellikle göstergelerde çubuk başına bir sinyal yapmanızı isterler, ardından çubuk süresini uyarı tetikleme süresini depolayacak bir değişkene "bağlamanız" gerekir, yani. olacaklardan bahsediyorum

statik tarihsaat uyarısı=0 ;

hazır örneklere bak şimdi anlayacaksın

 
Aleksey Vyazmikin :

Aynı anda birçok özdeş sinyal varsa, bunları gruplandırın ve tek olarak oynatın. Veya zamanlarını sinyal tipine göre dizilerde toplayın ve yavaşça çalıştırın :)

Bir dizide toplamak ve ayrı bir komut dosyasında oynamak - bu, genel olarak anlaşılabilir, ilk tavsiyenize karşılık gelir.

Ve gruplaşıp bir olarak kaybetmeyi tam olarak anlamadım. Tek bir ses dosyası gibi mi?

nasıl gruplanır

if(Sobitie_1)

{
PlaySound ("Symbol.wav");
PlaySound("Sobitie1.wav");
PlaySound("Dönem.wav");
} ?


PlaySound("Symbol Sobitie1 Period.wav"); gibi mi? Bu durumda Symbol * Sobitie * Period=3*10*7=210 dosya sayısı. Çok fazla...):

Ek olarak, oynatma sinyalleri farklı TF'lerden gelen göstergelerden gelir. Bunu nasıl dikkate alacağımı henüz bilmiyorum.

 
Algus :

Bir dizide toplamak ve ayrı bir komut dosyasında oynamak - bu, genel olarak anlaşılabilir, ilk tavsiyenize karşılık gelir.

Ve gruplaşıp bir olarak kaybetmeyi tam olarak anlamadım. Tek bir ses dosyası gibi mi?

nasıl gruplanır

if(Sobitie_1)

{
PlaySound("Symbol.wav");
PlaySound("Sobitie1.wav");
PlaySound("Dönem.wav");
} ?


PlaySound("Symbol Sobitie1 Period.wav"); gibi mi? Bu durumda Symbol * Sobitie * Period=3*10*7=210 dosya sayısı. Çok fazla...):

Ek olarak, oynatma sinyalleri farklı TF'lerden gelen göstergelerden gelir. Bunu nasıl dikkate alacağımı henüz bilmiyorum.

Sinyalin geldiği frekanstan bahsettim, yani. anladığım kadarıyla aynı değil aynı seslere sahipsin ses çalarken oynatma sırası tamponda birikir (grafikte biriktirebilirsin), oynattıktan sonra sırayı analiz edip bunları atıyoruz dosyanın çalındığı sırada gelen ve aynı sese sahip olan sesler. yeni bilgi içermez. Ne tür bir melofonun var detaylarını bilmiyorum :)

 

Tünaydın!

Lütfen bu karışıklıkta bana yardım edin:

Bir pozisyon açma koşulunu belirledim:

 if ( MathAbs (WPR1)< 20.0 )
        {
         if ( MathAbs (WPR14)> 44.0 && MathAbs (WPR14)< 60.0 && op0<cl1) 
{ps2= true ;ps1= false ;ps3= false ;ps4= false ;ps5= false ;ps6= false ;ps7= false ;ps8= false ; Alert ( "условие ps2" ); OpenSell();}
        }

Ve ps2 bayrağı ile bir konum yerine, ps2 ve ps3 bayrakları ile iki tane açılır. Ve ne yaparsan yap, hiçbir şey değişmez. Her türlü durumu uyarılarla kontrol ettim ve hiçbir şey yapmadım. Sorun ne???? Korkunç bir şey yok gibi görünüyor, bayraklar farklı TP seviyeleri belirledi. Ama yine de, ekstra pozisyon işe yaramaz.

Teşekkür ederim.

 
novichok2018 :

Tünaydın!

Lütfen bu karışıklıkta bana yardım edin:

Bir pozisyon açma koşulunu belirledim:

Ve ps2 bayrağı ile bir konum yerine, ps2 ve ps3 bayrakları ile iki tane açılır. Ve ne yaparsan yap, hiçbir şey değişmez. Her türlü durumu uyarılarla kontrol ettim ve hiçbir şey yapmadım. Sorun ne???? Korkunç bir şey yok gibi görünüyor, bayraklar farklı TP seviyeleri belirledi. Ama yine de, ekstra pozisyon işe yaramaz.

Teşekkür ederim.

Ayrıca günlük, önce ps3 sonra ps2 açtığını söylüyor.

 
novichok2018 :

Tünaydın!

Lütfen bu karışıklıkta bana yardım edin:

Bir pozisyon açma koşulunu belirledim:

Ve ps2 bayrağı ile bir konum yerine, ps2 ve ps3 bayrakları ile iki tane açılır. Ve ne yaparsan yap, hiçbir şey değişmez. Her türlü durumu uyarılarla kontrol ettim ve hiçbir şey yapmadım. Sorun ne???? Korkunç bir şey yok gibi görünüyor, bayraklar farklı TP seviyeleri belirledi. Ama yine de, ekstra pozisyon işe yaramaz.

Teşekkür ederim.

Vovochka okuldan döner. Baba sorar:

- Bugün hangi notu aldın?

- Doğa tarihinde ikili.

- Niye ya?

- Öğretmen bir kuşun kuyruğunu gösterir ve ne tür bir kuş olduğunu tahmin etmemi söyledi ...

Bu baba okula gidiyor, sınıfın kapısını açıyor ve orada kıçını gösteriyor.

- Kim bu...

Öğretmen tehditkar bir şekilde sorar...

- Ve sen kendin tahmin et.


Bu tam olarak kodunuzla ilgili ...))))

 
Alexey Viktorov :

Vovochka okuldan döner. Baba sorar:

- Peki, bugün hangi notu aldın?

- Doğa tarihinde ikili.

- Niye ya?

- Öğretmen bir kuşun kuyruğunu gösterir ve ne tür bir kuş olduğunu tahmin etmemi söyledi ...

Bu baba okula gidiyor, sınıfın kapısını açıyor ve orada kıçını gösteriyor.

- Kim bu...

Öğretmen tehditkar bir şekilde sorar...

- Ve sen kendin tahmin et.


Bu tam olarak kodunuzla ilgili ...))))

Beşinci sınıf öğrencisi Leshenka, birinci sınıflara yardım etmek için değil, tüylerini kabartmak için giriyor.

Bu tam olarak cevabınızla ilgili.

 
novichok2018 :

Ayrıca günlük, önce ps3 sonra ps2 açtığını söylüyor.

Hepsi anlaşıldı. Her şeyin basit olduğu ortaya çıktı: ps8 koşuluyla uyarıda 8 yerine 3 vardı. Ve 8. koşul 2. koşuldan daha geniş ve satırlarda daha yüksek. Elendi ve daraltıldı, her şey yolunda.

Ancak kuyruğu kabartmak hala buna değmez, çünkü dal yeni başlayanlar içindir. Gerçek bir uzman, ayrıntılar olmadan bile, hatanın yaklaşık olarak nerede olduğunu anlamalı veya en azından önde gelen sorular sormalıdır, aksi takdirde hiç cevap vermemeli ve sahte soğukluk göstermemelidir.

 
Aleksey Vyazmikin :

Sinyalin geldiği frekanstan bahsettim, yani. anladığım kadarıyla aynı değil aynı seslere sahipsin ses çalarken çalma sırası tamponda birikir (grafikte biriktirebilirsin), çaldıktan sonra sırayı analiz edip bunları atıyoruz dosyanın çalındığı sırada gelen ve aynı sese sahip olan sesler. yeni bilgi içermez. Ne tür bir melofonun var detaylarını bilmiyorum :)

Çalışan tüm TF'ler ve para birimleri üzerinde duran bir gösterge var. Bir düzine buçuk farklı sinyali düzeltebilir. Gün içinde 2-3 aletle neredeyse scalping yapıyorum. Etkinlikleri kaçırmamak ve gün sonunda gözlerim yerinden çıkmasın diye sesli bildirim kullanıyorum.

Aslında, 10-14 göstergeleri Windows etkinliğine atıfta bulunur. Sıranın çeşitli, bağımsız çalışan göstergelerden oluşturulması gerektiği ortaya çıktı. Terminalin görevi ve programlama kolay değildir.

"Müzik" böyle ortaya çıkıyor.):