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

 
79014393347az :
merhaba! lütfen yardım edin RSI uyarısına nasıl gireceğim, push bildirimleri kendim denedim çalışmıyor, hata veriyor
Daha spesifik olarak ne yaptığınızı ve ne tür bir hata aldığınızı bilmek istiyorum.
kod.
 

PlaySound() işlevi true değerini döndürürse ses neden çalmıyor?


v1 = (Up[i] != EMPTY_VALUE ? Up[i] : Down[i]);
v2 = (Down[i+ 1 ] != EMPTY_VALUE ? Down[i+ 1 ] : Up[i+ 1 ]);
         
if ((v2 >= level || v2 <= level * (- 1 )) && a2 < Time[i])
  {
   a2 = Time[i];
   if (arrows == e1 && v2 >= level) {ArrowCreate( false ,Time[i+ 1 ],High[i+ 1 ]);} else if (arrows == e1) {ArrowCreate( true ,Time[i+ 1 ],Low[i+ 1 ]);};
   if (prev_calculated != 0 )
     {
       if (sounds == e1 && v2 >= level) {al = PlaySound ( "SELL NOW" ); Alert (al);} else if (sounds == e1) {al = PlaySound ( "BUY NOW" ); Alert (al);};
       if (alerts == e1 && v2 >= level) { Alert ( _Symbol +TF( Period ())+ " SELL NOW" );} else if (alerts == e1) { Alert ( _Symbol +TF( Period ())+ " BUY NOW" );};
       if (push == e1 && v2 >= level) { SendNotification ( _Symbol +TF( Period ())+ " SELL NOW" );} else if (push == e1) { SendNotification ( _Symbol +TF( Period ())+ " BUY NOW" );};
     };
  };
 
Alexandr Sokolov :

PlaySound() işlevi true değerini döndürürse ses neden çalmıyor?


  1. Ses dosyası adları doğru mu?
  2. PlaySound()'dan sonra hemen Alert()'e sahip olursunuz - her iki işlev de bir ses çalar. Uyarıyı Kaldır()
 
Artyom Trishkin :
  1. Ses dosyası adları doğru mu?
  2. PlaySound()'dan sonra hemen Alert()'e sahip olursunuz - her iki işlev de bir ses çalar. Uyarıyı Kaldır()

İsimler doğru. Nedeni uyarılar olduğu ortaya çıktı. ÇOK TEŞEKKÜRLER! Nedenini anlayamadım günlerce

 
Kullanıcı tanımlı fonksiyonların rengini varsayılan olarak siyahtan diğerine değiştirmek için derleyici program ayarlarında bir ayar yapmak mümkün müdür, kullanıcı tanımlı fonksiyonları vurgulamaktan bahsediyoruz?
 
Derleyicide varsayılan olarak bulunan ArrayMaximum() işlevi nasıl çalışır? Yani sorunun özü şudur: bu fonksiyon dizideki maksimum değeri bulur, bence değerler dizide kaotik bir sırayla yazılırsa, o zaman maksimum veya minimum bulmak için değer, önce bu değerleri sıralamanız gerekir ve ancak o zaman sıralanmış dizi listesinin sonunda veya başında olacak maksimum değeri seçebilirsiniz, bu fonksiyon maksimum değerleri nasıl bulur ise bunlar rastgele sırayla mı yazıldı?
 
Seric29 :
Derleyicide varsayılan olarakbulunan ArrayMaximum() işlevi nasıl çalışır? Yani sorunun özü şudur: bu fonksiyon dizideki maksimum değeri bulur, bence değerler dizide kaotik bir sırayla yazılırsa, o zaman maksimum veya minimum bulmak için değer, önce bu değerleri sıralamanız gerekir ve ancak o zaman sıralanmış dizi listesinin sonunda veya başında olacak maksimum değeri seçebilirsiniz, bu fonksiyon maksimum değerleri nasıl bulur ise bunlar rastgele sırayla mı yazıldı?

Hiçbir şeyi sıralamanıza gerek yok. ArrayMaximum() işlevi, sıralanmamış bir dizideki maksimum değeri bulur ve bulunan değerin dizinini döndürür.

 
Alexey Viktorov :

Hiçbir şeyi sıralamanıza gerek yok. ArrayMaximum() işlevi, sıralanmamış bir dizideki maksimum değeri bulur ve bulunan değerin dizinini döndürür.

Ancak, 5 değer varsa ve bunlar kaotik bir sırayla yazılırsa, bir veya başka bir değerle karşılaştırmak için yine de bir tür zincire yerleştirilmelidir , maksimum veya minimum bulmanın tek yolu hepsini karşılaştırmaktır, her durumda, değerleri depolamak için bir arabelleğe ihtiyacınız vardır.

 
Seric29 :

Ancak, 5 değer varsa ve bunlar kaotik bir sırayla yazılırsa, bir veya başka bir değerle karşılaştırmak için yine de bir tür zincire yerleştirilmelidir, maksimum veya minimum bulmanın tek yolu hepsini karşılaştırmaktır, her durumda, değerleri depolamak için bir arabelleğe ihtiyacınız vardır.

Ve neden içeride nasıl çalıştığını anlamaya çalışalım? Eh, eğer kendi fonksiyonunuzu yazmak istiyorsanız, sıralamak ve ekstrem indekslerden birinin değerini almak muhtemelen daha uygun olacaktır. Ancak yerleşik işlevden daha hızlı çalışması olası değildir. Ayrıca, yerleşik işlev, belirtilen dizin sınırları içinde bir değer aramanıza olanak tanır. Basit sıralamanın bir yolculuk vermeyeceği anlamına gelir. Bu yüzden dizinin bir kısmını bir ara diziye kopyalayıp sıralamak ve ondan istenilen değeri almak gerekecek ve diziyi kopyalamak çok "ucuz" bir işlev değil.

 
Tünaydın . Lütfen bana söyle. Koşul kodu nasıl olacak: Hesap bakiyesi arttı veya azaldıysa, işlevi yürütün