Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 441
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
Lütfen bana neyi yanlış yaptığımı söyle!?
Sıfır çubuğunu hesaba katmadan - fiyatın MA'yı en son geçtiği zamandan beri kaç çubuk geçtiğini hesaplamak gerekir.
if(Bars>1400)
{
int Stop;
double MATcycle;
for(int i=0;i!=1000 || Stop!=1; i++)
{
MATcycle=iMA(Symbol(),TFT,pMAT,shiftMAT,typeMAT,priceMAT,i+1);
if(MATcycle<High[i+1] && MATcycle>Low[i+1])
{
Stop=1;
Print("MATcycle=",MATcycle," i=",i);
}
else return (0);
}
Lütfen bana neyi yanlış yaptığımı söyle!?
Sıfır çubuğunu hesaba katmadan - fiyatın MA'yı en son geçtiği zamandan beri kaç çubuk geçtiğini hesaplamak gerekir.
if(Bars>1400)
{
int Stop;
double MATcycle;
for(int i=0;i<1000 || Stop==1; i++)
{
MATcycle=iMA(Symbol(),TFT,pMAT,shiftMAT,typeMAT,priceMAT,i+1);
if(MATcycle<High[i+1] && MATcycle>Low[i+1])
{
Stop=1;
Print("MATcycle=",MATcycle," i=",i);
}
else return (0);
}
Anladığım kadarıyla kesişimi tanımlayıp değeri stop=1 olarak ayarladıktan sonra döngü hemen çıkıyor. O zaman daha ileri gitmeniz ve kavşağın meydana geldiği mumun numarasını hatırlamanız gerekir. Onlar.
Kendiniz yazmak daha kolay:
Mum sayısını belirleyen sendin. Sayı = 2 ise ve mevcut olanı dikkate almıyorsanız, kesişimden bu yana bir mum çubuğu oluşmuştur (iyi veya istediğiniz gibi yorumlayın).
Anladığım kadarıyla kesişimi tanımlayıp değeri stop=1 olarak ayarladıktan sonra döngü hemen çıkıyor. O zaman daha ileri gitmeniz ve kavşağın meydana geldiği mumun numarasını hatırlamanız gerekir. Onlar.
Kendin yazmak daha kolay:
Mum sayısını belirleyen sendin. Sayı = 2 ise ve mevcut olanı hesaba katmazsak, kesişimden bu yana bir mum çubuğu oluşmuştur (peki, ya da istediğiniz gibi yorumlayın).
teşekkürler bende öyle yaptım
int Stop=0;
if(Bars>1400)
{
double MATcycle;
for(int i=1;(i!=1000 || Stop==0); i++)
{
MATcycle=iMA(Symbol(),TFT,pMAT,shiftMAT,typeMAT,priceMAT,i);
if(MATcycle<=High[i] && MATcycle>=Low[i])
{
Print("MATcycle=",MATcycle," i=",i);
Stop=i;
break;
}
}
}
Lütfen söyle bana, test cihazının böyle bir göstergesi hayatta gerçek mi? Ve 3000 $ depo ile yıl için iyi mi yoksa kötü bir sonuç mu?
teşekkürler bende öyle yaptım
int Stop=0;
if(Bars>1400)
{
double MATcycle;
for(int i=1;(i!=1000 || Stop==0); i++)
{
MATcycle=iMA(Symbol(),TFT,pMAT,shiftMAT,typeMAT,priceMAT,i);
if(MATcycle<=High[i] && MATcycle>=Low[i])
{
Print("MATcycle=",MATcycle," i=",i);
Stop=i;
break;
}
}
}
Böyle yazmamalısın çünkü son 1000 çubuk için kesişme olmadıysa, ilk olarak, döngü daha ileri gidecektir, ikinci olarak, döngü/diğer hatalar mümkündür, çünkü hikaye biterse ve kesişme olmazsa döngüden çıkış olmaz çünkü Dur = 0. Yukarıda belirttiğim gibi yazmak daha iyidir.
Böyle yazmamalısın çünkü son 1000 çubuk için kesişme olmadıysa, ilk olarak, döngü daha ileri gidecektir, ikinci olarak, döngü/diğer hatalar mümkündür, çünkü hikaye biterse ve kesişme olmazsa döngüden çıkış olmaz çünkü Dur = 0. Yukarıda belirttiğim gibi yazmak daha iyidir.
Ancak "veya" işareti çalışmıyor - duruma göre, arama 1000 bar olacak veya istenen sonuç bulunur bulunmaz sona erecek. Yoksa istenen sonuç bulunursa 1000'e ulaşmadan sona erecek mi - MA fiyatını geçmek?
|| parantez içindeki koşullardan en az biri doğruysa, o zaman döngü tekrarlanacaktır, bu nedenle, i >= 1000, ancak dur = 0 olduğunda bile, döngü devam edecek, i artmaya devam edecek, bu da yol açacaktır. yanlış MA değerlerine (tarihin ötesine geçilmesi durumunda). Ve istenen sonucu bulurken tamamlanması için , operatör molası sorumludur;
Merhaba! 2015.09.19_02:13 Moskova saati. ArrayResize() işlevinde, her durumda derleyici yazar
dizinin boyutunun tersi -- virgül bekleniyor, en azından int yazın, en azından değil. Ve eğer int yazmazsanız, o zaman şunu yazar: "-
tipsiz beyan. Ve & bağlantısını ve köşeli parantezleri kaldırdı - yardımcı oldu!
Uyarılar: Normal yazıldığında, derleyici şunu yazdı: tanımlayıcı gizler
küresel düzeyde duyuru. Ve küresel düzeyde tanımlayıcı bildirimini kaldırdığımda,
yaz: hata, bildirilmemiş tanımlayıcı. Ve High[] ve Low[] dizilerini HighP[] ve LowP[] olarak değiştirdim. Değil
yardım etti. Derleyici aynı şeyi yazar. 02:27 Moskova saati. Bir ekran görüntüsü dosyası ekliyorum.
Merhaba! 2015.09.19_02:13 Moskova saati. ArrayResize() işlevinde, her durumda derleyici yazar
dizinin boyutunun tersi -- virgül bekleniyor, en azından int yazın, en azından değil. Ve eğer int yazmazsanız, o zaman şunu yazar: "-
tipsiz beyan. Ve & bağlantısını ve köşeli parantezleri kaldırdı - yardımcı oldu!
Uyarılar: normal yazıldığında, derleyici şunu yazdı: tanımlayıcı gizler
küresel düzeyde deklarasyon Ve küresel düzeyde tanımlayıcı bildirimini kaldırdığımda,
yaz: hata, bildirilmemiş tanımlayıcı. Ve High[] ve Low[] dizilerini HighP[] ve LowP[] olarak değiştirdim. Değil
yardım etti. Derleyici aynı şeyi yazar. 02:27 Moskova saati. Bir ekran görüntüsü dosyası ekliyorum.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Yeni Başlayanlardan Sorular
Karputov Vladimir , 2015.09.17 18:46