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

 
TheXpert >> :

Hatırladı! Dizelerin uygulanmasının özellikleri. Diziyi yeniden boyutlandırdıktan sonra, üzerinden geçmeniz ve sıfıra sıfırlamanız gerekir:

Yanılıyor olabilirim ama yardımı olmalı.

Cevap için teşekkürler. Denedim ama ne yazık ki faydası olmadı. Sıfırlama, diziyle herhangi bir şey yapmaya başlamadan önce etkili olur. Ve sıfırlama, bir DEĞER dizisinin açık ataması yoluyla yapılır, ancak belirttiğim durumda, dizi öğelerine bir işlevin sonucu atanır (teorik olarak, dize türünde bir DEĞER döndürmesi gerekir), ancak aslında bir REFERENCE döndürür benimki olan bellekteki dizenin adresine bakmak yanlış. Ayrıca fonksiyon arka arkaya birkaç kez çağrıldığı için aynı değerlere sahip sonuç elde edilir ve her çağrıdan sonra aslında sonraki çağrı aynı hafızayı kullanır, oraya yeni veriler yerleştirir. Çağrılarla bazı manipülasyonlar yaparsanız (herhangi bir f-th çağırma, değişken bildirme vb.), o zaman büyük olasılıkla sonuç daha da içler acısı olacaktır ve dize dizisinin öğesinin değerleri bellekte çöp olduğunu gösterecektir. .


Mümkünse mql4 geliştiricilerinden bu durum hakkında yorum yapmalarını ve mümkünse dize dizileriyle nasıl doğru çalışılacağını açıklamalarını isteyin.

 
xruss писал(а) >>
bir hata mı var

Açılacak bir sinyal üretmeden önce, geçmişten son kapatılan emri seçer ve tipini ORDtype değişkenine atarsınız. Onlar. geçmiş boş değilse, ORDtype açıkça -1'e eşit olmayacaktır. Bu nedenle, bir sinyalin ortaya çıkması koşulu sağlanmaz, çünkü

if ((ORDtype==-1)&&(...))

 
Everlost >> :

Açılacak bir sinyal üretmeden önce, geçmişten son kapatılan emri seçer ve tipini ORDtype değişkenine atarsınız. Onlar. geçmiş boş değilse, ORDtype açıkça -1'e eşit olmayacaktır. Bu nedenle, bir sinyalin ortaya çıkması için koşul yerine getirilmemiştir, çünkü

if ((ORDtype==-1)&&(...))

nasıl olmalı? mantıklı olarak, sinyal oluşturmadan önce ORD tipini belirlemeyi düşündüm. aksi halde alım satım kriterlerinde nasıl dikkate alınacağı. ve bir engel daha - boş bir geçmişle bile pozisyonlar açılmaz ((

 
Yug >> :

Cevap için teşekkürler. Denedim ama ne yazık ki faydası olmadı. Sıfırlama, diziyle herhangi bir şey yapmaya başlamadan önce etkili olur. Ve sıfırlama, bir DEĞER dizisinin açık ataması yoluyla yapılır, ancak belirttiğim durumda, dizi öğelerine bir işlevin sonucu atanır (teorik olarak, dize türünde bir DEĞER döndürmesi gerekir), ancak aslında bir REFERENCE döndürür benimki olan bellekteki dizenin adresine bakmak yanlış. Ayrıca fonksiyon arka arkaya birkaç kez çağrıldığı için aynı değerlere sahip sonuç elde edilir ve her çağrıdan sonra aslında sonraki çağrı aynı hafızayı kullanır, oraya yeni veriler yerleştirir. Çağrılarla bazı manipülasyonlar yaparsanız (herhangi bir f-th çağırma, değişken bildirme vb.), o zaman büyük olasılıkla sonuç daha da içler acısı olacaktır ve dize dizisinin öğesinin değerleri bellekte çöp olduğunu gösterecektir. .


Mümkünse mql4 geliştiricilerinden bu durum hakkında yorum yapmalarını ve mümkünse dize dizileriyle nasıl doğru çalışılacağını açıklamalarını isteyin.

Şu şekilde deneyin:

string tmp = func();
array[0] = tmp;

Bahçe, elbette, ama işe yaramalı ...

 

Ve test cihazında MT4'te ne anlama geliyor - Optimizasyon, bir onay işareti koymanız gereken yer? Bu fonksiyon nedir? Danışmanı belirli bazı ayarlar (standart) için mi kuruyor veya hangi dönemde (TF) daha iyi çalıştığını gösteriyor mu? veya başka bir şey?

 
rafex >> :

Ve test cihazında MT4'te ne anlama geliyor - Optimizasyon, bir onay işareti koymanız gereken yer? Bu fonksiyon nedir? Danışmanı belirli bazı ayarlar (standart) için mi kuruyor veya hangi dönemde (TF) daha iyi çalıştığını gösteriyor mu? veya başka bir şey?

Bu onay kutusuna ancak F1 tuşuna bastıktan ve "Otomatik Ticaret" bölümünü dikkatlice inceledikten sonra dokunulabilir.

 
komposter >> :

Şu şekilde deneyin:

Bahçe, elbette, ama işe yaramalı ...

Dün denedim. Sonuç aynı. Aslında, bağlantı önce temp str öğesine kopyalanır ve ardından dizi öğesine kopyalanır :(

 
Yug >> :

Dün denedim. Sonuç aynı. Aslında, bağlantı önce temp str öğesine kopyalanır ve ardından dizi öğesine kopyalanır :(

İşlevde, döndürülen dizeyi statik olarak bildirin, ancak o zaman başlatma bildirimden sonra yapılmalıdır.

 
Sevgili uzmanlar, lütfen sorumu görmezden gelmeyin.

Günlük gibi oynaklığı hesaplayan bir gösterge var mı? Ancak belirsiz bir sayı 0.34 gibi bir sonuç verecek şekilde değil. Ve böylece bir günde mum tik tak sayısını sayar ve örneğin belirli bir periyoda (gün sayısı) böler, böylece ortalama değeri bilebilirsiniz. Örnek: 100'ü açın, 200'ü kapatın; ikinci gün - 200'ü açın, 250'yi kapatın. Bu 2 gün için ortalama oynaklık = ((200-100)+(250-200))/2gün=(100+50)/2=75
Varsa nereden indirilir.
 
TheXpert >> :

İşlevde, döndürülen dizeyi statik olarak bildirin, ancak o zaman başlatma bildirimden sonra yapılmalıdır.

Bu seçeneği de denedim. Sonuç aynı, yani. bir değer değil, belleğe bir başvuru döndürülür.