Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 640
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
Merhaba yoldaşlar!
MT5'te benim için çok harika ve çok gerekli araçlar var, " Elliott Impulse Wave " ve "Elliott Corrective Wave".
Soru şu: Bu araçları MT5'ten MT4'e bir şekilde entegre etmek mümkün mü?
MT4'te işlem yapıyorum, bir analiz yapmak için MT5'e geçmek çok uygun değil.
Veya: Sorunu çözmenin başka yolları nelerdir?
İyi günler, dilin MarketInfo(Symbol(), MODE_TICKVALUE ) gibi bir piyasa parametresi var. Bu değerin nasıl hesaplandığını genel hatlarıyla anlatabilir misiniz?
Bu, 1,00 lot ile mevduat para birimindeki minimum fiyat değişikliğinin (1 pip) maliyetidir! Çok basit bir şekilde hesaplanır: 1.00(lot)/ 1.36030(şu anda eurodolar kotasyonu) = 0.7351 euro.
Bu, 1,00 lot ile mevduat para birimindeki minimum fiyat değişikliğinin (1 pip) maliyetidir! Çok basit bir şekilde hesaplanır: 1.00(lot)/ 1.36030(şu anda eurodolar kotasyonu) = 0.7351 euro.
sadece burada, pazarlama bilgisi yoluyla bir istek üzerine, yen olanlar hariç tüm çiftler için 10 döndürür)))
Bu formülü nereden aldınız?
sadece burada, pazarlama bilgisi yoluyla bir istek üzerine, yen olanlar hariç tüm çiftler için 10 döndürür)))
Bu formülü nereden aldınız?
Tüm formülleri kendim yapıyorum ve şimdi grafiğimden aldım.
Bu da Doki'den:
MODE_TICKVALUE
on altı
Mevduat para birimi cinsinden enstrümanın fiyatındaki minimum değişikliğin tutarı
Hesaplar paylaşılmaz.
Tüm formülleri kendim yapıyorum ve şimdi programımdan aldım.
Bu da Doki'den:
MODE_TICKVALUE
on altı
Mevduat para birimi cinsinden enstrümanın fiyatındaki minimum değişikliğin tutarı
Hesaplar paylaşılmaz.
Senaryo ile tam olarak bunu ayarladım ve her zaman 10 döndürür ) 1 Eurodollar lotu için 1 puan gerçekten 10 dolara mal oluyor, yani her şey doğru.
Ve sadece onlara göstermekten utananlar hesaplamaları paylaşmazlar, matematik - Afrika'da matematik
Ve evet, bu durumda formül yeniden yapılmalı, doğru olacak MODE_TICKVALUE = MODE_LOTSIZE * MODE_TICKSIZE - eurodollar için, haçlar ve yen için formül biraz farklı
Dürüst olmak gerekirse, nasıl başvuracağımı anlamadım. Milimetrenin sonuna kadar kalıyor, neredeyse her şey bittiğinde durmak ayıp.
Görev, nesnenin zamanı (2. parametre+3600sn>akım)||(1. parametrenin zamanı - 2. parametrenin zamanı)<3600sn ise fiyatı diziye yazmak değildir.
Neden bir hatayı taklit edelim?
Hata - sistemin sınırlamaları/arızaları ile ilgili herhangi bir nedenle, algoritmayı çalıştırmanın ve sonucu bazı (elbette sınırlı, ancak - ) garantilerle almanın mümkün olmadığını bildirmek içindir. FillAndPrint() işlevi sadece anlamlıdır ve hatalı bir durumun ne anlama geldiğini ve ne olmadığını gösterir. Bir hata oluştuğunda, bir sonuç üretmeye bile çalışmaz. Herhangi bir hata oluşmazsa, sonuca güvenilebilir. "Hata/hata değil" mantığı bu şekilde oluşturulmalıdır.
Burada algoritmada bir değişiklik de gereklidir: ayrıca ek bir filtre uygulamak da gereklidir.
Bunu şu şekilde yapmalısınız:
İlk önce, nesnelerin türlerine ve parametrelerine göre "filtreledik", mevcut tüm nesnelerden yalnızca ihtiyacımız olanları seçtik ve ardından ek bir filtre uyguladık. Bir insanın bunu nasıl yapacağı hakkında. Bir insan böyle bir şey yapar, değil mi?
Bu tür her küçük alt görev için ayrı bir işlev kendini önerir.
Çok özel durumlar dışında, örneğin ikiye katlamanız gerekiyorsa, ifadelerde sayı olmamalıdır ve bu ikiye katlama algoritmanın doğasında vardır. Ardından 2 sayısını doğrudan ifadelerde kullanabilirsiniz. Ve diğer benzer çok nadir durumlarda.
Aksi takdirde, anımsatıcılar kullanılmalıdır. İlk olarak, belirli bir yerde neler olduğunun anlaşılmasını büyük ölçüde geliştirirler ve bu nedenle hata yapma olasılığının azaltılmasına katkıda bulunurlar. İkincisi, değerin kendisi tek bir yerde ayarlanır ve gerekirse değiştirmek kolaydır ve sayının algoritmada tekrar tekrar kullanıldığı ve anımsatıcı kullanılmadan kullanıldığı duruma kıyasla hata yapmak imkansız olacaktır. , algoritmanın çeşitli yerlerindeki sayıları düzenlemeniz gerekir.
Çalıştır sonucu:
Hiçbir nesne bulunamadı. Her iki anımsatıcının değerlerini 10 kat artırarak 36000'e (10 saat) çıkaralım ve tekrar çalıştıralım:
Bir eğilim çizgisi filtrelemeyi zaten "geçti". Şimdi ilk anımsatıcının değerini 3600'e geri yükleyelim ve çalıştıralım:
Artık her iki trend çizgisinin de filtrelemeyi "geçtiği" görülebilir. Bu arada, programın sadece bir dalını değil, tüm dallarını (parçalarını) bu şekilde ayıklamanızı tavsiye ederim.
Bir şekilde resmileştirmeye yardımcı olmak için, bunu bu şekilde açıklamaya çalışacağım. Program plana benzer görünüyor.
Planın her bir ana noktası, daha küçük bir alt planın noktalarına bölünebilir. Küçük - daha da küçük. En küçük alt planların öğeleri doğrudan yürütülür.
Her plan, alt plan ve hatta en küçük alt planların öğeleri, programdaki işlevlere karşılık gelir. En küçük alt planlardaki öğeler, yalnızca sistem işlevlerini çağıran veya hatta onları çağırmayan "son" işlevlerine karşılık gelir, örneğin yukarıda tartışılanlarda AddValue() veya DiffInSecs() örnek olarak kullanılabilir. Yukarıdaki alt planların öğeleri, aşağıdaki alt planların öğelerini uygulayan işlevleri çağıran işlevlere karşılık gelir. Yukarıda tartışılanlarda bunlar MassTrendNumber(), AddValueIfFound(), AddValueIfFiltered()'dir. "Düşük seviyeli" fonksiyonlar "yüksek seviyeli" fonksiyonları çağırmamalı ve "yüksek seviyeli" fonksiyonlar genellikle birkaç seviye aşağı atlamamalı, yani fonksiyonları çağırmalı, temelde sadece bir seviye aşağıda olmalıdır. "Düşük seviye" için bu kural "yüksek seviye" için olduğundan çok daha katıdır.
Programlarınızı, bu şekilde bir ağaç yapısında birbirine bağlanan (kısa) işlevler şeklinde, içindeki eylemleri, kimin kimi çağırdığı anlamında düzenleyerek oluşturmaya çalışın.
Bu programda, dejenere bir ağaç ortaya çıktı: bir dal birkaç kez "dallanıyor". Ve iki küçük dala değil, bire "dallanır". Ancak mesele şu ki, "üst düzey" işlevler sürekli olarak "düşük düzeyli" işlevler olarak adlandırılır. Bu modifikasyonda, bu yapıya bir seviye daha ekledim, bir tane daha "dallanmamış dal" - AddValueIfFiltered().
https://www.mql5.com/en/forum/152102 Bir sorum var
Her şey doğru! 4 basamaklı bir alıntı ile her zaman 1 gösterdi ve 5 basamaklı bir alıntı ile şimdi 10 gösteriyor, çünkü pipler 10 kat daha fazla (ve daha küçük) oldu. Ve bir min.tick'in maliyeti mevcut fiyattan hesaplanmalıdır!
Şimdi 4 işaretim var, eurodolar'da 1 lot 1 puan maliyeti 10 dolar ve bu her zaman böyle olmuştur. Haçlar için maliyet, formülün biraz daha karmaşık olduğu 8 ila 16 arasında olacaktır.
Örneğin, euro sterlin için pazarlama bilgisi 16.984 döndürdü, sterlin döviz kuru dolara = 1.6984, yani 1 euro sterlin puan maliyeti 1 sterlin dolar ile bir sterlin dolar noktasının maliyetinin çarpımıdır, bu her zaman 10.0'dır (100000). *0.0001=10.0 veya 100000 * 0.00010 \u003d 10.0 - istediğiniz gibi).
Tüm bu hesaplamalar, yalnızca hesabınız dolar cinsinden ise doğrudur:
Bu durumda xUSD (EURUSD, GBPUSD vb.) için tickvalue = lot*point = 100000*0.0001 = 10.0
USDx (USDCHF, USDJPY vb.) için tick değeri = lot*puan/Teklif = 100000*0.01/101.93=9.8107
çapraz kurlar için xUSD/yUSD (EURGBP) tick değeri = Bid(yUSD)*lot*puan = 1.6980*100000*0.0001 = 16.98
xUSD/USDy (EURJPY) için tickvalue = lot*point/Bid(USDy) = 100000*0.01/101.91=9.8126 kesişir
Şimdi 4 işaretim var, eurodolar'da 1 lot 1 puan maliyeti 10 dolar ve bu her zaman böyle olmuştur. Haçlar için maliyet, formülün biraz daha karmaşık olduğu 8 ila 16 arasında olacaktır.
Örneğin, euro sterlin için pazarlama bilgisi 16.984, eurodolar kuru = 1.3604, sterlin dolar karşısında = 1.6984 döndürdü, yani 1 euro sterlin pip maliyeti 1 sterlin dolar ile bir sterlin dolar pipinin maliyetinin çarpımıdır, bu her zaman 10.0 (100000 * 0 ,0001=10.0 veya 100000*0.000010=10.0 - ne istersen).
Her şey basit ve pratik! Ve 4 haneli bir alıntı olduğu zaman, henüz program yazmadım, o yüzden yargılayamam. :)
İyi geceler!