Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 614
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Cevap verdiğiniz için teşekkürler. Zor değilse, lütfen bahsettiğiniz danışmanı (veya kanalla olan bir parçasını) gönderin - başka bir uygulama görmek ilginç.
Birkaç yıl önce ne yaptığımı anlayamıyorum. Eskiden çalışıp ticaret yaptığımı hatırlamama rağmen nedense olmuyor. Önce kodu anlayalım, düzeltelim ve sonra gönderelim. Belki yarın. Birdenbire bazı çocukça hatalar ortaya çıkarsa, bu sadece şerefsiz olma arzusu değildir.
Genel fikir, elbette, bu. Ve kanal genişliği nasıl belirlenir (sizin durumunuzdaki aralık)? Benim için bu, ortalama bir mumun boyutuyla yapılır, ayrıca hepsi kanalın uzunluğuna bağlıdır, çünkü kanalın varlığı sabit sayıda çubukta değil, örneğin bir uzunlukta kontrol edilir. 10 ila 30 bar.
Uzunluktan genişliği seçme sorusuyla ilgileniyorum ...
Bir hindide kanal genişliği için birkaç harici parametre yapabilirsiniz. Ve her parametre için ayrı hesaplamalar yapmak.
Uzunluk için aynı.
Merhaba. Sepet danışmanı, koşul oluştuğunda, tüm siparişleri kapatmalıdır, ancak önce siparişi kapatır, ardından tekrar kapatmaya çalışır (sunucu "Geçersiz bilet" hatası verir) ve ancak o zaman devam eder. İşte bir örnek kod ve danışmanın kendisi.
CloseOrders() işlevinizde, sipariş kapanırsa, while( cnt<= 5 ) döngüsü bir kez daha kodu siparişi kapatmaya yönlendirir ve doğal olarak bir hata oluşur, ardından if().. break;
ProtectionClose() işlevinde, while'dan doğru çıkışa sahip satırları zaten eklediniz .
Burayı kazmaya çalışın.CloseOrders() işlevinizde, sipariş kapanırsa, while( cnt<= 5 ) döngüsü bir kez daha kodu siparişi kapatmaya yönlendirir ve doğal olarak bir hata oluşur, ardından if().. break;
ProtectionClose() işlevinde, while'dan doğru çıkışa sahip satırları zaten eklediniz .
Burayı kazmaya çalışın.Ama tarif ettiğim durumda, emirleri kapatan ProtectionClose() işlevidir ve bu da yakalamadır. Ve bu hatayı düzelteceğim.
Ama tarif ettiğim durumda, emirleri kapatan ProtectionClose() işlevidir ve işin özü bu. Ve bu hatayı düzelteceğim.
Kodun derinliklerine inmedim, test cihazında çalıştıramadım, gösterge yok.
Ancak, örneğin, OpenUsdbuy(); OpenSellusd() üst üste.
OpenSellusd() GBPUSD, EURUSD, AUDUSD, NZDUSD vb. açar. NZDUSD, AUDUSD vb.'yi ters sırayla kapatmaya ilk başlayan sizsiniz.
Gönderdiğiniz kodda, ProtectionClose() işlevinde, iki seçenekte yalnızca üç çiftte çıkış var: USDCAD, USDCHF, USDJPY.
Diğer para birimlerinde ise while()'dan yalnızca if(!Result[..]) hatasıyla çıkılabilir.
Bir hindide kanal genişliği için birkaç harici parametre yapabilirsiniz. Ve her parametre için ayrı hesaplamalar yapmak.
İşin aslı, kanalın genişliğini zorlamak istemiyorum - EA/gösterge, döviz çifti ve/veya mevcut oynaklıktan bağımsız olarak kanalın varlığını belirlemelidir. Buna göre, harici parametrelerden kanalın sadece minimum ve maksimum uzunluğunu belirledim ve o zaman bile sadece algoritmada hata ayıklama sürecinde - o zaman bu parametreler içeriye dikilecek. Bu aşamada bazı şikayetler var. Ve genel olarak kanallar yakalanmış olsa da (resim çalışma kodundandı), bu soruna başka çözümler de görmek istiyorum.
Kodun derinliklerine inmedim, test cihazında çalıştıramadım, gösterge yok.
Ancak, örneğin, OpenUsdbuy(); OpenSellusd() üst üste.
OpenSellusd() GBPUSD, EURUSD, AUDUSD, NZDUSD vb. açar. NZDUSD, AUDUSD vb.'yi ters sırayla kapatmaya ilk başlayan sizsiniz.
Gönderdiğiniz kodda, ProtectionClose() işlevinde, iki seçenekte yalnızca üç çiftte çıkış var: USDCAD, USDCHF, USDJPY.
Diğer para birimlerinde ise while()'dan yalnızca if(!Result[..]) hatasıyla çıkılabilir.
İpucu için teşekkürler, döngüden çıkışı bırakmayı gerçekten unuttum, şimdi kesinlikle çalışması gerekiyor, isterseniz göstergeyi teşekkür olarak düzenleyebilirim.
Genel fikir, elbette, bu. Ve kanal genişliği nasıl belirlenir (sizin durumunuzdaki aralık)? Benim için bu, ortalama bir mumun boyutuyla yapılır, ayrıca hepsi kanalın uzunluğuna bağlıdır, çünkü kanalın varlığı katı sayıda çubuk üzerinde değil, örneğin bir uzunlukta kontrol edilir. 10 ila 30 bar .
Uzunluktan genişliği seçme sorusuyla ilgileniyorum ...
Benim durumumda, kanal yüksekliğini ve minimum çubuk sayısını aynı şekilde ayarlamak için fenerin hafif bir versiyonunu önerdim.
İşin aslı, kanalın genişliğini zorlamak istemiyorum - EA/gösterge, döviz çifti ve/veya mevcut oynaklıktan bağımsız olarak kanalın varlığını belirlemelidir. Buna göre, harici parametrelerden sadece kanalın minimum ve maksimum uzunluğunu ayarladım ve o zaman bile sadece algoritmada hata ayıklama sürecinde - o zaman bu parametreler dikilecek . Bu aşamada bazı şikayetler var. Ve genel olarak kanallar yakalanmış olsa da (resim çalışma kodundandı), bu soruna başka çözümler de görmek istiyorum.
İşin aslı, kanalın genişliğini zorlamak istemiyorum - EA/gösterge, döviz çifti ve/veya mevcut oynaklıktan bağımsız olarak kanalın varlığını belirlemelidir. Buna göre, harici parametrelerden kanalın sadece minimum ve maksimum uzunluğunu belirledim ve o zaman bile sadece algoritmada hata ayıklama sürecinde - o zaman bu parametreler içeriye dikilecek. Bu aşamada bazı şikayetler var. Ve genel olarak kanallar yakalanmış olsa da (resim çalışma kodundandı), bu soruna başka çözümler de görmek istiyorum.
Pekala, arka arkaya 2 üst fraktal veya örneğin 5-10 mumdan oluşan 2 iHighest yakalama fikri var. Bu durumu belirli bir uzunluk aralığında yakalarız. Bu piklerin değerleri birbirine yakın ise bu iki pik arasında iLowest'i ararız. Bütün bunlar tek bir döngüye sığdırılabilir.
Benzer şekilde, önce iki alt tepe noktası, sonra aralarındaki üst tepe noktası arayın.
Bu bulunan zirvelerden daha fazla dans edin. Başlangıç olarak, üzerlerine seviyeler çiziyoruz. Sonra kodu daha fazla düşünmeyi öğretiriz.
Bu seçenek bizi channel_width gibi harici bir parametreden kurtaracak.
Beğenin ya da beğenmeyin, ama en azından uzunluk için bazı parametrelere ihtiyaç var, sanırım.