Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 282

 

amavladi :


Bu bir alma değil, döngülerin mekaniğini anlamak istiyorum, böylece daha sonra karmaşık bir Uzman Danışman yazabilirim. "Dönüş" operatörü beni yeni bir "başlangıç" a atar ve bu her zaman gerekli değildir.

Her durumda, cevap için teşekkürler.

Evet, hiçbir şey için değil. Sonuç olarak, "mekaniği" "üçüncü şahısların" yardımıyla anlamak istiyorsanız, bunun için sorunu bu "kişilere" formüle etmeniz gerekir, yani. Algoritmadan ne elde etmek istediğinizi tanımlayın, ne elde ettiğinizi değil.

"Döngü döngüleri" bir sorun değildir, çünkü döngü bir devam ifadesinden başka bir şey içermiyorsa, o zaman döngü koşulu yanlış olana kadar döngü yapması gerekecektir.

Onlar. "Çalışmayan kodda ne işe yaramaz" ruhuyla aptalca sorular sormamalısınız. Sonuçta, sarhoş bir kirpi bile çalışmayan kodun çalışmadığını, çünkü çalışmadığını anlar. Ancak kodun yazarı dışında telepatik yetenekleri olan hiç kimse, üretim kodunda neyin işe yaraması gerektiğini anlayamaz.

 
amavladi :

YARDIM!

Forumda kibar bir ruh varsa, bana hatalarımı söyle. MQL4'te uzmanlaşmaya başladım, bir siparişi açan ve ardından küçük bir kâr marjıyla kapatan basit bir Uzman Danışman yazdım. Bunu strateji test cihazında test etmeye çalıştım ve şu şekilde yazıldığında for ve while döngüsü ifadelerimin döndüğünü buldum:

//--------------------------------------------------------------------

   while (Ask<=Level)

   { RefreshRates();

     continue;

   }          

Eh, burada her şey basit görünüyor.

Strateji test cihazı bir onay işareti oluşturur, start() öğesini çağırır ve bir sonraki onay işaretini oluşturmak için bu işlevin tamamlanmasını bekler.

Bu nedenle robotunuzun test cihazına asılmamasını istiyorsanız bu tasarımdan uzaklaşın. Sizin durumunuzda, Ask fiyatı start()'tan çıkış tamamlanana kadar değişmeyecektir.

Ve dönüş komutunu aldıktan sonra, başlat işlevi işini tamamlar ve böylece testçinin bir sonraki onay işaretinin oluşturulması gerektiğini anlamasını sağlar.

Ayrıca, strateji test cihazında değil, gerçek modda, RefreshRates Ask fiyatını güncelleyeceğinden kodunuz beklediğiniz gibi çalışacaktır.

Kodunuz oldukça çalışıyor, ancak bir strateji testçisi için sonsuz bir döngüye giriyor.

return kullanmak burada yardımcı olacaktır. Daha fazla deneyim kazandığınızda, kendiniz bu tür yapılardan ayrılacaksınız. Sana iyi şanslar.

 
Reshetov :


Onlar. "Çalışmayan kodda ne işe yaramaz" ruhuyla aptalca sorular sormamalısınız. Sonuçta, sarhoş bir kirpi bile çalışmayan kodun çalışmadığını, çünkü çalışmadığını anlar. Ancak kodun yazarı dışında telepatik yetenekleri olan hiç kimse, üretim kodunda neyin işe yaraması gerektiğini anlayamaz.

Kod çalışıyor, sadece yeni başlayanların bilmediği nüanslar var...
 
Reshetov :

Evet, hiçbir şey için değil. Sonuç olarak, "mekaniği" "üçüncü şahısların" yardımıyla anlamak istiyorsanız, bunun için sorunu bu "kişilere" formüle etmeniz gerekir, yani. Algoritmadan ne elde etmek istediğinizi tanımlayın, ne elde ettiğinizi değil.

"Döngü döngüleri" bir sorun değildir, çünkü döngü bir devam ifadesinden başka bir şey içermiyorsa, o zaman döngü koşulu yanlış olana kadar döngü yapması gerekecektir.

Onlar. "Çalışmayan kodda ne işe yaramaz" ruhuyla aptalca sorular sormamalısınız. Sonuçta, sarhoş bir kirpi bile çalışmayan kodun çalışmadığını, çünkü çalışmadığını anlar. Ancak kodun yazarı dışında telepatik yetenekleri olan hiç kimse, üretim kodunda neyin işe yaraması gerektiğini anlayamaz.

Yeni gelenlerin bir sürü pislik almasından hoşlanmıyorum. Peki, sadece insanca yazın - soru kötü / yanlış / doğru formüle edilmemiş veya - burada veya orada bir hata var. Bir şeyler yapmayı öğrenmeye başladığınızda kendinizi hatırlayın, sonuçta, bir kereden fazla, sanırım, aptalca bir soru soruldu. Ve sarhoş bir kirpi hakkındaki metafor, sorunun çözümüne en azından bir miktar olumluluk getiriyor mu? Kendi büyüklüğünüzün parlaklığında yeni başlayan birinin arka planına karşı havalı hissetmek güzel.
 
paladin800 :
Yeni gelenlerin bir sürü pislik almasından hoşlanmıyorum.

Bir domuz her yerde pislik bulur © Popüler söz

