Lütfen bu işlevde neyin yanlış olduğunu açıklayabilir misiniz? - sayfa 5

 
Karputov Vladimir :
Servis masasında size tavsiye edilenleri daha iyi seslendirin - orada iletişime devam ettiniz mi?
Nedense kapalı bir kapıyı üç defadan fazla çalmam. Üç yorumuma tek bir cevap yoktu... Ve neden boşluğa çığlık atıyorum?
 
Alexey Viktorov :
Nedense kapalı bir kapıyı üç defadan fazla çalmam. Üç yorumuma tek bir cevap yoktu... Ve neden boşluğa çığlık atıyorum?

CopyRates(), M15 üzerinde çalıştırıldığında, yerel olmayan bir dönem (zaman çerçevesi) (H1 ve D1) için bir geçmiş önbelleği tutar.

Ayrıca, CopyRates() aracılığıyla serileri kopyalamak yerine, basitçe talep edebilirsiniz.

SYMBOL_TIME

Son teklif zamanı

tarih saat

ve şimdiden bu saatten itibaren yeni bir gün mü yoksa yeni bir saat mi olduğunu belirlemek için... Bu durumda seriyi kopyalamak yerine terminali sorgulamanız ve basit bir zaman analizi yapmanız yeterlidir. Daha bilgilendirici SymbolInfoTick'i de kullanabilirsiniz.

 
Karputov Vladimir :

CopyRates(), M15 üzerinde çalıştırıldığında, yerel olmayan bir dönem (zaman çerçevesi) (H1 ve D1) için bir geçmiş önbelleği tutar .

Ayrıca, CopyRates() aracılığıyla serileri kopyalamak yerine, basitçe talep edebilirsiniz.

SYMBOL_TIME

Son teklif zamanı

tarih saat

ve şimdiden bu saatten itibaren yeni bir gün mü yoksa yeni bir saat mi olduğunu belirlemek için... Bu durumda seriyi kopyalamak yerine terminali sorgulamanız ve basit bir zaman analizi yapmanız yeterlidir. Daha bilgilendirici SymbolInfoTick'i de kullanabilirsiniz.

Vladimir, seğirme sorunu tesadüfi değildi. Bu tür problemlerin bulunduğu Expert Advisor'da her tikte CopyRates() çağrılır, bu nedenle tarih seğirmesi teorisi kediyi nedensel bir yer için seğirmeye eşdeğerdir... Bunu kabalık olarak algılamayın.. .

Ve şimdi bile, sorunun gerçekleştiğini anladığınızda, SD'ye yapılan uygulama göz ardı edilmeye devam ediyor. Aslında artık pek ilgilenmiyorum, çözüm bulundu, diğer sorunlara alışabilir ve bazı fonksiyonlara gömülü aptallıkları hesaba katabilirsiniz, ancak herhangi bir sorunu SD'ye bildirme isteği hızla sıfıra doğru ilerliyor.

Şimdi başka bir bilgisayardan yazıyorum, kod yok ama kendin kontrol edebilirsin... 27.06.2016 00:00:00 ile 27.06.2016 00 saatleri arasında sizce kaç günlük bar düşünüyorsunuz: 00:00???

sıfır mı sanıyorsun??? Eğer hatalıysanız, Bars() fonksiyonu Aptallık ile kontrol edin, ancak gerekirse bunu hesaba katabilirsiniz ve hala düzeltmeyi düşündüğünüzde... Pekala, kodumuzu düzenleyeceğiz...

 
Alexey Viktorov :

Vladimir, seğirme sorunu tesadüfi değildi. Bu tür problemlerin bulunduğu Expert Advisor'da her tikte CopyRates() çağrılır, bu nedenle tarih seğirmesi teorisi kediyi nedensel bir yer için seğirmeye eşdeğerdir... Bunu kabalık olarak algılamayın.. .

Ve şimdi bile, sorunun gerçekleştiğini anladığınızda, SD'ye yapılan uygulama göz ardı edilmeye devam ediyor. Aslında artık pek ilgilenmiyorum, çözüm bulundu, diğer sorunlara alışabilir ve bazı fonksiyonlara gömülü aptallıkları hesaba katabilirsiniz, ancak herhangi bir sorunu SD'ye bildirme isteği hızla sıfıra doğru ilerliyor.

Şimdi başka bir bilgisayardan yazıyorum, kod yok ama kendin kontrol edebilirsin... 27.06.2016 00:00:00 ile 27.06.2016 00 saatleri arasında sizce kaç günlük bar düşünüyorsunuz: 00:00???

sıfır mı sanıyorsun??? Eğer hatalıysanız, Bars() fonksiyonu Aptallık ile kontrol edin, ancak gerekirse bunu hesaba katabilirsiniz ve hala düzeltmeyi düşündüğünüzde... Pekala, kodumuzu düzenleyeceğiz...

Buluşa gerek yok - CopyRates() OLMADAN bir EA sağladınız.
 
