28!!! döviz çiftleri, 1 uzman. Yine kâse, ama kimse bunu bana göstermedi. + DEMO HESABI - sayfa 11

 
 
Tamamen aynı kapak.
 
MetaQuotes :
Kaynak kodları ve kanıtları olmayan resimlerden oluşan bir geçit töreni...


2Roş

5. sayfada gösterilen Uzman Danışmanınızda, tüm t/f'lerin Teklif ve Kapanışları arasında bir uyumsuzluk olup olmadığını kontrol ettiniz. Bu tür tutarsızlıkların olmamasını, test cihazında geleceğe bakmanın imkansız olduğunun teyidi olarak yorumluyorsunuz. O zaman bile, bu bağlantı bana garip geldi. Benim bakış açıma göre, Close'un davranışını değil, daha yüksek t / f'nin Yüksek ve Düşük davranışını test etmek gerekiyor. Ve MQ'nun yukarıdaki çok adil olmayan suçlamasından sonra, buna biraz zaman ayırmaya karar verdim. Gecikmeli de olsa.

Aşağıda, dakika çizelgesinde saatin veya günün mevcut Yüksek ve Düşük'ünü oluşturan danışmanın kodu yer almaktadır. Ardından, her tikte, bunları H1 veya D1 t/f'den alınan saat veya günün Yüksek ve Düşük değerleriyle karşılaştırır. Tutarsızlık durumunda, verileri günlüğe ve bir dosyaya gönderir.

 
//+------------------------------------------------------------------+
//|                                           Simple Prospection.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2007, Yurixx"
#property link      ""
double curHi,curLo,HiH1,LoH1;
int    mm,hh,dd,curM1,curH1,curD1,kk,nn,handle;
string str,mHi,mLo,hHi,hLo;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  handle = FileOpen("FU.csv",FILE_CSV|FILE_WRITE," ");
  if(handle<1) { Print("File FU.csv not found, Error:", GetLastError());
                 return(false);   }
  if (Period()>PERIOD_M1)
  {  Print("Период тестирования не соответствует задаче");
     return(-1);
  }
  Print("Период тестирования ",Period()," минут");
  FileWrite(handle,"Date","Time","curHi","HiH1","curLo","LoH1");
  nn=D'2007.07.12 23:58:59';
  FileWrite(handle,TimeToStr(nn,TIME_DATE|TIME_SECONDS),
                   TimeSeconds(nn),TimeMinute(nn),TimeHour(nn),TimeDay(nn));
  nn=D'2007.07.13 00:58:59';
  FileWrite(handle,TimeToStr(nn,TIME_DATE|TIME_SECONDS),
                   TimeSeconds(nn),TimeMinute(nn),TimeHour(nn),TimeDay(nn));
  nn=D'2007.07.13 00:02:00';
  FileWrite(handle,TimeToStr(nn,TIME_DATE|TIME_SECONDS),
                   TimeSeconds(nn),TimeMinute(nn),TimeHour(nn),TimeDay(nn));
  curHi=0.0;
  curLo=1000.0;
  curD1=-1;
  curH1=-1;
  curM1=-1;
  nn=0;//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {  
//----
  mm = TimeMinute(TimeCurrent());
  hh = TimeHour(TimeCurrent());
  dd = TimeDay(TimeCurrent());
  if (mm!=curM1)
  {  if (hh!=curH1)
     {  if (dd!=curD1)
        {  curHi=NormalizeDouble(Bid,Digits);
           curLo=NormalizeDouble(Bid,Digits);
           curD1=dd;
        }
        //curHi=NormalizeDouble(Bid,Digits);
        //curLo=NormalizeDouble(Bid,Digits);
        curH1=hh;
     }
     curM1=mm;
  }
  if (NormalizeDouble(Bid,Digits)>curHi) curHi=NormalizeDouble(Bid,Digits);
  if (NormalizeDouble(Bid,Digits)<curLo) curLo=NormalizeDouble(Bid,Digits);
  //HiH1 = iHigh(NULL,PERIOD_H1,0);
  //LoH1 =  iLow(NULL,PERIOD_H1,0);
  HiH1 = iHigh(NULL,PERIOD_D1,0);
  LoH1 =  iLow(NULL,PERIOD_D1,0);
  HiH1 = NormalizeDouble(HiH1,Digits);
  LoH1 = NormalizeDouble(LoH1,Digits);
  str = TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
  mHi = ", curHi=" + DoubleToStr(curHi,Digits);
  mLo = ", curLo=" + DoubleToStr(curLo,Digits);
  hHi = ", HiH1="  + DoubleToStr(HiH1, Digits);
  hLo = ", LoH1="  + DoubleToStr(LoH1, Digits);
  if (HiH1!=curHi||LoH1!=curLo)
  {  Print(str,mHi,hHi,mLo,hLo);
     FileWrite(handle,TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),curHi,HiH1,curLo,LoH1);
  }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
{  Print("Работа закончена");
   FileClose(handle);
//---- done
   return(0);
}

