[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 101
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
Anlaşıldı ... Yeniden çizmenin başka bir yolu varsa?
Tünaydın! Lütfen ArrayMo işlevini anlamama yardım edin (f-I, yoğunluk eğrisinin maksimumunu döndürür).
Aşağıdaki sorular ortaya çıktı:
1. Geçici bir dizi oluşturmanın amacı nedir?
2. Geçici dizinin değerlerinin nelerden alınacağı net değildir ve bu nedenle bu dizinin nasıl aranacağı da net değildir:
3. Ve sonra, genel olarak, gerçek benim için derinden gizli))))) Değer olmadığından emin olduktan sonra, "hangi değerler olduğu belli değil" dizisinin boyutunu belirlemeye başlıyoruz.
Bu hikayede bir ışık ışını için çok minnettar olurum))))Bana öyle geliyor ki fonksiyon hala tam olarak doğru yazılmamış. Asıl sebep duyurudan sonra
mutlaka gerekli
aksi halde ( alıntı )
!!!Not: Yeniden boyutlandırılmış bir işlevde yerel olarak bildirilen bir dizi, işlev sona erdikten sonra değişmeden kalacaktır. İşlev yeniden çağrıldığında, böyle bir dizi, bildirilenden farklı bir boyuta sahip olacaktır.!!!
Ve böylece, sayısız çağrı ile işlev "geçmişe düşecek")
Algoritmanın işleyişi ile ilgili. m[][2] dizisinin kendisi, x[i] değişkeninin çeşitli değerleri üzerinden isabet sayısının doğrudan ampirik dağılımının bir temsilidir. Onlar. dizinin her elemanı iki sayıdan oluşur - belirli bir değerdeki (ilk alan) isabet sayısı ve bu değerin kendisi. Döngüde, her x[i] için, m dizisinde aynı değer aranır ve bulunursa, miktar alanı eklenir, aksi takdirde, ArrayResize() ve bizim x[i] kullanılarak yeni bir öğe oluşturulur. orada yazıyor.
Ayrıca, dizi doldurulduktan sonra, maksimum isabet sayısına sahip öğeyi, yani tanım gereği dağıtım modu x'i bulmanız yeterlidir.
Çizgilerle yapılır
bana öyle gelse de (çok boyutlu bir diziden emin değilim),
Genel olarak (kodun yazarına tüm saygımla) söyleyebilirim ki, tüm eksiklikler giderildiğinde bile, bu algoritma son derece verimsizdir ve çoğu zaman yanlış sonuç verebilir. Bunun nedeni double tip ile çalışmamız yani x[i] değerlerinin çok yakın ancak yine de ayırt edilebilir değerlere düşme olasılığı oldukça fazladır. Örnek boyutu, x[i] alanına izin verilen toplam aralık sayısından çok daha büyük (yüzlerce kez veya daha fazla) olduğunda bu çok fark edilmeyebilir. Ancak, bu kısıtlamanın sağlanmadığı çok sayıda durumda, birçok yanlış hesaplama olacaktır.
Modu hesaplamanın daha doğru bir yolu şudur: ampirik bir dağılım fonksiyonu oluşturulur (frekans dağılımıyla karıştırılmamalıdır), ardından parçalı doğrusaldan düze enterpolasyon yapılır ve son olarak türevin maksimum noktasıdır. aranan. Böyle bir algoritma yukarıda sıralanan dezavantajlardan aridir ve küçük örneklem boyutlarında bile çok verimli çalışır. En azından, MQL'de sadece 50-100 elemanlı örnekler üzerinde karşılaştırılabilir sayıda aralıklarla mod bulma problemini çözmem gerekiyordu ve her şey yolundaydı. Tek bir dezavantaj var - enterpolasyonlarda, kural olarak, elbette niteliksel olarak düzeltmek istemiyorsak, hesaplamaların hızı keskin bir şekilde düşer.
burada: https://www.mql5.com/ru/job
Teşekkür ederim. Belki daha fazla seçenek vardır.
Teşekkür ederim. Belki daha fazla seçenek vardır.
sitedeki aramaya "martingale" yazmayı deneyin - şaşıracaksınız
Zaten baktım! Ama istediğim şey değil
Buraya bak
https://www.mql5.com/ru/forum/136747
Merhaba. MQL4'te yeni başladı.
Bana OrderModify işlevinden bahsedin. Ders kitaplarında ve örneklerde bu işlev trol için düşünülür, yani. kayıp değişikliğini durdur. Sadece açık bir emirde kar al değiştirmem gerekiyor.Açılışta zararı durdur ayarlanmadı, ayrıca değişiklik sırasında 0'da kalmalı.
Siparişlerin sayımı ve seçimi nasıl olmalı?
Nihai hedef şöyle görünmelidir:
if (OrderType()==OP_BUY && OrderOpenPrice()-Bid>kof*Point) // bir satın alma var, ancak kof kadar düştü
{
OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice()+tpnew*Point,0,CLR_NONE);// TP'yi önceden ayarlanandan daha aşağı taşı
Satış benzer.
Herhangi bir cevap için teşekkürler.
Tekrar merhaba! :)
Düşündüğüm gibi, sorunlar vardı. İşte kod. Mesele şu ki, test cihazındaki emirler TP tarafından kapatılır ve TP işlevi tarafından, Takip Durdurma sırasında emir değiştirildiğinde kaldırılır.
Bu, test cihazı günlüğünde yanlış TP ve SL ile ilgili herhangi bir hata olmamasına rağmen, takip eden durdurmanın yürütülmediği anlamına gelir. Yanlış olan ne?