Karputov Vladimir :
İcat etmeye gerek yok - CopyRates() OLMADAN bir EA sağladınız.
Seğirmeden söz edilmezken kodu verdim. Tekrar ediyorum, kodun olmadığı ve MT5'in kurulu olduğu bir bilgisayardan yazıyorum, bu yüzden yeni çubuk algılama işlevinde değil, ana OnTick() kodunda çağırmadan önce değişiklikleri kendiniz yapmanızı rica ediyorum. ve deneyi tekrarlayın.
 
Alexey Viktorov :
Seğirmeden söz edilmezken kodu verdim. Tekrar ediyorum, kodun olmadığı ve MT5'in kurulu olduğu bir bilgisayardan yazıyorum, bu yüzden yeni çubuk algılama işlevinde değil, ana OnTick() kodunda çağırmadan önce değişiklikleri kendiniz yapmanızı rica ediyorum. ve deneyi tekrarlayın.

Bir kod var - bir kınama var. Kod yok - o zaman her şey kahve telvesi üzerinde falcılık moduna giriyor. Bilgisayar başında olacaksın - benim tavsiyemle bir kod yap

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Lütfen bu işlevde neyin yanlış olduğunu açıklayabilir misiniz?

Karputov Vladimir , 2016.06.27 13:36

***

Ayrıca, CopyRates() aracılığıyla serileri kopyalamak yerine, basitçe talep edebilirsiniz.

SYMBOL_TIME

Son teklif zamanı

tarih saat

ve şimdiden bu saatten itibaren yeni bir gün mü yoksa yeni bir saat mi olduğunu belirlemek için... Bu durumda seriyi kopyalamak yerine terminali sorgulamanız ve basit bir zaman analizi yapmanız yeterlidir. Daha bilgilendirici SymbolInfoTick'i de kullanabilirsiniz.


ve kendiniz kontrol edin.

 

Aşağı yukarı böyle

 datetime oldDay, oldHour;
MqlDateTime mqlDateTime;
MqlRates     mqlRates;
/*******************Expert initialization function*******************/
int OnInit ()
{
   return ( INIT_SUCCEEDED );
} /*******************************************************************/

/************************Expert tick function************************/
void OnTick ()
{
   bool newDay, newHour;
   TimeToStruct ( TimeCurrent (), mqlDateTime);
   CopyRates( _Symbol , PERIOD_H1 , 0 , 1 mqlRates);
     if (( int )mqlDateTime.hour == 0 )
     {
      newDay = IsNewBar( _Symbol , PERIOD_D1 , oldDay);
   if (newDay)
     Print ( "***** newDay " , newDay, " mqlDateTime.hour " , mqlDateTime.hour); // Судя по распечатке newDay = true
       newHour = IsNewBar( _Symbol , PERIOD_H1 , oldHour); // А это совсем другая переменная
     if (newHour)
     Print ( "***** newHour " , newHour); // Судя по распечатке newHour = true
         if (newDay && newHour) // A ЭТО УСЛОВИЕ НЕ ВЫПОЛНЕНО НЕСМОТРЯ НА ПРЕДЫДУЩИЕ РАСПЕЧАТКИ.
         {
           Print ( "Ордер должен откыться. " );
         }
     }
} /*******************************************************************/

/*****************Определение появления нового бара******************/
bool IsNewBar( string symbol, ENUM_TIMEFRAMES timeframe, datetime &m_tOld)
 {
   datetime tNew = ( datetime ) SeriesInfoInteger (symbol, timeframe, SERIES_LASTBAR_DATE );
   if (tNew > m_tOld)
    {
     m_tOld = tNew;
     return ( true );
    }
   return ( false );
 }
/********************************************************************/

/******************Expert deinitialization function******************/
void OnDeinit ( const int reason)
{
 Comment ( "" );
} /*******************************************************************/
 
Alexey Viktorov :

Aşağı yukarı böyle

Ve CopyRates() 'ten gelen yanıtın kontrolleri nerede?
 
Karputov Vladimir :

Bir kod var - bir kınama var. Kod yok - o zaman her şey kahve telvesi üzerinde falcılık moduna giriyor. Bilgisayar başında olacaksın - benim tavsiyemle bir kod yap


ve kendiniz kontrol edin.

Şey, evet... Masumiyet karinesi iş başında...

İhtiyacım var mı??? MQ programında hatalar var. Bunları kendi başıma veya tavsiyenizle aşabilirim, ancak MQ programındaki hatalar ve aptallıklar, hatalar ve aptallıklar olarak kalacaktır.

Önümüzdeki cumaya kadar bilgisayar başında olmayacağım. Ve kedinin seğirmesi zaten test edildi. Ve sağ elle ya da sol elle çekmenin bir önemi yok... Hatalar hata, aptallıklar aptallık olarak kalır.

 
Karputov Vladimir :
CopyRates()'ten gelen yanıtın kontrolleri nerede?
Hatayı onaylama konusundaki ilginizin sıfır olduğunu anlıyorum. Bu yüzden kendi başına hiçbir şey yapmayacaksın ... Ve gerçekten gerekli değil, sana kanıtlamayacağım ... Bunun bana ne faydası var ??? Numara...