Ve bu, 2007.07.10 ile 2007.07.14 arasındaki dönemde EURUSD, M1'de bu Uzman Danışmanın çalışması sırasında elde edilen günlüğün bir parçasıdır. Danışmanın metninden de görebileceğiniz gibi, karşılaştırma günlük verilerle yapıldı. Ancak saatlik verilerle karşılaştırıldığında durum daha iyi değil. Geleceğe bakma olasılığının teyidini almak ya da böyle bir olasılığın olmadığından emin olmak istedim. Ancak, tamamen üçüncü bir şey ortaya çıktı.

Resimden de görebileceğiniz gibi, test cihazının log'a yazdırdığı süre ile Expert Advisor'ın periyodik olarak gösterdiği süre birbirinden farklılık göstermektedir. Ayrıca, bazı anlaşılmaz geri dönüşler var. Verilen parçada test cihazının 2007.07.13 00:58 zamanı 2007.07.12 00:58, 2007.07.13 00:02, 2007.07 saatleri arasında dört defa geçmektedir. 13 00:04, 2007.07.13 00:06 ve 2007.07.13 00:07. Ve danışman şu anda her seferinde 2007.07.12 23:58:59'u gösteriyor.

Bu anlarda Yüksek ve Düşük verileri arasındaki eşlik eden tutarsızlığın, sadece zaman içindeki bu başarısızlıklardan kaynaklanmış olması mümkündür.

Ayrıca init() fonksiyonunda bulunan bir dosyaya test yazdırma işlemine de dikkat etmenizi öneririm. Bu baskı, test cihazında saniyelerin çalışmadığını gösterir. Buna göre saniye modunda TimeToStr () ve TimeSeconds() işlevi çalışmaz. Belki de amaçlanan buydu, ama o zaman neden hem test eden hem de danışman verileri saniyelerle yazdırıyor?

Bu anlaşılmaz zamanda bu verilerin nereden alındığı tamamen anlaşılmaz olduğundan, Yüksek ve Düşük verileri arasındaki tutarsızlık sorusunu gündeme bile getirmiyorum.

Ve ilerisi. Bazı nedenlerden dolayı, 2007.07.10'dan 2007.07.14'e değil, 2007.07.09'dan 2007.07.14'e kadar olan aralıkta test yaparken, bazı anlaşılmaz saçmalıklar içeri akıyor - eski telefon numaralarından veriler hiç elde edilmiyor, yani, HiH1 ve LoH1 değişkenlerinin tümü sıfırdır.

Belki de yanlış yaptığım yer burasıdır?

 
Merhaba Yurix.
Uzman Danışmanınızı koddaki hiçbir şeyi değiştirmeden çalıştırdım. İşte dosyadaki tüm veriler. çıkardığı:
Tarih Saat curHi HiH1 curLo LoH1
2007.07.12 23:58:00 0 58 23 12
2007.07.13 00:58:00 0 58 0 13
2007.07.13 00:02:00 0 2 0 13
İşte günlük:
2007.08.13 09:54:51 2007.07.13 22:59 Basit Arama EURUSD,M1: Tamamlandı
2007.08.13 09:54:48 2007.07.10 00:00 Basit Arama EURUSD,M1: Test süresi 1 dakika
2007.08.13 09:54:48 Test için Basit Arama başladı
2007.08.13 09:54:45 Basit Arama: başarıyla yüklendi
2007.07.10'dan 2007'ye kadar testler sırasında uyumsuzluk hatası yok. 07.14. Doğru, sonra geçen haftadan özel bir montaj testi yaptığımı hatırladım. 01 Ağustos'taki olağan yapı 208'de (şimdi LibeUpdate kullanarak bir terminali güncelledim), ayrıca hata yok:
2007.08.13 10:13:04 2007.07.13 22:59 Basit Arama EURUSD,M1: Tamamlandı
2007.08.13 10:13:04 2007.07.10 00:00 Basit Arama EURUSD,M1: Test süresi 1 dakika
2007.08.13 10:13:04 Test için Basit Arama başladı
Gerçek şu ki, test etmeden önce, Tarih Merkezi'nden eksik verileri indirdim (bu terminali birkaç aydır çalıştırmadım) ve ardından tüm zaman dilimlerini yeniden hesapladım - Tarih Merkezi'nde "İndir" e tıkladım. ikinci kez, bu durumda tüm t / f'leri otomatik olarak yeniden hesaplamayı teklif eder ve dönem dönüştürücüye gerek yoktur (birdenbire insanlar bu özelliği bilmezler).


Ancak ondan önce, günlükte hata çıktıları vardı:

