Hatalar, hatalar, sorular - sayfa 74

 

EA'yı test ederken, yanlışlıkla, bence, test cihazındaki Sleep() işlevinin hatalı çalışmasına rastladım. Sonuç şudur:

Toplam kâr belirtilenden daha büyükse (CloseAll() işlevi) EA tüm pozisyonları 23:00'te kapatır. Bir sonraki pozisyonu kapattıktan sonra 10 saniyelik bir gecikme gerçekleştirilir. Uyku(10000) şeklinde.

İşte günlükte sahip olduklarımız:

FP 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Tümünü Kapat Kar: 3030.66
JD 0 İşlem 04:31:04 anında satış 0.80 EURAUD'u 1.56474'ten (1.56474 / 1.56558 / 1.56474)
JH 0 İşlemler 04:31:04 #85 anlaşma 0.80 EURAUD sat 1.56474'ten yapıldı (85 numaralı sıraya göre)
HL 0 İşlem 04:31:04 anlaşma yapıldı [#85, 1.56474'ten 0.80 EURAUD satıldı]
HI 0 İşlem 04:31:04 emir gerçekleştirildi satış 0.80'den 1.56474'ten [#85 satış 0.80 EURAUD'dan 1.56474'ten]
QE 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 EURAUD'a göre pozisyon kapatılacak
PN 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
FG 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Uyku 10 sn.
RO 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
QD 0 İşlem 04:31:04 anında 90.444 (90.417 / 90.444 / 90.417) 1.00 USDJPY satın al
NS 0 İşlemler 04:31:04 #86 anlaşma 90.444'ten 1.00 USDJPY satın alındı (86 numaralı sıraya göre)
MJ 0 İşlem 04:31:04 anlaşması yapıldı [#86, 90.444]'ten 1.00 USDJPY satın aldı
JS 0 İşlem 04:31:04 emri 90.444'te 1.00 alış gerçekleştirildi [#86 90.444]'te 1.00 USDJPY alış
JL 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 USDJPY'ye göre pozisyon kapatılacak
JI 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
PN 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Uyku 10 sn.
DF 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
QN 0 İşlem 04:31:04 anında 0.80 AUDUSD 0.90001 (0,8967 / 0,90001 / 0.89967) satın al
IH 0 İşlemler 04:31:04 #87 anlaşma 0.80001'den 0.80 AUDUSD satın alındı (87 numaralı sıraya göre)
KQ 0 İşlem 04:31:04 anlaşması yapıldı [#87 0,90001'den 0,80 AUDUSD satın al]
RL 0 İşlem 04:31:04 emri 0,90001'de 0,80 alış gerçekleştirildi [#87 0,90001'de 0,80 AUDUSD satın]
EG 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 AUDUSD ile pozisyon kapatılacak
LP 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
JI 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Uyku 10 sn.

NQ 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0

Gördüğünüz gibi, gecikmeden önceki ve sonraki zaman aynıdır. Ancak bu yalnızca dakikalar ve saniyeler TimeCurrent() == 0 ise gerçekleşir.

Değilse, kayma iyi çalışıyor. Örneğin:

MD 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 KapatTüm Kar: 3382.28
KQ 0 İşlem 04:30:39 anında 1.44090'dan 0.70 EURUSD sat (1.44090 / 1.44108 / 1.44090)
IE 0 İşlemler 04:30:39 #27 anlaşma 1.44090'dan 0.70 EURUSD sat (27 numaralı siparişe göre)
CI 0 İşlem 04:30:39 anlaşma yapıldı [#27 1.44090'da 0.70 EURUSD satmak]
EL 0 İşlem 04:30:39 emir gerçekleştirildi 0.70 sat 1.44090'da [#27 1.44090'da 0.70 EURUSD sat]
DH 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 EURUSD'ye göre pozisyon kapatılacak
JR 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:7
MK 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Uyku 10 sn.
EP 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:15
DE 0 İşlem 04:30:39 anında satış 0,80 AUDUSD 0.91951 (0.91951 / 0.91993 / 0.91951)
CJ 0 İşlemler 04:30:39 #28 anlaşma 0,80 AUDUSD 0.91951'den satıldı (28 numaralı siparişe göre)
HR 0 İşlem 04:30:39 anlaşması yapıldı [#28 0,80 AUDUSD'yi 0,91951'den sattı]
HH 0 İşlem 04:30:39 sipariş 0,80'i 0,91951'den sattı [#28 0,80 AUDUSD'yi 0,91951'den sattı]
LS 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 AUDUSD ile pozisyon kapatılacak
QL 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:15
ED 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Uyku 10 sn.
LO 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:25
DD 0 İşlem 04:30:39 1.56727'den 0.60 EURAUD satın al (1.56632 / 1.56727 / 1.56632)
LN 0 İşlemler 04:30:39 #29 anlaşma 0,60 EURAUD satın al 1.56727 yapıldı (29 numaralı sıraya göre)
FK 0 İşlem 04:30:39 anlaşma yapıldı [#29, 1.56727'den 0.60 EURAUD satın al]
IR 0 İşlem 04:30:39 sipariş gerçekleştirildi 0.60 1.56727'den [#29 1.56727'den 0.60 EURAUD satın alın]
RM 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 EURAUD'a göre pozisyon kapatılacak
FE 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:25
GN 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Uyku 10 sn.

QE 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:35

Pozisyon kapanış kodu:

 if (m_trade[j].PositionClose(m_symbol[j].Name()))
           {
            PosCloseCount--;
             printf ( "Position by %s to be closed" ,m_symbol[j].Name());
             MqlDateTime   dt_struct;
             TimeCurrent (dt_struct);
             printf ( "%u:%u:%u" ,dt_struct.hour,dt_struct.min,dt_struct.sec);
             Sleep ( 10000 );
             Print ( "Sleep 10 cek." );
             TimeCurrent (dt_struct);
             printf ( "%u:%u:%u" ,dt_struct.hour,dt_struct.min,dt_struct.sec);
           }

CloseAll işlevini çağırmak:

   MqlDateTime   dt_struct;
   TimeCurrent (dt_struct);
   if (dt_struct.hour== 2 3 && m_account.Profit()>InpProfitToClose)
     {
      Trade=false; Print ( "CloseAll Profit: " ,m_account.Profit());
       while ( PositionsTotal ()> 0 )
         CloseAll();

koşulu şu şekilde değiştirirsek

 if (dt_struct.hour== 23 && dt_struct.min> 0 && m_account.Profit()>InpProfitToClose)
o zaman hata yok.
Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Общие функции / Sleep - Документация по MQL5
 
joo :
Yani, mesajım zaten düşündüğüm gibi boşuna değil mi?

Evet. StringToTime davranışını düzelttik. Teşekkür ederim.

 
Valmars :

EA'yı test ederken, yanlışlıkla, bence, test cihazındaki Sleep() işlevinin hatalı çalışmasına rastladım. Sonuç şudur:

Çok ilginç. Göreceğiz.
 
"Haberler" sekmesini açtım ve orada ... - bazı yanlış haberler. Bir şey mi kaçırıyorum?
 
x100intraday :
"Haberler" sekmesini açtım ve orada ... - bazı yanlış haberler. Bir şey mi kaçırıyorum?

Haber almak istediğiniz dilleri ayarlayın.


 
Rosh :

Haber almak istediğiniz dilleri ayarlayın.


Numara. Görünüşe göre mt5 forumunun "haberleri" oraya akıyor, Forex haberleriyle ilgisi yok. Son zamanlarda, sadece otomatik güncelleme yapmadım, mt5 dağıtım kitini tekrar indirdim ve neredeyse bir haftalığına kurdum. Hafta içi nasıldı bilmiyorum çünkü Haberler sekmesine girmedim ama şimdi öğrendim:

Garip finans haberleri

 
x100intraday :

Numara. Görünüşe göre mt5 forumunun "haberleri" oraya akıyor, Forex haberleriyle ilgisi yok. Son zamanlarda, sadece otomatik güncelleme yapmadım, mt5 dağıtım kitini tekrar indirdim ve neredeyse bir haftalığına kurdum. Hafta içi nasıldı bilmiyorum çünkü Haberler sekmesine girmedim ama şimdi öğrendim:

Eksik forex haberleri yerine MQL5.com sitesinin haberlerinin yayınlandığı demo sunucumuzda (başkalarının haberlerini ücretsiz dağıtma hakkımız yoktur).

Bunları görmek istemiyorsanız, sağ tıklama menüsündeki haber kategorileri bölümünde ilgili onay kutusunu devre dışı bırakmanız yeterlidir.

 

Otomatik güncellemeden sonra daha önce çalışan Expert Advisor, zaman serisini kopyalayamadığı mesajlarını vermeye başladı. Sorun, Expert Advisor'ın boşaltılıp yeniden yüklenmesiyle çözüldü. S: Bu otomatik güncelleme sonucu her zaman beklenmeli mi yoksa düzeltilecek bir terminal hatası mı?

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Программы MQL5 / Выполнение программ - Документация по MQL5
 
Yedelkin :

Otomatik güncellemeden sonra daha önce çalışan Expert Advisor, zaman serisini kopyalayamadığı mesajlarını vermeye başladı. Sorun, Expert Advisor'ın boşaltılıp yeniden yüklenmesiyle çözüldü. S: Bu otomatik güncelleme sonucu her zaman beklenmeli mi yoksa düzeltilecek bir terminal hatası mı?

Daha fazla ayrıntı belirtin (günlükler, ekran görüntüleri vb.), lütfen.

Bu olmadan, makul bir cevap verilemez.

 
Renat :

Daha fazla ayrıntı belirtin (günlükler, ekran görüntüleri vb.), lütfen.

Bu olmadan, makul bir cevap verilemez.

TAMAM. MQ sunucusundaki demo hesabı, günlük dosyası ekli (20100729.log), otomatik güncelleme başlama saati 20:54, 22:36'da Expert Advisor'ı sildi ve bir dakika içinde yükledi.

EA'nın basit bir tür kontrolü vardır:

 if ( CopyHigh ( Symbol (), 0 , 0 ,bars,high)<bars || CopyClose ( Symbol (), 0 , 0 ,bars,close)<bars || CopyLow ( Symbol (), 0 , 0 ,bars,low)<bars || CopyTime ( Symbol (), 0 , 0 ,bars,time)<bars)
  {
    Print ( "Can't copy timeseries!" );
    return ;
  }

Buna göre, otomatik güncellemeden sonra mesajlar belirdi (dosya 20100729copy.log). Genel olarak, bu daha önce oldu, ancak bir şekilde dikkat etmedi.

Expert Advisor'ı yeniden başlattıktan sonra, grafikte kaybolan açılış fiyatları ve zararı durdur satırları da göründü.

Belki söylenenlere eklenecek başka bir şey var?