MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 242
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
Görünüşte basit bir sorunu çözemiyorum. Grafikte bir yerde MA'nın bir geçişi vardı. Kavşaktan sonra barı buluyoruz. Bu çubuktan mevcut olana kadar olan çubukların sayısı nasıl sayılır?
Görünüşte basit bir sorunu çözemiyorum. Grafikte bir yerde MA'nın bir geçişi vardı. Kavşaktan sonra barı buluyoruz. Bu çubuktan mevcut olana kadar olan çubukların sayısı nasıl sayılır?
Çalışıyor gibi görünüyor (en azından yorum ekranda doğru olanı gösteriyor). " Çubuk sayısı " sayesinde bir çözüm bulmuş gibi görünüyor. Gerekli çubuğun tarih saatini belirlemek için iTime işlevini kullandım. Anahat şöyle görünür:
geçersiz OnTick()
{
int nBarsUp, nBarsDn;
datetime date_dn = iTime(NULL, 0, IntersectionDN());
datetime date_up = iTime(NULL, 0, IntersectionUp());
tarihsaat tarih_1 = iTime(NULL, 0, 1);
nBarsUp = Çubuklar(Symbol(), 0, date_up, date_1);
nBarsDn = Çubuklar(Symbol(), 0, date_dn, date_1);
Comment("Uzun çubuk sayısı: " + nBarsUp + "\n"+
"Kısa çubuk sayısı: " + nBarsDn);
}
//+------------------------------------------- --------------------+
int KavşakDN()
{
for(int i = 0; i < 36; i++)
{
if(iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i) > iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i)
&& iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i-1) < iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i-1))
dönüş(i-1);
}
dönüş(-1);
}
int IntersectionUp()
{
for(int i = 0; i < 36; i++)
{
if(iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i) < iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i)
&& iMA(Symbol(), 0, 5, 0, MODE_EMA, PRICE_CLOSE, i-1) > iMA(Symbol(), 0, 21, 0, MODE_EMA, PRICE_CLOSE, i-1))
dönüş(i-1);
}
dönüş(-1);
}
Çalışıyor gibi görünüyor (en azından yorum ekranda doğru olanı gösteriyor). " Çubuk sayısı " sayesinde bir çözüm bulmuş gibi görünüyor. Gerekli çubuğun tarih saatini belirlemek için iTime işlevini kullandım. Anahat şöyle görünür:
Döngüde bir kavşak arıyorsunuz. Ve sıfır bardan tarihin derinliklerine. Böylece IntersectionXX() işlevi size çubuk numarasını döndürür.
Bütün bunlar ne için?
Döngüde bir kavşak arıyorsunuz. Ve sıfır bardan tarihin derinliklerine. Böylece IntersectionXX() işlevi size çubuk numarasını döndürür.
Bütün bunlar ne için?
Bar numarası, evet. Ama çubukların sayısını bilmem gerekiyor - bundan tarihin gerisindeki bazı çubuklardan 0'a kadar. Kısacası, çubuğun MA'dan ayrılma açısına ihtiyacım var. Ama hesaplamak bana göre mümkün olmadığı için (dikey olarak fiyat, yatay olarak birbirinden belli bir mesafeye yerleştirilen çubuklar uyumsuz değerlerdir). Bir zamanlar forumda bir katsayı getirme önerisi vardı - fiyat farkının çubuk sayısına bölünmesi. Fikir bana sağlam geliyor. Onu hayata geçirmek istiyorum ama çaydanlığın kendisinden beri bir şeyler bulmaya ve deneme yanılma yoluyla kendim denemeye çalışıyorum.
PS Metne MQL4 dilinde kod nasıl eklenir (sizinki gibi, benim gibi değil)?Kimse böyle bir problemle nasıl başa çıkılacağını sormayacak mı?
TF'yi değiştirdikten sonra panel bükülüyor
Bar numarası, evet. Ama çubukların sayısını bilmem gerekiyor - bundan tarihin gerisindeki bazı çubuklardan 0'a kadar. Kısacası, çubuğun MA'dan ayrılma açısına ihtiyacım var. Ama hesaplamak bana göre mümkün olmadığı için (dikey olarak fiyat, yatay olarak birbirinden belli bir mesafeye yerleştirilen çubuklar uyumsuz değerlerdir). Bir zamanlar forumda bir katsayı getirme önerisi vardı - fiyat farkının çubuk sayısına bölünmesi. Fikir bana sağlam geliyor. Onu hayata geçirmek istiyorum ama çaydanlığın kendisinden beri bir şeyler bulmaya ve deneme yanılma yoluyla kendim denemeye çalışıyorum.
PS Metne MQL4 dilinde kod nasıl eklenir (sizinki gibi, benim gibi değil)?Merhaba! İki eksi s x sayı q ve w yanlış bir şekilde karşılaştırılır, eşit olduklarında if operatörü birinin diğerinden büyük olduğunu düşünür.Hata nedir? q = -0.0002 ve w de -0.0002 olduğunda, res12=yanlış, neden?
Merhaba! İki eksi s x sayı q ve w yanlış bir şekilde karşılaştırılır, eşit olduklarında if operatörü birinin diğerinden büyük olduğunu düşünür.Hata nedir? q = -0.0002 ve w de -0.0002 olduğunda, res12=yanlış, neden?
Merhaba! İki eksi s x sayı q ve w yanlış bir şekilde karşılaştırılır, eşit olduklarında if operatörü birinin diğerinden büyük olduğunu düşünür.Hata nedir? q = -0.0002 ve w de -0.0002 olduğunda, res12=yanlış, neden?
Bana öyle geliyor ki her şeyi normalleştirmek gerekiyor, normalleşme olmadan çift birbiriyle karşılaştırılamaz gibi görünüyor.
NormalizeDouble(q<=w) iseBana öyle geliyor ki her şeyin normalleştirilmesi gerekiyor, normalleşme olmadan çift birbiriyle karşılaştırılamaz gibi görünüyor.
teşekkürler, işe yaradı, sadece q ve w'yi ayrı ayrı normalleştirdim!