2007.08.13 10:08:19 1999.05.26 02:01 Basit Arama GBPUSD,M1: Tamamlandı
2007.08.13 10:08:18 1999.01.04 09:31 Basit Arama GBPUSD, M1: 1999.01. 04 09:31:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:30 Basit Arama GBPUSD, M1: 1999.01. 04 09:30:00, CurHi=1.6718, HiH1=1.6718, CurLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:29 Basit Arama GBPUSD, M1: 1999.01. 04 09:29:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:28 Basit Arama GBPUSD, M1: 1999.01. 04 09:28:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:27 Basit Arama GBPUSD, M1: 1999.01. 04 09:27:00, CurHi=1.6718, HiH1=1.6718, CurLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:26 Basit Arama GBPUSD, M1: 1999.01. 04 09:26:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:25 Basit Arama GBPUSD, M1: 1999.01. 04 09:25:00, CurHi=1.6718, HiH1=1.6718, CurLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:24 Basit Arama GBPUSD, M1: 1999.01. 04 09:24:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:23 Basit Arama GBPUSD, M1: 1999.01. 04 09:23:00, curHi=1.6718, HiH1=1.6718, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:22 Basit Arama GBPUSD, M1: 1999.01. 04 09:22:00, CurHi=1.6718, HiH1=1.6718, CurLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:21 Basit Arama GBPUSD, M1: 1999.01. 04 09:21:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:20 Basit Arama GBPUSD, M1: 1999.01. 04 09:20:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:19 Basit Arama GBPUSD, M1: 1999.01. 04 09:19:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:18 Basit Arama GBPUSD, M1: 1999.01. 04 09:18:00, curHi=1.6702, HiH1=1.6702, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:17 Basit Arama GBPUSD, M1: 1999.01. 04 09:17:00, curHi=1.6701, HiH1=1.6701, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:16 Basit Arama GBPUSD, M1: 1999.01. 04 09:16:00, curHi=1.6701, HiH1=1.6701, curLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:15 Basit Arama GBPUSD, M1: 1999.01. 04 09:15:00, CurHi=1.6687, HiH1=1.6687, CurLo=1.6682, LoH1=1. 6684
2007.08.13 10:08:18 1999.01.04 09:14 Basit Arama GBPUSD, M1: 1999.01. 04 09:14:00, curHi=1.6687, HiH1=1.6687, curLo=1.6682, LoH1=1. 6686
2007.08.13 10:08:18 1999.01.04 09:13 Basit Arama GBPUSD, M1: 1999.01. 04 09:13:00, curHi=1.6682, HiH1=1.6697, curLo=1.6682, LoH1=1. 6597
2007.08.13 10:08:15 1999.01.04 09:13 Basit Arama GBPUSD,M1: 1 dakikalık test süresi
2007.08.13 10:08:15 Test için Basit Arama başladı

EURUSD verilerini indirdim ve pompalanmayan ve yeniden hesaplanmayan GBPUSD için test başlattım. Tutarsızlıkların nedeni buydu.
Aynısını yapmayı deneyin - verileri yükleyin ve otomatik olarak veya dönem dönüştürücü komut dosyasıyla senkronize edin.

Saniyelere bakacağız, teşekkürler.
 

Hey Rosh!

Cevap için teşekkürler. Anladığım kadarıyla, farklı telefon şirketlerinden alınan Yüksek ve Düşük veriler arasındaki tutarsızlığın teklif akışının kalitesiyle ilgili olduğunu düşünüyorsunuz. Yani mumlar farklı TF'lerde farklı şekilde oluşur ve sonuç olarak 1-2-3 puanlık farklılıklar olabilir. Oldukça mümkün.

MQ demo sunucu verileri üzerinde test ettim. Üstelik bunları gerçek zamanlı olarak yazmıyorum ama tüm t/f'leri haftada bir, hafta sonları yüklüyorum. Aslında, tüm TF'lerde mum yapımının, en azından sunucuda, programlı olarak, sunucu yazılımı tarafından, tüm TF'ler için eşzamanlı olarak, tek bir alıntı akışına dayalı olarak yapıldığını ve bu nedenle bu tür tutarsızlıkların imkansız olduğunu düşündüm. Durum böyle değilse, ne yazık ki bunu bir şekilde hesaba katmanız gerekecek... Veri fırçalama, senkronizasyon vb. her şeyin güzel görünmesini sağlamak için - bence bu yanlış yol. Sunucunuzun, aracıların sunucularının, sağlandığı biçimde veri sağladığı. Ve tam olarak bu tür veriler üzerinde ticaret yapmalısınız, zamanla neye dönüştükleri üzerinde değil. Bu özellikle test süreci için önemlidir. Sonuçta, herkes kâse sorununu biliyor - test cihazındaki boşluk ve gerçek hayatta drenaj. O nereden geliyor? MQ, geleceğe bakmanın mümkün olmadığı ve kene modellemenin bir süreç olduğu konusunda ısrar ediyor. Bunun böyle olduğu varsayılmalıdır. Bu nedenle, gerçekten, sorun verilerde mi? MQ bu sorunu çözemez, veriler buna bağlı değildir. Ardından, test cihazının yalnızca düzgün bir şekilde taranmış olanlar üzerinde değil, herhangi bir veri üzerinde doğru çalıştığından emin olmak gerekir.

