Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1029

 
Roman Kutemov :

söyle bana mt5'te günü nasıl belirleyeceğim? DayOfYear'ın mt 4'teki analogu

bu yazma işlevi

if (TimeDayOfYear(transaction_time)==YılOldu())

https://www.mql5.com/ru/docs/constants/structures/mqldatetime

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Порядковый номер в году day_of_year в високосном году, начиная с марта, будет отличаться от порядкового номера соответствующего дня в невисокосном году.
 

Okudum sadece aklım yetmiyor kodda nasıl yazılır

 
Roman Kutemov :

söyle bana mt5'te günü nasıl belirleyeceğim? DayOfYear'ın mt 4'ten analogu

bu yazma işlevi

if (TimeDayOfYear(transaction_time)==YılOldu())

Kod örneği:

   MqlDateTime STimeTransaction,STimeCurrent;
   ResetLastError ();
   if ( TimeToStruct (transaction_time,STimeTransaction))
     {
       if ( TimeToStruct ( TimeCurrent (),STimeCurrent))
        {
         if (STimeTransaction.day_of_year==STimeCurrent.day_of_year)
           {
             //--- your code

           }
        }
       else
         Alert ( "ERROR STimeCurrent: " , GetLastError ());
     }
   else
       Alert ( "ERROR STimeTransaction: " , GetLastError ());

İki MqlDateTime yapısı - STimeTransaction ve STimeCurrent . İşlem zamanını (transaction_time) STimeTransaction yapısına ve ticaret sunucusunun bilinen son zamanını STimeCurrent yapısına dönüştürün.

Sonra bu iki yapı için day_of_year alanını karşılaştırırız ( STimeTransaction ve STimeCurrent )

 
Vladimir Karputov :

Kod örneği:

İki MqlDateTime yapısı - STimeTransaction ve STimeCurrent . İşlem zamanını (transaction_time) STimeTransaction yapısına ve ticaret sunucusunun bilinen son zamanını STimeCurrent yapısına dönüştürün.

Sonra bu iki yapı için day_of_year alanını karşılaştırırız ( STimeTransaction ve STimeCurrent )

Oh, teşekkürler

 

Söyle bana, lütfen, yaşlı adam...

Bazı nedenlerden dolayı, EA'da hata ayıklarken yazdırma çalışmıyor.

Onlar. programın bir parçası var:

 if (IsNewBar)
       {
     Print ( "Buy_opened=" ,Buy_opened , "  Sell_opened=" ,Sell_opened, "   Новый бар" ,New_Time[ 0 ]);
     int fileHandle= FileOpen ( "test.txt" , FILE_WRITE | FILE_TXT | FILE_SHARE_READ | FILE_UNICODE , 0 , 0 ); 
     FileWrite (fileHandle, "Buy_opened=" ,Buy_opened , "  Sell_opened=" ,Sell_opened, "   Новый бар" ,New_Time[ 0 ]);
     Alert ( "Buy_opened=" ,Buy_opened , "  Sell_opened=" ,Sell_opened, "   Новый бар" ,New_Time[ 0 ]);
       }


Ve hiçbir yerde, hiçbir şey yazdırmıyor. Ve if(IsNewBar) öğesini her kene üzerine yazdıracak şekilde kaldırdım - hiçbir şey yok.

"Uzman", "günlükler", "günlükler" gibi tüm sekmeler arandı - hiçbir yerde.

Sorun ne? MT4'te sorun yoktu ama MT5'te nereye koşacağımı ve nereye bakacağımı bilmiyorum...


Evet, EA'yı "optimizasyon" modunda çalıştırmıyorum, sadece geçmiş veriler üzerinde çalışıyorum

Отладка кода - Разработка программ - MetaTrader 5
Отладка кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
В MetaEditor встроен отладчик — инструмент, который позволяет проверить работу программы по шагам (по отдельным функциям). Вы расставляете в коде программы точки останова — места, в которых исполнение программы должно быть приостановлено. Затем запускаете программу на обычном графике или в тестере стратегий. Как только исполнение программы...
 
Oldman_Evgeny :

Söyle bana, lütfen, yaşlı adam...

Bazı nedenlerden dolayı, EA'da hata ayıklarken yazdırma çalışmıyor.

Onlar. programın bir parçası var:


Ve hiçbir yerde, hiçbir şey yazdırmıyor. Ve if(IsNewBar) öğesini her kene üzerine yazdıracak şekilde kaldırdım - hiçbir şey yok.

"Uzman", "günlükler", "günlükler" gibi tüm sekmeler arandı - hiçbir yerde.

Sorun ne? MT4'te sorun yoktu ama MT5'te nereye koşacağımı ve nereye bakacağımı bilmiyorum...


Evet, EA'yı "optimizasyon" modunda çalıştırmıyorum, sadece geçmiş veriler üzerinde çalışıyorum

"Test Edici" klasöründeki günlüklere bakın.

 
Alexey Viktorov :

"Test Edici" klasöründeki günlüklere bakın.

"Test" klasörünün günlüklerinde birçok farklı şey var, ancak aradığım baskı, yani. programdan hayır...
 
Oldman_Evgeny :
"Test" klasörünün günlüklerinde birçok farklı şey var, ancak aradığım baskı, yani. programdan hayır...

Ayrıca içinde "Agent-127.0.0.1-3000" klasörü de var, günlükler de var.

 
Alexey Viktorov :

Ayrıca içinde "Agent-127.0.0.1-3000" klasörü de var, günlükler de var.

Harikalar! Test cihazındaki TÜM günlükleri kaldırdım ve baskı "Günlük" sekmesinde göründü. Harikalar!

Nasıl oldu - asla bilemeyeceğim!)))) Ama gerçek - yazdırılıyor!

Yardım için teşekkürler!

 

Test cihazında çalıştırıldıktan sonra yazılı dosyanın "MQL5\Files" klasöründe bulunabilmesi için test cihazındaki bir dosyaya veri yazan bir Expert Advisor'ı başlatmak için hangi dosya açma bayrağı ayarlanmalıdır

Bunu denedim: FILE_WRITE|FILE_TXT - Test cihazının dosyayı nereye kaydettiğini hiç bulamıyorum

şunu denedim: FILE_WRITE|FILE_TXT|FILE_COMMON - her şey yardımdaki gibi, dosyayı "Roaming\MetaQuotes\Terminal\Common\Files" içinde buluyorum


ama "MQL5\Files" içinde bir dosya istiyorum !!!

Neden: