![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
Evet.
teşekkürler
O zaman neden normalleştirme ve MathFloor olmadan çalışıyor?
Giriş 0,95 ise?
{
double ask2 = 1.55557 , ask3 = 1.55558 , bid = 1.55555 ;
Print ( "(ask2 + bid)/2 = " , (ask2 + bid)/ 2 );
Print ( "(ask3 + bid)/2 = " , (ask3 + bid)/ 2 );
int avPrice_2 = ( int ) NormalizeDouble ((ask2/ _Point + bid/ _Point )/ 2 , 0 );
int avPrice_3 = ( int ) NormalizeDouble ((ask3/ _Point + bid/ _Point )/ 2 , 0 );
Print ( "avPrice_2 = " , avPrice_2);
Print ( "avPrice_3 = " , avPrice_3);
} /*******************************************************************/
2017.02 . 27 00 : 03 : 54.456 00 (EURUSD.m,H1) (ask3 + bid)/ 2 = 1.555565
2017.02 . 27 00 : 03 : 54.456 00 (EURUSD.m,H1) avPrice_2 = 155556
2017.02 . 27 00 : 03 : 54.456 00 (EURUSD.m,H1) avPrice_3 = 155557
"Sor ve Bid'i alıyoruz ve ortalama fiyatı hesaplıyoruz. Fark tek ise (3,5,7,9 vb.) o zaman ortalama fiyatı Bid'e daha yakın eşitleriz."
Görev ayarlanmadı:
- bu da tuhaf yayılma anlamına gelir. Puan için 1,3,..,9 kez veya Puan için 1,3,..,17,57 kez? Yuvarlama tek segmentler içinde çalışır...
- "Teklif'e daha yakın" ne anlama geliyor? Özellikle, yayılma, örneğin Point'ten 43 kat daha büyükse. Bid'i neyle eşitlemekle ilgili?
İlk olarak, problemde netlik gereklidir, ancak o zaman kesin bir karar vermek mümkün olacaktır.
Aynı zamanda çift/tek'ten bahsettiğimiz için bu kavramın anlam kazandığı tam sayılara geçmek mantıklı olacaktır.
double Ask , Bid ,Middle; // Уже известные курсы Ask и Bid, вычисляемый средний курс
int Mash,Spr; // Множитель перехода к целым числам. Для 4-разрядного EURUSD 10000. И целочисленный спред
Mash= MathRound ( 1.0 / _Point );
Spr= MathRound (( Ask - Bid )*Mash); // Целочисленный спред
// Придаем конкретность среднему курсу. Предполагаем, что "ближе к Бид" значит "ближайший меньший среднего арифметического Ask и Bid, кратный Point"
Spr=Spr >> 1 ; // Целочисленный спред, деленный на 2 с отбрасыванием остатка
Middle= Bid +Spr*_ Point ;
// Если предположение неверно, канва последующих разборов такая
if ((Spr & 1 ) != 0 )) { // Спред нечетный
}
else { // Спред четный
}
"Sor ve Bid'i alıyoruz ve ortalama fiyatı hesaplıyoruz. Fark tek ise (3,5,7,9 vb.) o zaman ortalama fiyatı Bid'e daha yakın eşitleriz."
Görev ayarlanmadı:
Aslında, görev basit görünüyor? Ve bir öğrenci yapabilir mi? :-) Ben de öyle düşünmüştüm.
Ancak sunucudan alınan fiyatlarda, veri normalizasyonunda ve diğerlerinde - o kadar karanlık köşeler var ki, hiç bahsetmiyorum bile.
9 yıldır mql'de programlama yapıyorum - ve normalleştirme ile hiç problem yaşamadım çünkü doğru algıladım. ve 1 milinoktaya kadar doğruluk her zaman doğru çalıştı.
Ama görevler var. yüksek hassasiyet gerektirir.
Ve şartlar var.
Yani:
Bu nedenle, fiyatı normalleştirmemiz gerekiyor, böylece bir denge varsa (ve eşit bir dağılımla olacak! :-)), o zaman fiyatı en alt noktaya daha yakın bir şekilde ortalamalıyız, yani. açık arttırma.
Örneğin:
Ve her şey basit görünüyor? her şey işe yaramalı ve ben kendim aptal mıyım? ve aptal olmadığımı umarak 2 gün oturdum. Yazılar, çiftler ve tribbles ve beebles hakkında anlayış .................
Ancak! aynı formülle, çift spreadler ve tek spreadler ile - bazı durumlarda - formül işe yaramadı. (yukarıyı görmek) .
Dahil olmak üzere, para birimleri üzerinde çalışabilir, ancak petrol üzerinde çalışamaz.
JPY üzerinde çalışabilir ve zamanın bir noktasında USD üzerinde çalışmayabilir.
Belki ayın etkisine bakıyor? afrika'da hava durumu ....................
Ancak formülün çalıştığından emin olduğunuzda bu 1 milipipi fark etmiyorsunuz. ve sen ..... üzerinde çalışıyorsun ve sonra "Bam, bam, bang, bam" ve bu milipunktik kaçmaya karar verdi ya da müdahale eden ikinci milipunktik'i aramaya karar verdi.
BENİM NACİZANE FİKRİME GÖRE.
Bana aptal, yetersiz programcı, okul çocuğu diyebilirsin...
Ama gerçek devam ediyor.
Farklı kombinasyonlarda - çift değerlerde bir hata var. Aynı zamanda, float ile her şey açıktır.
Niye ya? kendimi anlayana kadar. Yardım çok iyidir ve ben her zaman yardıma başvururum, bu normaldir. ve 10 yıl içinde topluluktan yardım isteyebilirim. Bu iyi. Ve bazı tuzaklar biliyorsam yardım çağrısına cevap veririm.Bu normaldir.
Tabii ki, bu tür testlerden sonra, bunun neden olduğunu kendim anlamak için "ek bir araştırma" yapacağım.
Sabrınız ve yardımlarınız için hepinize teşekkür ederim.
Aslında, görev basit görünüyor? Ve bir öğrenci yapabilir mi? :-) Ben de öyle düşünmüştüm.
Ancak sunucudan alınan fiyatlarda, veri normalizasyonunda ve diğerlerinde - o kadar karanlık köşeler var ki, hiç bahsetmiyorum bile.
9 yıldır mql'de programlama yapıyorum - ve normalleştirme ile hiç problem yaşamadım çünkü doğru algıladım. ve 1 milinoktaya kadar doğruluk her zaman doğru çalıştı.
Ancak! aynı formülle, çift spreadler ve tek spreadler ile - bazı durumlarda - formül işe yaramadı. (yukarıyı görmek) .
Farklı kombinasyonlarda - çift değerlerde bir hata var. Aynı zamanda, float ile her şey açıktır.
Metaquotes'a göre veri normalleştirmesinin bununla ne ilgisi var? Programcılar için bu terim, tamamen farklı bir şey anlamına gelir, hiç yuvarlama değil. IEEE 754 standardını örneğin buradan okuyun: http://www.softelectro.ru/ieee754.html . Normalleştirilmemiş gerçek sayılar, 4 bayt uzunluk olması durumunda 1.17549421*10^(-38)'e kadar ve 8 bayt uzunluk olması durumunda 4....*10^(-324) aralığında yer alır, Onlarla çok nadiren karşılaşıyoruz ve zaten rotayı hesaplarken kesinlikle değil. OrderSend'i çağırmak ve ardından bu fonksiyonun gereksinimlerine göre yuvarlamak gerekli olacaktır. Görev gerektirmedikçe yuvarlama kullanmayın.
Hatalar double veya float formatında değil, kullanılan işlemlerde oluşur. Formülün sorunu çözmemesi, formülün soruna karşılık gelmediğini gösterir. Daha fazla yok. Normalleştirme olmadan normal bir hesaplama sırasında hangi hataların meydana geldiğini söyleyin (bu, yukarıdaki mesajımdan bir parça):
Spr= MathRound (( Sor - Bid )/ _Point ); Yay=Yay >> 1 ; Orta= Teklif + Yay*_ Puan ;
Aslında, görev basit görünüyor? Ve bir öğrenci yapabilir mi? :-) Ben de öyle düşünmüştüm.
Ancak sunucudan alınan fiyatlarda, veri normalizasyonunda ve diğerlerinde - o kadar karanlık köşeler var ki, hiç bahsetmiyorum bile.
9 yıldır mql'de programlama yapıyorum - ve normalleştirme ile hiç problem yaşamadım çünkü doğru algıladım. ve 1 milinoktaya kadar doğruluk her zaman doğru çalıştı.
Ama görevler var. yüksek hassasiyet gerektirir.
Ve şartlar var.
Yani:
Bu nedenle, fiyatı normalleştirmemiz gerekiyor, böylece bir denge varsa (ve eşit bir dağılımla olacak! :-)), o zaman fiyatı en alt noktaya daha yakın bir şekilde ortalamalıyız, yani. açık arttırma.
Örneğin:
Ve her şey basit görünüyor? her şey işe yaramalı ve ben kendim aptal mıyım? ve aptal olmadığımı umarak 2 gün oturdum. Yazılar, çiftler ve tribbleler ve beebles hakkında anlayış .................
Ancak! aynı formülle, çift spreadler ve tek spreadler ile - bazı durumlarda - formül işe yaramadı. (yukarıyı görmek) .
Dahil olmak üzere, para birimleri üzerinde çalışabilir, ancak petrol üzerinde çalışamaz.
JPY üzerinde çalışabilir ve zamanın bir noktasında USD üzerinde çalışmayabilir.
Belki ayın etkisine bakıyor? afrika'da hava durumu ....................
Ancak formülün çalıştığından emin olduğunuzda bu 1 milipipi fark etmiyorsunuz. ve sen ..... üzerinde çalışıyorsun ve sonra "Bam, bam, bang, bam" ve bu milipunktik kaçmaya karar verdi ya da müdahale eden ikinci milipunktik'i aramaya karar verdi.
BENİM NACİZANE FİKRİME GÖRE.
Beni bir aptal, bir yetersiz programcı, bir okul çocuğu olarak düşünebilirsin...
Ama gerçek devam ediyor.
Farklı kombinasyonlarda - çift değerlerde bir hata var. Aynı zamanda, float ile her şey açıktır.
Niye ya? kendimi anlayana kadar. Yardım çok iyidir ve ben her zaman yardıma başvururum, bu normaldir. ve 10 yıl içinde topluluktan yardım isteyebilirim. Bu iyi. Ve bazı tuzaklar biliyorsam yardım çağrısına cevap veririm.Bu normaldir.
Tabii ki, bu tür testlerden sonra, bunun neden olduğunu kendim anlamak için "ek bir araştırma" yapacağım.
Sabrınız ve yardımlarınız için hepinize teşekkür ederim.