Kiri nereden buldun? Bulunursa, lütfen bir moderatörle iletişime geçin.

paladin800 :
Ve sarhoş bir kirpi hakkındaki metafor, sorunun çözümüne en azından bir miktar olumluluk getiriyor mu?

Kurallara metafor ve kirpi yasağı eklemek için yönetimle iletişime geçin.

 
Reshetov :

Bir domuz her yerde pislik bulur © Popüler söz

Kiri nereden buldun? Bulunursa, lütfen bir moderatörle iletişime geçin.

Kurallara metafor ve kirpi yasağı eklemek için yönetimle iletişime geçin.

Ve neden moderatörler ve adminler... bu bir görgü, mesleki etik, nezaket, hoşgörü, nihayetinde insanlık meselesi... adminler burada yardımcı olmuyor.

Ve sorunun özünü tam olarak anlamadıysanız, hiçbir şey tavsiye etmemek daha iyidir ... Bazen çiğnemek daha iyidir ... Başkalarının pahasına gösteriş yapmak hakkınız olsa da ...

 
elugovoy :

iyi yetiştirmek, meslek ahlakı, incelik, hoşgörü, nihayetinde insanlıkla ilgili...

Evet. Anaokulu ve asil bakireler enstitüsü bir şişede.

Öyleyse belki kişiselleşelim ve yeni başlayanların sorularını yanıtlamaya devam edelim? Ve sonra tamamen teknik bir konuda insani yaklaşımların destekçilerinden bir tür fluderastiya elde edilir.

 
(İnanılmaz telepatik yetenekleri olan) Evgeny Lugovoy'a minnettarlığımı ifade etmek isterim. Test cihazındaki ve gerçek hayattaki döngülerin sorunları hakkındaki soruma yüzde yüz cevap verdiniz. Aynı akşam "Test ve http: //articles.mql4.com/en/824 (bu benim gibi yeni başlayanlar içindir) bağlantısında Uzman Danışmanların optimizasyonu ve test cihazının gerçek bir fiyat hareketi oluşturduğunu ve yalnızca bir sonraki yinelemede yeni teklifler yayınladığını fark etti. Bu yüzden, döngü ifadelerinin olduğu yerde, bir dizi IF operatörünü kullanarak test kodunu yeniden yazdım. Ayrıca benim gibi yeni başlayanlar için MQL4 dilinin "Ortak İşlevleri" hakkında ayrıntılı bilgi edinmenizi tavsiye ederim (bağlantı http://docs.mql4.com/en/common). gerçek terminalde aynı fonksiyonun çalışması ile strateji test cihazında terminalin çalışmasında bir fark.Örneğin, test cihazındaki Sleep() olması gerektiği gibi gecikmelere neden olmaz ve sadece gerçek hayatta çalışır.Ve sonuncusu şey, pervasız (benim gibi) koşullu sonsuz döngü sevenler için int start() { double level=1300; (Ask<=Level) devam ederken; Bu kodun son iki satırı, tüm masumiyetlerine rağmen, terminalde gerçek bir para birimi penceresinde çalıştıktan sonra, fiyat 1300'e ulaşana kadar çok fazla işlemci süresi alacaktır (onlarda benim 2x nükleer %25. Arkadaşım tavsiye etti, döngüyü reddedemezseniz, o zaman Sleep( int 100) eklemeniz gerekir, yani işlemciyi boşaltmak için 100 ila 200 milisaniye arasında bir aralık verin. int start() { çift Seviye=1300; while (Ask<=Level) { Sleep( int 100) devam eder; }
Not "Üçüncü şahıslar" ifadesi sevenler için: sarhoş bir kirpi, hadi onu öldürelim, fluderastia, vb. (her ne kadar tamamen teknik bir konuda olsak da) Prens Myshkin aracılığıyla "Budala" romanında çok garip bir şey söyleyen Fyodor Mihayloviç Dostoyevski'ye küçük bir referans vereyim: "Dünyayı güzellik kurtaracak!", Bunun üzerine, Etrafındaki "üçüncü şahıslar" alaycı bir tavırla... Bana büyük klasiğimizi hatırlattığın için tekrar teşekkür ederim. Ve sen Eugene, senden Moldova'ya merhaba demeni istiyorum, uzun süredir başka bir ülkede yaşıyor olmama rağmen, Kişinev'de doğdum.
 
amavladi :

Evet, telepatik olanlar yok))) Sanırım 6 yıl önce ben de dahil olmak üzere fiyatı "yakalamak" isteyen herkes böyle bir tırmık üzerine bastı, diyelim ki bir trol için.

Bu arada, konu yeni başlayanlar içindir ve "tamamen teknik" değildir.

Merhaba, geçeceğim.

İyi şanlar.

 
elugovoy :

Evet, telepatik olanlar yok))) Sanırım 6 yıl önce ben de dahil olmak üzere fiyatı "yakalamak" isteyen herkes böyle bir tırmık üzerine bastı, diyelim ki bir trol için.

Bu arada, konu yeni başlayanlar içindir ve "tamamen teknik" değildir.

Merhaba, geçeceğim.

İyi şanlar.

Telepati ve "tamamen teknik" gelince - bu Bay Reshetov için benim :)))

Sana da iyi şanslar.

Neden: