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

 
sürümünüzde çalışır ve ETO zaten büyük bir atılımdır). sadece bir koşula ihtiyacım var ( Ask<tmp || Ask>tmp), ama sadece basmakalıp ( Ask<=tmp). yani, diğer yönde en az bir kene göründüğü anda ... ve bir döngü ile) .. Gerçeğin yakınlarda bir yerde olduğunu biliyorum))). gerçek hayatta işe yarayacak olsa da, o zaman bir testçi ile Tanrı onu kutsasın.
 
maryan.dirtyn >> :
в вашем варианте работает, и ЕТО уже большой прорыв ). только мне нужно условие не ( Ask<tmp || Ask>tmp), а просто банально ( Ask<=tmp). тоесть как только появиться хоть один тик в другую сторону... и именно с циклом).. я знаю, истина где то рядом))). хотя б на реале работало, бог с ним, с тестером то.

Aynı şey - aynı mantık. Döngüden önce, değişkeni döngü koşulunun doğru olacağı bir duruma getiriyoruz. Ayrıca, döngüde, her yinelemede, RefreshRates() kullanarak verileri güncelleriz, ardından alıntının yeni olup olmadığını kontrol ederiz, ardından bazı eylemler gerçekleştirir ve döngüyü zorla keseriz. Döngünün altındaki kodun yürütülmesini istiyorsanız, break komutuyla kesintiye uğrayın. Yürütülmemesi gerekiyorsa, danışmanın int start() işlevinin çalışmasını return(0) komutuyla kesiyoruz.
 

Bunu nasıl yapacağımın mantığını anlıyorum .. Neden tek bir inşaatın işe yaramadığını anlamıyorum, birkaç tane daha seçenekleri sıralamanın uçurumuna battı

 double tmp=Ask; while (Ask<=tmp) tmp=Ask; Print("Заработало");
 double tmp= 0 ;   while (Ask<=tmp || tmp== 0 ) { RefreshRates(); if (Ask>tmp) break ;} Print("Заработало");
 
maryan.dirtyn >> :

Bunu nasıl yapacağımın mantığını anlıyorum .. Neden tek bir inşaatın işe yaramadığını anlamıyorum, birkaç tane daha seçenekleri sıralamanın uçurumuna battı


Gözlerinizi kapatmanız ve döngünün her yinelemesinde ne olduğunu hayal etmeniz gerekir.

İlk seçeneğiniz:

Hız, as'a eşittir. Eşitlik koşulu karşılanır, bu nedenle döngü neredeyse sonsuz sayıda yinelemeye gider. Çünkü yeni bir alıntı gelse bile döngü doğruluk koşulunu ihlal edeceği bir gerçek değildir. Birkaç ardışık düşüş sorar ve döngüden çıkmak için neredeyse süresiz olarak bekleyebilirsiniz...

 

Dürüst olmak gerekirse, MQL4 öğreticisi çıktığında, onu gözden geçirdim ve geri dönmedim - bu makalenin yazarının her yere bir while() döngüsü koymasından hoşlanmadım. Bu, MQL'yi bu kitaptan öğrenmeye çalışan birçok kişiye damgasını vurdu.

Söyleyin bana, Uzman Danışmanınızın bu döngü olmadan yapamayacağı kadar korkunç bir görevi var mı? Pekala, bu döngüyü sonsuz sayıda yinelemede çalıştırmanın ne kadar kolay olduğunu kendi gözlerinizle görebilirsiniz, sadece kontrolü kaybedersiniz. Sizin durumunuzda bir for() döngüsü ile geçinmek mümkün mü? Peki, ya da ayrı bir basit fonksiyon yazmak?...

 

zaman vagonu, dedikleri gibi) .. asıl şey, işe yarayacağıdır .. düşen bir bıçak almaktan yoruldu. herhangi bir, hatta en kaba, sorunun çözümüne ihtiyaç vardır:

 double tmp=Ask; 
                 while (Ask<=tmp) tmp=Ask; 
                                               Print ( "Заработало" );
 
drknn >> :

Dürüst olmak gerekirse, MQL4 öğreticisi çıktığında, onu gözden geçirdim ve geri dönmedim - bu makalenin yazarının her yere while() döngüsünü koymasından hoşlanmadım. Bu, MQL'yi bu kitaptan öğrenmeye çalışan birçok kişiye damgasını vurdu.

Söyleyin bana, Uzman Danışmanınızın bu döngü olmadan yapamayacağı kadar korkunç bir görevi var mı? Pekala, bu döngüyü sonsuz sayıda yinelemede çalıştırmanın ne kadar kolay olduğunu kendi gözlerinizle görebilirsiniz, sadece kontrolü kaybedersiniz. Sizin durumunuzda bir for() döngüsü ile geçinmek mümkün mü? Peki, ya da ayrı bir basit fonksiyon yazmak?...

Eh, uzun zamandır mql için yeni değilim. Ben zaten alıştım iki yıl içinde .. evet, ihtiyacım olan şey bu. bu arada, ders kitabına periyodik olarak dönüyorum, ama bir şey esnemedim mi).. tavşanı görmüyor musun? ama öyle.. her şey o kadar basit değil.
 
Böldüğüm için üzgünüm ama bu formda döngü sonsuz olacak. tmp'nin, kendisine Ask'tan açıkça daha büyük bir başlangıç değeri atanarak statik hale getirilmesi gerekir. Veya =0, önerilen yapıyı VEYA ile kullanırsanız. Ve böylece Ask her zaman = tmp olacaktır.
 
Svinozavr >> :
Извините, что вмешиваюсь, но в таком виде цикл и будет бесконечным. tmp нужно сделать static с присвоением ей началного значения заведомо большего Ask. Или =0, если использовать предложенную конструкцию с ИЛИ. А так Ask всегда будет = tmp.
müdahale plz.. görev basit.. fiyat uçarken, diğer yönde bir işaret olana kadar satın almayın. ve kodu tek bir yerde döngüye sokmanız gerekir, uçarken hiçbir şeye dokunmayın ..
 

Burada neden bir döngü olduğu belli değil. Her tik için fiyatları kontrol edin ve gerçeklere göre hareket edin.