![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
Tünaydın.
MQL5'i anlamaya çalışıyorum. exp_tema.mq5 ayrıştırıldı ve kodu yeniden düzenledi. Şimdi her mumun MA günlüğüne yazdırılmalıdır (son 20 ). Ancak günlüğün neden bazı girişleri eksik olduğunu anlamıyorum. fark edildi , günlükte ma[3] yoksa, o zaman ma[13] olmayacaktır. Bu neden oluyor? Hata nerede?
Tam burada
açıkça eksik kontroller:
bir vizyoner olmanıza gerek yok.
Günlükte ara değişkenlerin neye eşit olduğunu görebilmemiz için kodda ayrıntılı bir Print yapın.
#property copyright "Copyright 2011, "
#property link " http://www.mql5.com "#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double Vhod=0;
Print("Начало_Vhod="+DoubleToString(Vhod,2));
Vhod=linfunc(15);
Print("Конец_Vhod="+DoubleToString(Vhod,2));
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
double linfunc(double b) // имя функции и список параметров
{
double a=1;
while((a/b)<1 && !IsStopped())//-------------------
{
Print("а="+DoubleToString(a,2)+", b="+DoubleToString(b,2)+", a/b="+DoubleToString(a/b,2));
a=a+1;
}
Print("а="+DoubleToString(a,2)+", b="+DoubleToString(b,2)+", a/b="+DoubleToString(a/b,2));
Print("a+b="+DoubleToString(a+b,2));
double f=a+b;
// составной оператор
return(f); // возвращаемое значение
}
//+------------------------------------------------------------------+
İşte kod.
İşte onun baskısı
GM 0 1 (EURUSD,M1) 18:11:11 Start_Vhod=0.00
FO 0 1 (EURUSD,M1) 18:11:13 a=1.00, b=15.00, a/b=0.07
JF 0 1 (EURUSD,M1) 18:11:13 a=2.00, b=15.00, a/b=0.13
CQ 0 1 (EURUSD,M1) 18:11:13 a=3.00, b=15.00, a/b=0.20
EH 0 1 (EURUSD,M1) 18:11:13 a=4.00, b=15.00, a/b=0.27
KS 0 1 (EURUSD,M1) 18:11:13 a=5.00, b=15.00, a/b=0.33
PJ 0 1 (EURUSD,M1) 18:11:13 a=6.00, b=15.00, a/b=0.40
PE 0 1 (EURUSD,M1) 18:11:13 a=7.00, b=15.00, a/b=0.47
HL 0 1 (EURUSD,M1) 18:11:13 a=8.00, b=15.00, a/b=0.53
ÇF 0 1 (EURUSD,M1) 18:11:13 a=9.00, b=15.00, a/b=0.60
JR 0 1 (EURUSD,M1) 18:11:13 a=10,00, b=15.00, a/b=0.67
FK 0 1 (EURUSD,M1) 18:11:13 a=11.00, b=15.00, a/b=0.73
OP 0 1 (EURUSD,M1) 18:11:13 a=12.00, b=15.00, a/b=0.80
MI 0 1 (EURUSD,M1) 18:11:13 a=13.00, b=15.00, a/b=0.87
KF 0 1 (EURUSD,M1) 18:11:13 a=14.00, b=15.00, a/b=0.93
EO 0 1 (EURUSD,M1) 18:11:13 a=15.00, b=15.00, a/b=1.00
DJ 0 1 (EURUSD,M1) 18:11:14 a+b=30.00
RL 0 1 (EURUSD,M1) 18:11:17 End_Vhod=0,00
NH 2 1 (EURUSD,M1) 18:11:24 hata ayıklama sonlandırıldı
EX5 hata ayıklamasını editörden değil, doğrudan terminalde çalıştırırsanız - aynı sonuç mu?
Hata ayıklama EX5'i ekleyebilir misiniz?
İşte onun baskısı
GM 0 1 (EURUSD,M1) 18:11:11 Start_Vhod=0.00
FO 0 1 (EURUSD,M1) 18:11:13 a=1.00, b=15.00, a/b=0.07
JF 0 1 (EURUSD,M1) 18:11:13 a=2.00, b=15.00, a/b=0.13
CQ 0 1 (EURUSD,M1) 18:11:13 a=3.00, b=15.00, a/b=0.20
EH 0 1 (EURUSD,M1) 18:11:13 a=4.00, b=15.00, a/b=0.27
KS 0 1 (EURUSD,M1) 18:11:13 a=5.00, b=15.00, a/b=0.33
PJ 0 1 (EURUSD,M1) 18:11:13 a=6.00, b=15.00, a/b=0.40
PE 0 1 (EURUSD,M1) 18:11:13 a=7.00, b=15.00, a/b=0.47
HL 0 1 (EURUSD,M1) 18:11:13 a=8.00, b=15.00, a/b=0.53
ÇF 0 1 (EURUSD,M1) 18:11:13 a=9.00, b=15.00, a/b=0.60
JR 0 1 (EURUSD,M1) 18:11:13 a=10,00, b=15.00, a/b=0.67
FK 0 1 (EURUSD,M1) 18:11:13 a=11.00, b=15.00, a/b=0.73
OP 0 1 (EURUSD,M1) 18:11:13 a=12.00, b=15.00, a/b=0.80
MI 0 1 (EURUSD,M1) 18:11:13 a=13.00, b=15.00, a/b=0.87
KF 0 1 (EURUSD,M1) 18:11:13 a=14.00, b=15.00, a/b=0.93
EO 0 1 (EURUSD,M1) 18:11:13 a=15.00, b=15.00, a/b=1.00
DJ 0 1 (EURUSD,M1) 18:11:14 a+b=30.00
RL 0 1 (EURUSD,M1) 18:11:17 End_Vhod=0,00
NH 2 1 (EURUSD,M1) 18:11:24 hata ayıklama sonlandırıldı
Oynanabilir değil.
Win7x64
MT5 x64 yapı 687
EX5 hata ayıklamasını editörden değil, doğrudan terminalde çalıştırırsanız - aynı sonuç mu?
Bir hata ayıklama EX5 ekleyebilir misiniz?
Evet, ilginç çıkıyor, bir test cihazından çalıştırırsam, danışman olarak yazdırmak için de 30 verirse 30 verir.
Hata ayıklamaya geri dönersem 0 var.
MetaSürücü
Hangi yapıda ve hangi formda (ifade için özür dilerim) ortaya çıktı.
Yine de, hiç kimse bu mucizeyi yeniden üretemezse, muhtemelen vidyushka'yı düzenlemek gerekli olacaktır.
Tam burada
açıkça eksik kontroller:
Teşekkürler, eklemeye çalışacağım.
İşte bir video (sadece orada, 720'den daha yüksek bir çözünürlük seçin, aksi takdirde her şey sabunla uyanır)
https://www.youtube.com/watch?v=Prpw6DUYvjY&feature=youtu.be
Win7 64bit MT5 687 yapı
Öğrendiğim gibi, dönüşün 0 ürettiği etki yalnızca hata ayıklayıcıda gerçekleşiyor gibi görünüyor.
Aynı zamanda, yalnızca "çağrı ile adım" düğmesini kullanırsanız, işe yarıyor gibi görünüyor.
while döngüsüne girip "step to the gun" butonu ile çıkarsanız 0 çıkışında stabil çalışmıyor.
Genel olarak, videoda her şey görünür, ancak nasıl olunacağı ve ne yapılacağı hala benim için net değil (ve neden sadece benimle?)
Win7 64bit MT5 687 yapı
Optimizasyon sırasında anlaşılmaz karakterler çıktı
Dikey Optimizasyon Grafiği sekmesinde tüm değerler -1'dir.
Tam burada
açıkça eksik kontroller:
Ancak, hala arabelleklerle ilgili sorunlarım var, okudum - her şey açık, ancak kodda nasıl kullanılacağı çok açık değil. Zor değilse, bunu koda yapıştırabilir misin?