[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 368

 

Tünaydın.

Yeni bir çubuğun açılmasını belirlemek gerekir. Uzman Danışmanıma saf bir işlev ekledim - MQL ders kitabından bir örnek

void Fun_New_Bar() // Yeni çubuk algılama işlevi
{
statik tarihsaat New_Time=0; // Geçerli çubuğun zamanı
bool New_Bar=false; // Yeni çubuk yok
if(New_Time!=Time[0]) // Zamanı Karşılaştır
{
New_Time=Zaman[0]; // Şimdi zaman
New_Bar=true; // Yeni bir çubuk aldım
}
dönüş(Yeni_Bar);
}

Tek bir hata veriyor '(' - işlev tanımı beklenmeyen - Bunu beklenmeyen bir işlev tanımı olarak anlıyorum.

"New_Time" değişkeni, int işlevinden önce datetime New_Time olarak tanımlandı; - bu olmadan, derleme tanımsız bir değişken hatası verdi.

Ana programda fonksiyon şu şekilde çağrılır:

Fun_New_Bar(); // Fonksiyonlara erişim
if (New_Bar==false) // Bar yeni değilse..
dönüş;

Neden işe yaramadığını kim söyleyebilir?

Ve bir başka ilginç gözlem - bir şeyi düzeltirsiniz, kopyalarsınız - yorum yoktur, hemen yeniden kopyalamayı açarsınız - tekrar

'(' - işlev tanımı beklenmeyen - bu yüzden. O kadar kafa karıştırıcı bir şekilde yazıyorum ki derleyici ilk seferinde beni anlamıyor mu?

 
keekkenen >> :
bazen çarpık yerleri yazdırıyorsunuz ve 0,0000 = 0 görüyorsunuz ve çalışmıyor - false, her ihtimale karşı değerleri normalleştirin..

Sorunlu olanı çoğaltan yeni bir koşul eklendi ve sorun çözüldü.

Teşekkür ederim!


Not: Benim durumumda siparişlerle ilgili bir hatanın bir sorun bildirmesi iyi - diğerlerinde, Uzman Danışmanın mantığı tamamen ihlal edilebilir,

herhangi bir mesaj olmadan ve bunu öğrenmek imkansız olacak :(((

 

işlev void olarak bildirilir, yani. hiçbir şey döndürmez, ancak kodda return(New_Bar); hata bu yüzden..

bunu değişkenin dönüş tipine göre bildirmeniz gerekir - bool Fun_New_Bar()

peki, buna göre kullanın if ( !Fun_New_Bar() ) return(0);

 
keekkenen писал(а) >>

işlev void olarak bildirilir, yani. hiçbir şey döndürmez, ancak kodda return(New_Bar); hata bu yüzden..

bunu değişkenin dönüş tipine göre bildirmeniz gerekir - bool Fun_New_Bar()

peki, buna göre kullanın if ( !Fun_New_Bar() ) return(0);

İlk varyantta, "bool Fun_New_Bar ()" tam olarak buydu, ancak hata aynıydı, bu yüzden işlevi ders kitabında olduğu gibi çağırdım - void hiçbir şeyi değiştirmedi. Şimdi isteğinize göre yaptım - aynı, değişiklik yok - aynı hata

Doğru, değişiklik ortaya çıktı - hata 279 satırında listelenmeye başladı (bu bir yorum satırıdır) ve işlev 280'de başlar

İlgili bir soru, int() işlevinin bir kerelik analiz bloğu ile yüklenmesinin ne kadar kabul edilebilir olduğudur - örneğin, göstergedeki son iki tersin değerlerinin belirlenmesi.

Ben böyle yaptım. Belki bu nedenle danışman takozlar?

 

işlev tanımı beklenmedik - Fun_New_Bar işlevinden ÖNCE kodda büyük olasılıkla eksik veya fazladan bir parantez,

koda dikkatlice bakın, neyin yanlış olduğunu mutlaka bulacaksınız ..

 
keekkenen писал(а) >>

işlev tanımı beklenmedik - Fun_New_Bar işlevinden ÖNCE kodda büyük olasılıkla eksik veya fazladan bir parantez,

koda dikkatlice bakın, neyin yanlış olduğunu mutlaka bulacaksınız ..

Şimdi bakacağım. Geçerken, bu işlevi orada, çağırdığım yerden sıkıştırmaya çalışacağım. Zaten böyle bir hataya sahip iki fonksiyon, çağrı sitesine taşındıktan sonra hatasız olarak derlendi. Ayrıca, "hatalı" işlevi çağrının yerine aktarırsanız, aynı hata mutlaka bir sonraki işleve değil, başka bir işleve geçer.

 
alsu >> :

1. Henüz yapmadıysanız QIPInfium'u kurun

2. Terminal için ayrı bir ICQ hesabı kaydedin

3. MsgBox eklentisini kurun ve yapılandırın - ayrıntılı talimatlar

4. Sinyal üretmesi gereken Expert Advisor'dan (gösterge, script) gerekli mesajları içeren dosyaları, yukarıdaki linkteki talimatlarda anlatıldığı gibi OutBox klasörüne yazın. Terminal dizini dışındaki bir dosyaya yazmak için örneğin ZI_File_Functions_Full_Lib kitaplığını kullanabilirsiniz.


Yani, Google'a ve yaratıcı yeteneklere sahip olarak, minimum programlama ile dört aşamada her şeyi yapabilirsiniz :))))

Teşekkürler, işe yarıyor :)

 

Danışmanı demo modunda çalıştırdığınızda, manuel ticarette olduğu gibi sipariş onay penceresi sürekli olarak açılır. Seçeneklerde bu işlev iptal edilir, ancak yine de bir yere takılır.

Açılır pencere onayını iptal etmenin bir yolu var mı?

 
Andrei01 >> :

Danışmanı demo modunda çalıştırdığınızda, manuel ticarette olduğu gibi sipariş onay penceresi sürekli açılır. Seçeneklerde bu işlev iptal edildi, ancak yine de bir yere takıldı.

Açılır pencere onayını iptal etmenin bir yolu var mı?


settings_MT hizmet-ayarları-danışmanları


uzman_ayarları

 

teşekkür etmek. işte bu tam olarak işe yaramıyor çünkü profilde bir yerde yazıyor ve iptal edilemiyor. Profilin yeniden oluşturulmasıyla sorun çözüldü.