Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 759
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
Merhaba! Lütfen bana if esle ifadesinin neden bazen benim için çalışmadığını söyleyin.
İşte bir örnek:
Neresi:
H3, seviyenin fiyat değeridir
fiyat - cari fiyat
Sonuç olarak, fiyatın bu seviyeye ulaştığı ortaya çıkıyor (bazen bu seviyede duruyor), ancak Uyarı çalışmıyor.
Bana neyin yanlış olduğunu söyle?
Günaydın.
Program şuna benziyor.
Derlendiğinde şunları üretir:
'Ozero.mq4' Ozero.mq4 1 1
'OrderClose' dönüş değeri kontrol edilmelidir Ozero.mq4 46 13
'sayı'dan 'string'e örtük dönüştürme Ozero.mq4 49 117
0 hata(lar), 2 uyarı(lar) 1 3
"Sonuçlar" sekmesinde siparişlerin açılıp kapandığını görebilirsiniz.
1 2014.08.25 00:00 1 satın al 0.10 1.6550 0.0000 0.0000 0.00 10000.00
2 2014.08.25 06:30 Kapat 1 0.10 1.6562 0.0000 0.0000 0.12 10000.12
3 2014.08.25 06:31 2 satın al 0.10 1.6564 0.0000 0.0000 0.00 10000.12
4 2014.08.25 10:00 Kapanış 2 0.10 1.6574 0.0000 0.0000 0.10 10000.22
5 2014.08.25 10:00 3 satın al 0.10 1.6576 0.0000 0.0000 0.00 10000.22
6 2014.08.25 12:58 Kapat 3 0.10 1.6586 0.0000 0.0000 0.10 10000.32
7 2014.08.25 12:58 4 satın al 0.10 1.6590 0.0000 0.0000 0.00 10000.32
8 2014.08.26 13:13 Durakta 4 0.10 1.6576 0.0000 0.0000 -0.14 10000.18
8 - Test cihazını kapatarak çalışmayı yarıda kestim.
Ardından, "Günlük" e bakın:
2014.10.31 07:46:44.837 GBPUSD,M15: 312876 ms (toplam süre 324436 ms) içinde işlenen 4453 tick olayı (5608 bar, 340128 bar durumu)
2014.10.31 07:46:44.837 2014.08.26 13:13 Test eden: 4. sipariş kapalı
2014.10.31 07:46:44.798 2014.08.26 13:13 Görsel test cihazı durdu
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: SİPARİŞ AÇIK 4
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: açık #4 1.6590'dan 0.10 GBPUSD satın al tamam
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: İlk pozisyonun açılması
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: Pozisyon kapanmadı. Bu çöp oluyor: 4108
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: OrderClose hatası 4108
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: OrderClose işlevi için bilinmeyen bilet 3
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: Kapat #3 0.10 GBPUSD 1.6576'dan 1.6586 fiyattan satın alın
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: SİPARİŞ AÇIK 3
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: açık #3 1.6576'dan 0.10 GBPUSD satın al tamam
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: İlk pozisyonun açılması
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: Pozisyon kapanmadı. Bu çöp oluyor: 4108
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: OrderClose hatası 4108
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: OrderClose işlevi için bilinmeyen bilet 2
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: 2'yi kapat 0.10 GBPUSD'yi 1.6564'ten 1.6574'ten al
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: SİPARİŞ AÇIK 2
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: #2 açık 1.6564'te 0.10 GBPUSD al
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: İlk pozisyonun açılması
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: Pozisyon kapanmadı. Bu çöp oluyor: 4108
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: OrderClose hatası 4108
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: OrderClose işlevi için bilinmeyen bilet 1
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: kapanış #1 0.10 GBPUSD 1.6550'den 1.6562 fiyatından satın alın
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: SİPARİŞ AÇIK 1
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: açık #1 1.6550'de 0.10 GBPUSD satın al tamam
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: İlk pozisyonun açılması
2014.10.31 07:41:31.958 Ozero girişleri: gLot=0.1; gNoktası=0,001;
Şimdi tamamen kafam karıştı. Bir yandan, siparişler kapalıdır, bu tablodan ve "sonuçlardan" görülebilir, diğer yandan, günlüğe bakılırsa, kod hatalarla yürütülür: ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
Göl.
Aynı siparişi iki kez kapatmaya çalışıyorsunuz. Üstü çıkarın.
Günaydın.
İki satır kaldırıldı. Her şey çalışıyor. Ve her şey hem sonuçlarda hem de günlüklerde grafikte doğru bir şekilde görüntüleniyor.
Soru: Derlerken verir
'Ozero.mq4' Ozero.mq4 1 1
'OrderClose' dönüş değeri kontrol edilmelidir Ozero.mq4 46 13
0 hata(lar), 1 uyarı(lar) 1 2
Derleyici ne hakkında uyarıyor? 46. satır OrderClose(OrderTicket(),OrderLots(),_Bid,15);
Göl.
Çocuklar bana bugün ortaya çıkan bir aksaklıktan dolayı söyle.
EA, Cuma günü piyasa kapanmadan 15 dakika önce alım satımı durdurma yeteneğine sahiptir.
Yeni bir gün göründüğünde, EA Cuma olup olmadığını kontrol eder, ardından bugün StringToTime("23:59")-15*60'da alım satımı durdururuz.
Strateji test cihazında bu işlev doğru çalışıyor, ancak gerçek hayatta tamamen farklı bir resim görüyorum - danışman Cuma geldiğinde ilk tik ile ticareti durduruyor.
İşte uzmanların dergisinden baskılar:
Komisyoncu #1, demo:
0 05:59:47.731 Ölçekleyici GBPAUDpt,M1: Cuma Bitiş = 2014.10. 23 23:44:00
Broker №2, gerçek:
0 03:00:11.999 Ölçekleyici EURUSD,M1: Cuma Bitiş = 2014.10. 23 23:44:00
Yani, ilk tikte bugünün günlük çubuğu (24 Ekim Cuma) göründüğünde, EA
"23:59" dizesini bugünün gününü atamak yerine dünle zamana dönüştürür.
Ancak EA Cuma günü gün ortasında yeniden başlatılırsa, işin tamamlanma zamanını doğru bir şekilde belirleyecektir.
Bu sorunun nedenini buldum: https://forum.mql4.com/33023
Beklendiği gibi, bu pratik olarak StringToTime işlevinde bir hatadır. Tüm belirtiler birleşir. Bu işlev, "23:59" dizesini bir MT4 tarihi değil, yerel bir PC tarihi olan bir tarih saatine dönüştürür. Ve test cihazında, bildiğiniz gibi, yerel PC'nin tarihi öykünür ve terminalin saatine eşittir. Bu nedenle, test cihazında her şey olması gerektiği gibi çalışıyor, ancak demo / gerçek olanda bir aksaklık ve kayıplar ortaya çıkıyor. Tabii ki, belgeler tarihin nereden geldiğini söylemiyor ve yukarıdaki bağlantı, bu sorunun 4 yıl önce dile getirildiğini gösteriyor, ancak görünüşe göre üst alıntılar umursamıyor.
Bir soru daha. şunu doğru anlıyorum:
1. siparişlerin numaralandırılması "0" dan başlar.
2. Böyle bir kod, manuel olarak, hatta programlı olarak açmama rağmen kesinlikle tüm siparişleri kapatacak mı? Onlar. programın bu bölümünün kapatamayacağı bir emir var mı?
Göl.
Ekranda metin kaydırma yapan var mı? Örneğin - şöyle şöyle bir sipariş açılır/kapanır/değiştirilir vs.. Şöyle şöyle haberler var... ?
Yazık değilse, lütfen bir kod parçası gösterin.
Senks!
Alttaki daha iyi. Önce sipariş seçilmelidir.
Böyle daha iyi:
Ekranda metin kaydırma yapan var mı? Örneğin - şöyle şöyle bir sipariş açılır/kapanır/değiştirilir vs.. Şöyle şöyle haberler var... ?
Yazık değilse, lütfen bir kod parçası gösterin.
Senks!
Boş bir gösterge penceresinde dikey kaydırma yaptım. İşte fonksiyon:
Tek renkli mesaj kullanımına örnek olarak (farklı kelimeler için tek satırda 4 renk olabilir):
Win_Inform adlı grafikte boş bir gösterge olmalıdır.