Ancak yazım, farklı telefon numaralarından gelen veriler arasındaki tutarsızlığa değil, zaman içindeki yanlış anlamalara ayrılmıştı. Ve yazdıklarınız sorunu ortadan kaldırmıyor. Tam tersine yazınızla bağlantılı olarak şunu sormak istiyorum.

Günlüğümde hem test cihazı hem de EA zaman verileri saniyeler içeriyor. Sizinkinde, test cihazının verileri hiç saniye içermez ve danışmanın verileri yalnızca sıfır saniye içerir. Bu bağlamda, şu soru ortaya çıkıyor: testi hangi modda yaptınız. Açıklığa kavuşturmak istiyorum - bu Uzman Danışman yalnızca "tüm onaylar" modunda test etmek için tasarlanmıştır. Ve tökezlediğim hata sadece bu moddan yeniden üretilebilir. Bu nedenle, başka bir modda test ettiyseniz, saniyeler alacağı için lütfen testi tekrarlayın.

Prensip olarak, hangi çiftin ve hangi tarih aralığında test edileceğinin bir önemi yoktur. Ve danışman M1 dışındaki telefon numaralarında çalışmayacaktır. Ancak, sonuçlarımızı karşılaştırabilmek için EURUSD'yi 2007.07.10 ile 2007.07.14 aralığında ve ayrı bir test olarak 2007.07.09 ile 2007.07.14 aralığında test etmenizi rica ediyorum.

Şimdiden teşekkür ederim.

 
Yurixx :

Hey Rosh!

Günlüğümde, hem test cihazının hem de EA'nın zaman verileri saniyeler içeriyor. Sizinkinde, test cihazının verileri hiç saniye içermez ve danışmanın verileri yalnızca sıfır saniye içerir. Bu bağlamda, şu soru ortaya çıkıyor: testi hangi modda yaptınız. Açıklığa kavuşturmak istiyorum - bu Uzman Danışman yalnızca "tüm onaylar" modunda test etmek için tasarlanmıştır. Ve tökezlediğim hata sadece bu moddan yeniden üretilebilir. Bu nedenle, başka bir modda test ettiyseniz, saniyeler alacağı için lütfen testi tekrarlayın.

Prensip olarak, hangi çiftin ve hangi tarih aralığında test edileceğinin bir önemi yoktur. Ve danışman M1 dışındaki telefon numaralarında çalışmayacaktır. Ancak, sonuçlarımızı karşılaştırabilmek için EURUSD'yi 2007.07.10 ile 2007.07.14 aralığında ve ayrı bir test olarak 2007.07.09 ile 2007.07.14 aralığında test etmenizi rica ediyorum.

Şimdiden teşekkür ederim.


Gerçekten, şimdi baktım ve saniyem olmadığını gördüm. Bu hala bağlantılı (sanırım) GBPUSD için ilk test için otomatik olarak indirilen saatler ve günler için veriye sahip değildim (genellikle bu terminalde açık çizelgelerim yok), ancak ikincisi için şimdi tek bir hata değil kontrol etmek istedim - ilk test çalıştırması sırasında gerekli veriler indirildi.

Yani GBPUSD için ilk kez H1 ve D1 dönemleri için veri yoktu ve bu nedenle modellemede hatalar vardı.
 
" 2007.07.10 - 2007.07.14 aralığında EURUSD için ve ayrı bir test olarak 2007.07.09 - 2007.07.14 aralığında" testini yaptım, istediğiniz gibi hiçbir fark yok.
 
Rosh :

Saniyelere bakacağız, teşekkürler.


Saniyelerle ilgili hata düzeltildi (derleyicide). Düzeltilmiş yapı yakında hazır olacak.
 
Rosh :
Saniyelerle ilgili hata düzeltildi (derleyicide). Düzeltilmiş yapı yakında hazır olacak.
Biri umut edebilir. test cihazı grail77 artık düzeltilmiş yapıda çalışmayacak mı?
 
granit77 :
Roş :
Saniyelerle ilgili hata düzeltildi (derleyicide). Düzeltilmiş yapı yakında hazır olacak.
Biri umut edebilir. test cihazı grail77 artık düzeltilmiş yapıda çalışmayacak mı?

Yarın kontrol edeceğim.