MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 176
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
Okudum ama dosyayı döngüden önce açacağımı asla tahmin edemezdim)
Belki yanlış okumuşumdur)Ticaret yaparken Pinbar'dan uzaklaştıran bir danışman var. Robot, para birimlerinde doğru şekilde çalışır ve CFD'lerde kesinlikle öngörülemez.
Söyle bana, lütfen, bu nasıl olabilir?
Ticaret yaparken Pinbar'dan iten bir robot yazdım. Robot, para birimlerinde doğru şekilde çalışır ve CFD'lerde kesinlikle öngörülemez.
Söyle bana, lütfen, bu nasıl olabilir?
İşte böyle bir Pinbar algılama işlevi
Bunu danışmana eklediğimde, işlev (yani danışman, işlev koşullarına karşılık gelen çubuktan sonraki bir sonraki mum üzerinde anlaşmaları ayarlar) döviz çiftlerinde mükemmel bir şekilde çalışır. Ve CFD'lerde, anlaşmalar her yerde belirlenir.
CFD'ler ve döviz çiftleri arasındaki bu özelliğin farkı nedir?
İşte böyle bir Pinbar algılama işlevi
Bunu danışmana eklediğimde, işlev (yani danışman, işlev koşullarına karşılık gelen çubuktan sonraki bir sonraki mum üzerinde anlaşmaları ayarlar) döviz çiftlerinde mükemmel bir şekilde çalışır. Ve CFD'lerde, anlaşmalar her yerde belirlenir.
CFD'ler ve döviz çiftleri arasındaki bu özelliğin farkı nedir?
Her şeyden önce, &&'yi {} ile değiştirin, böylece koşulların her biri kendi bloğunda olur - daha sonra kontrol edilen sonucu her bir blokta yazdırabilirsiniz - günlüğe hangi değerleri aldığınıza bakın.
Teşekkürler, tavsiyeye uydum - nerede aptal olduğumu anladım. Danışmanın beş basamaklı numara yapması ve CFD'nin sadece 2 basamak olması nedeniyle, danışmanın tepkisini en az 50 puan bekliyordum, ancak zaten 5'ten başladım. Künt.
Lütfen bu an için bana yardım et.
Kodda şu kısım var:
MathAbs (Close1-Open1)/(High1-Low1)
Bazen Yüksek1=Düşük1 olur. Ardından test cihazı sıfıra bölmenin imkansız olduğu kritik bir hata veriyor.
Nasıl gezilir?
Teşekkürler, tavsiyeye uydum - nerede aptal olduğumu anladım. Danışmanın beş basamaklı numara yapması ve CFD'nin sadece 2 basamak olması nedeniyle, danışmanın tepkisini en az 50 puan bekliyordum, ancak zaten 5'ten başlayarak aldım. Künt.
Lütfen bu an için bana yardım et.
Kodda şu kısım var:
Bazen Yüksek1=Düşük1 olur. Ardından test cihazı sıfıra bölmenin imkansız olduğu kritik bir hata veriyor.
Nasıl gezilir?
Düşünemezsin:
Merhaba, derlerken bir sorunla karşılaştım:
geçersiz OnTick()
{
çift minimum fiyat=999999, mp, maksimum fiyat=-999999;
for(int i=0; i<10; i++)
{
mp = iLow(Simbol(), PERIOD_CURRENT, i);
if (mp < minfiyat)
minfiyat=mp;
}
for(int i=0; i<10; i++)
{
mp = iYüksek(Simbol(), PERIOD_CURRENT, i);
if (mp > maksimum fiyat)
maksimum fiyat=mp;
}
Comment("Minprice: " + DoubleToString(minprice, 5) + "\n"+
"Maxprice: " + DoubleToString(maxprice, 5));
}
Ders kitabında derleyicinin iLow ve iHigh'da yemin ettiği bu işlevler vardır ve Simbol() değişkeni orada satır modunda doğrudur, ancak orada örnekte başka bir sorunu çözerler. Yukarıdaki kodda neyi düzeltmem gerekiyor? Sıkıştım ve test etmek için döngüyü derleyemiyorum.
DERS KİTABIDAN
Mevcut tamamlanmamış çubuğa karşılık gelen değeri almanız gerekiyorsa, o zaman
start_pos=0 ve count=1 belirterek çağrının ilk formunu kullanabilirsiniz.
Misal:
#özellik telif hakkı "2009, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#property description "Yüksek[i] ve Düşük[i] değerlerini görüntüleme örneği"
#özellik açıklaması "rastgele seçilen çubuklar için"
çift Yüksek[],Düşük[];
//+------------------------------------------- --------------------+
//| Belirli bir çubuk numarası için Düşük Al |
//+------------------------------------------- --------------------+
çift iLow ( dize sembolü , ENUM_TIMEFRAMES zaman çerçevesi, int indeksi)
{
çift düşük = 0;
ArraySetAsSeries(Düşük,doğru);
int kopyalanmış=CopyLow(sembol,zaman çerçevesi,0,Barlar(sembol,zaman çerçevesi),Düşük);
if(copied>0 && index<copied) low=Düşük[indeks];
dönüş(düşük);
}
//+------------------------------------------- --------------------+
//| Belirli bir çubuk numarası için Yüksek Alın |
//+------------------------------------------- --------------------+
double iHigh ( dize sembolü ,ENUM_TIMEFRAMES zaman çerçevesi,int indeksi)
{
çift yüksek=0;
ArraySetAsSeries(Yüksek,doğru);
int kopyalanmış=CopyHigh(sembol,zaman çerçevesi,0,Barlar(sembol,zaman çerçevesi),Yüksek);
if(copied>0 && index<copied) high=Yüksek[index];
dönüş(yüksek);
}
//+------------------------------------------- --------------------+
Merhaba, derlerken bir sorunla karşılaştım:
geçersiz OnTick()
{
çift minimum fiyat=999999, mp, maksimum fiyat=-999999;
for(int i=0; i<10; i++)
{
mp = iLow(Simbol(), PERIOD_CURRENT, i);
if (mp < minfiyat)
minfiyat=mp;
}
for(int i=0; i<10; i++)
{
mp = iYüksek(Simbol(), PERIOD_CURRENT, i);
if (mp > maksimum fiyat)
maksimum fiyat=mp;
}
Comment("Minprice: " + DoubleToString(minprice, 5) + "\n"+
"Maxprice: " + DoubleToString(maxprice, 5));
}
Ders kitabında derleyicinin iLow ve iHigh b değişkeni Simbol () 'de yemin ettiği bu işlevler var, işte satır modunda, doğru, ancak orada örnekte başka bir sorunu çözüyorlar. Yukarıdaki kodda neyi düzeltmem gerekiyor? Sıkıştım ve test etmek için döngüyü derleyemiyorum.
DERS KİTABIDAN
Mevcut tamamlanmamış çubuğa karşılık gelen değeri almanız gerekiyorsa, o zaman
start_pos=0 ve count=1 belirterek çağrının ilk formunu kullanabilirsiniz.
Misal:
#özellik telif hakkı "2009, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#property description "Yüksek[i] ve Düşük[i] değerlerini görüntüleme örneği"
#özellik açıklaması "rastgele seçilen çubuklar için"
çift Yüksek[],Düşük[];
//+------------------------------------------- --------------------+
//| Belirli bir çubuk numarası için Düşük Al |
//+------------------------------------------- --------------------+
çift iLow ( dize sembolü , ENUM_TIMEFRAMES zaman çerçevesi, int indeksi)
{
çift düşük = 0;
ArraySetAsSeries(Düşük,doğru);
int kopyalanmış=CopyLow(sembol,zaman çerçevesi,0,Barlar(sembol,zaman çerçevesi),Düşük);
if(copied>0 && index<copied) low=Düşük[indeks];
dönüş(düşük);
}
//+------------------------------------------- --------------------+
//| Belirli bir çubuk numarası için Yüksek Alın |
//+------------------------------------------- --------------------+
double iHigh ( dize sembolü ,ENUM_TIMEFRAMES zaman çerçevesi,int indeksi)
{
çift yüksek=0;
ArraySetAsSeries(Yüksek,doğru);
int kopyalanmış=CopyHigh(sembol,zaman çerçevesi,0,Barlar(sembol,zaman çerçevesi),Yüksek);
if(copied>0 && index<copied) high=Yüksek[index];
dönüş(yüksek);
}
//+------------------------------------------- --------------------+
bu kelimede bir hata var Simbol(), Symbol() veya _Symbol yazmanız gerekiyor
bu kelimede bir hata var Simbol() veya Symbol() veya _Symbol yazmanız gerekiyor
Teşekkürler, Simbol hatası, Symbol'ün doğru yazılmasıyla düzeltildi. iLow ve iHigh işlevlerinde bir sorun var. fotoğrafı gör
% olarak MQL 4 ve MQL 5 arasındaki genel benzerlik nedir? Aksi takdirde, her döngüde MQL4 video eğitimlerinde kafamı bu şekilde kıracağım.