[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 302

 
Reshetov'a^ Bunun gibi: int start() { Comment(" Açık pozisyonlar: ", OrdersTotal()); string smb=Sembol(); int tf=Dönem(); gsID=smb+IsDemo()+IsTesting()+IsOptimization()+"."+Magic; enf=""; INF(TTS(ZamanAkım()), doğru); ana(Büyü, smb, tf); yorum(inf); ve miktar nerede ve nasıl gösterilecek?
 
"Yorum" ve "düzenle" işlevim neden bozuk? Üst seçenek yok - üst kısım kesinlikle temiz - örneğin resim ekleyemezsiniz. Neyle bağlantılı?
 
yosuf :
Reshetov'a^ Bunun gibi: int start() { Comment("Açık pozisyonlar: ", OrdersTotal()); string smb=Sembol(); int tf=Dönem(); gsID=smb+IsDemo()+IsTesting()+IsOptimization()+"."+Magic; enf=""; INF(TTS(ZamanAkım()), doğru); ana(Büyü, smb, tf); yorum(inf); ve miktar nerede ve nasıl gösterilecek?
Böyle sihirli bir kombinasyon var: Ctrl + Alt + M ve muhatapların görüşlerini bozmaması için kullanışlı bir "Enter" düğmesi. Vizyon daha pahalı olduğu için kod temizliğinizle ilgili özel bir şeye cevap veremem.
 
Bir Uzman Danışmanda ArrayMaximum ile nasıl çalışacağımı söyle? İndikatörde yaptım ve çalışıyor, dizileri, arabellekleri işaretledim ama Expert Advisor'da net değil.
 
Alexandr24 :
Bir Uzman Danışmanda ArrayMaximum ile nasıl çalışacağımı söyle? İndikatörde yaptım ve çalışıyor, dizileri, arabellekleri işaretledim ama Expert Advisor'da net değil.


İlk önce diziyi hazırlamamız gerekiyor. Meta düzenleyici yardımında verilen komut dosyasını deneyin:

 //+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start(){
   double num_array[ 15 ]={ 4 , 1 , 6 , 3 , 9 , 4 , 1 , 6 , 3 , 9 , 4 , 1 , 6 , 3 , 9 };
   int     maxValueIdx= ArrayMaximum (num_array);
   Alert ( "Max value = " , num_array[maxValueIdx]);
  
   return ( 0 );
}
//+------------------------------------------------------------------+
 
drknn :


İlk önce diziyi hazırlamamız gerekiyor. Meta düzenleyici yardımında verilen komut dosyasını deneyin:

Göstergemde şöyle görünüyor:

sm[i]=...........;

double IndexMaxValue=ArrayMaximum(sm,n,shift);

Bunu senaryonuza nasıl bağlayacağımı anlamıyorum, bir danışmanda nasıl yapılır?

iCustom aracılığıyla sm[i] çıktısı alabilirim, ancak iCustom değişkenini ArrayMaximum'a nasıl koyabilirim, bu bir dizi değil mi?

 
Alexandr24 :

ancak iCustom değişkenini ArrayMaximum'a nasıl sokabilirim, bu bir dizi değil mi?

Bilerek belgelere bir bağlantı verdim. Fonksiyonun girişine sağlanması gereken parametrelerin açıklaması diye bir şey var. Burada parametrenin bir dizinin adı olması gerektiği yazıyorsa, oraya başka bir işlev (özellikle, iCustom()) koymak iyi bir şeye yol açmaz. Bu , ArrayMaximum() işlevini çağırmadan önce bir dizi bildirmemiz, ardından bu diziyi bir döngü içindeki değerlerle doldurmamız gerektiği anlamına gelir ve ancak bundan sonra ArrayMaximum() öğesini çağırabiliriz.
 
drknn :
Bilerek belgelere bir bağlantı verdim. Fonksiyonun girişine sağlanması gereken parametrelerin açıklaması diye bir şey var. Burada parametrenin bir dizinin adı olması gerektiği yazıyorsa, bunun yerine başka bir işlev (özellikle iCustom()) koymak iyi bir şeye yol açmaz. Bu, ArrayMaximum() işlevini çağırmadan önce bir dizi bildirmemiz, ardından bu diziyi bir döngü içindeki değerlerle doldurmamız gerektiği anlamına gelir ve ancak bundan sonra ArrayMaximum() öğesini çağırabiliriz.
Göstergenin kodunu danışmana koymaya çalıştım, ancak hiçbir şey çalışmıyor, burada IMHO mesele şu ki göstergede arabellekler belirlemeniz gerekiyor, ancak bunu danışmanlarda hiçbir yerde görmedim, bu yüzden gösterge çalışıyor, ancak aynı kod danışmanda mevcut değil. Gösterge sm[i] döngüsü ile dolu bir diziye sahiptir ve hindi bunu görür, ancak aynı koda sahip EA artık orada değildir. Belki Uzman Danışmanlarda dizileri göstergelerden farklı olarak farklı bir şekilde bildirmek gerekir?
 
Alexandr24 :
Göstergenin kodunu danışmana koymaya çalıştım, ancak hiçbir şey çalışmıyor, burada IMHO mesele şu ki göstergede arabellekler belirlemeniz gerekiyor, ancak bunu danışmanlarda hiçbir yerde görmedim, bu yüzden gösterge çalışıyor, ancak aynı kod danışmanda mevcut değil. Gösterge sm[i] döngüsü ile dolu bir diziye sahiptir ve hindi bunu görür, ancak aynı koda sahip EA artık orada değildir. Belki Uzman Danışmanlarda dizileri göstergelerden farklı olarak farklı bir şekilde bildirmek gerekir?

Çalışın - sorular kaybolacak: https://www.mql5.com/ru/articles/mt4
 
Aynısı bir gösterge yazmak için de geçerlidir. Bir gösterge var ve çalışıyor ama EA bu gösterge kodunu istemiyor, sm[i] dizisini görmüyor.