[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 310
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Bir soru. Şimdi nasıl optimize edilir? Danışmanın iskeleti şimdi:
Değişkenlere açık-yakın taşındı ve gereksiz hale gelen ikinci FileSeek bloğu kaldırıldı, bir mum stili seçeneği eklendi (tümü boğa, tümü düşüş, herhangi biri), sonraki talep veya teklif önceki yüksek ve düşük değerden daha büyük veya daha düşükse gölgeler eklendi , baskı ile bir iz ekledi, başlıktaki bayrak tarafından etkinleştirildi, satır numaralarına bağlantılar içeren her şeyi tamamen yorumladı, kodu forum için okunabilir hale getirmeye çalıştı. Satır numarası ile de yazdırma.
Şimdi izle:
Üstte zaman dilimini, altta saniyeleri işaretleyin. Gölgeler (kuyruklar), bir saniyede iki kene yakalandığında ve teklif veya teklifin öncekinden farklı olduğu zamandır. Tik saat gibi çalışır. Bir saniye gecikir, bu, kenelerin işlenmesi için keneler arasındaki minimum zaman aralığından daha fazla zaman harcandığı anlamına gelir. Bu yüzden kodu nasıl optimize edeceğimi soruyorum. Kodu ekliyorum - her şeyi tamamen yorumsuz bıraktığımı tekrar ediyorum. Nasıl çalıştığını kontrol etmeniz gerekiyorsa - bir dakika için bir danışman olarak asın, ardından bağımsız olarak arayın ve 'sec'+enstrüman adını açın.
Bir Expert Advisor'da böyle bir işlev nasıl uygulanır? Bay emirlerinden herhangi birinde TP veya SL tetiklendiğinde, tüm Bay emirleri kapatılmalıdır.
Programlama deneyiminiz varsa, bir ipucu:
1. Bir satın alma siparişi açtıktan sonra satın alma siparişlerinin sayısını sayın
2. Numaralarını global bir değişkende saklayın
3. Bir sonraki tikte, alış emri sayısının bir öncekinden daha az olup olmadığını kontrol edin, ardından tüm alış emirlerini kapatın.
Kod bazında açık pozisyon tipine göre emir sayısının muhasebeleştirilmesi ve seçilen tipteki (alış veya satış) pozisyonların kapatılması için fonksiyonlar vardır.
Kim'den birçok faydalı özellik
Değişkenlerin tip dönüşümü hakkında.
Çift K katsayısının değerini metin olarak satır açıklamasına yazdı (K=0.573).
Kodun yürütülmesi sırasında, K katsayısının değeri birkaç kez değişti.
Şimdi, ObjectDescription(dize adı) satır açıklama dizesini çıkardıktan sonra çift Z değişkenini yazılı K=0.573 değeriyle çarpmak istiyorum.
MQL'de tekrar 0,573 elde etmek için string tipindeki bir değişkeni double tipindeki bir değişkene dönüştürmek mümkün müdür? Mümkünse, lütfen bir bağlantı sağlayın.
Samimi olarak. shurkin.
MQL'de tekrar 0,573 elde etmek için string tipindeki bir değişkeni double tipindeki bir değişkene dönüştürmek mümkün müdür? Mümkünse, lütfen bir bağlantı sağlayın.
.
08:06:32 Sn.TF AUDUSD,M1: 15
Her iki kodda da (onay ve ikinci zaman dilimleri) eğimli bir milisaniye zamanlayıcısı olan günlüğün parçası. Şimdiye kadar akla gelen tek şey, döngüleri tamamen ortadan kaldırmak, yani. son tıklamanın üzerinden kaç saniye geçmiş olursa olsun saniyede bir veya daha fazla tıklama - her zaman bir mumdur. İkinci bir tane olsaydı, vb. saniyede kene - gölgeli bir mum. Ama sonra "delikleri" olan ikinci bir TF olacak ve High[15]'e göre artık 15 saniye önce ask değerini almadığımı varsayalım...
Kendimden bir fonksiyon yazmamı istedim. Sonuç olarak, N -mumlar belirli bir yönde geri döndüğünde, mum sayısını hesaplamak gerekir. ANCAK. Bunun için birkaç koşul var, daha doğrusu zamanla bunların bir listesi olacak.
Diyelim ki, örneğin, eğilim aşağı yönlü, ... bir geri dönüş başladı. 5 mum tükendiyse ve her mum yükselişteyse ve örneğin, her mumun boyutu belirtilen i_sizeOfCurrBar değerinden ve diğerlerinden daha büyükse istiyorum. koşullar, sonra sürekli yükseliş çubuklarının sayısını görüntüler ve işlevden bazı sonuçlar döndürürüz.
Bunu yazmanın en iyi yolu nedir? Şu anda yazmaya başladım ve burada bir çubuk döngüsünden geçmenin ve bir şekilde tarihin derinliğindeki görüntülemeyi sabit sayıda çubukla değil, çubuklarla sınırlamanın gerekli olduğunu anlıyorum. koşullar bizi ilgilendiriyor.
İşte sahip olduğum şey:
Şu anda, sondan bir önceki çubuktan sadece bir arama var, ardından indeks 6'ya sahip çubuk, yani. 5 bar üst üste. Ancak EA'ya yalnızca yükseliş çubuklarını hesaplamak için ihtiyacım var ve hepsi art arda değil. Bu nasıl daha iyi uygulanır?
Boyuta göre, doğru bir şekilde filtreledim.
Her şey zaten yazıldığında, sayaç zaten nht ile sürekli çubukların sayısını, aşağıdan etvsvb parametreleriyle hesaplayacak ve bu tür çubuklar yeterliyse, bir tür çubuk döndürülecektir. fonksiyon değeri.
Her zamanki gibi orijinal: çubukları "arkadan" sayın...
Birçok farklı yol vardır:
1. Genel bir değişken aracılığıyla .
2. Bir dosya aracılığıyla .
3. iCustom() aracılığıyla .
4. Küresel grafik değişkenleri aracılığıyla.
5. Haritalama . Verileri bir terminalden başka bir terminale aktarmak mümkündür. Veya bir terminalde, MT4 global değişkenlerinin kısıtlamaları olmadan verileri bir pencereden başka bir pencereye aktarın.
Bunlardan hangisi en hızlı çalışır?
Bunlardan hangisi en hızlı çalışır?
Baskıda 1 ve 2 değeri var... Bu da ne böyle?
Sadece dikkatsizlik. Genel olarak, yerel bool 4 bayttır, bu onu yalnızca 0 ve 1 değerlerini almak zorunda bırakmaz. C ++ boolearn - evet, 1 bayt. Her zaman 0 veya 1) olduğunu umarak birden fazla seçim yapmam gerekirse, bool'u switch() içindeki ikili aritmetikte kişisel olarak kullanırım)) Bunun gibi:
Bir soru. Şimdi nasıl optimize edilir? Danışmanın iskeleti şimdi:
Değişkenlere açık-yakın taşındı ve gereksiz hale gelen ikinci FileSeek bloğu kaldırıldı, bir mum stili seçeneği eklendi (tümü boğa, tümü düşüş, herhangi biri), sonraki talep veya teklif önceki yüksek ve düşük değerden daha büyük veya daha düşükse gölgeler eklendi , baskı ile bir iz ekledi, başlıktaki bayrak tarafından etkinleştirildi, satır numaralarına bağlantılar içeren her şeyi tamamen yorumladı, kodu forum için okunabilir hale getirmeye çalıştı. Satır numarası ile de yazdırma.
Şimdi izle:
Üstte zaman dilimini, altta saniyeleri işaretleyin. Gölgeler (kuyruklar), bir saniyede iki kene yakalandığında ve teklif veya teklifin öncekinden farklı olduğu zamandır. Tik saat gibi çalışır. Bir saniye gecikir, bu, kenelerin işlenmesi için keneler arasındaki minimum zaman aralığından daha fazla zaman harcandığı anlamına gelir. Bu yüzden kodu nasıl optimize edeceğimi soruyorum. Kodu ekliyorum - her şeyi tamamen yorumsuz bıraktığımı tekrar ediyorum. Nasıl çalıştığını kontrol etmeniz gerekiyorsa - bir dakika için bir danışman olarak asın, ardından bağımsız olarak arayın ve 'sec'+enstrüman adını açın.
İlgileniyorsanız, yalnızca kodunuzu (dosyanızı) optimize etmekle ilgili birkaç noktaya bakabilirsiniz. Doğru, optimizasyon konusunda ciddiyseniz , kodun yürütme süresini ölçmeniz gerekir. ;)