初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1029

 
Roman Kutemov:

mt5で日を決定する方法を教えてください。 mt4のDayOfYearの類似品です。

これは、次のように記述する関数です。

if (TimeDayOfYear(transaction_time)==DayOfYear()の場合)

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

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

私はそれを読んだが、私はちょうどコードにそれを置く方法を知らない

 
Roman Kutemov:

mt5で日を決定する方法を教えてください。 mt4のDayOfYearの類似品です。

これは、次のように記述する関数です。

if (TimeDayOfYear(transaction_time)==DayOfYear()の場合)

コード例

   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());

MqlDateTime 構造体には、STimeTransactionと STimeCurrentの 2つがあります。STimeTransaction 構造体では、取引時間(transaction_time)を、STimeCurrent 構造体では、取引サーバーの最終既知時間を変換しています。

次に、これら 2 つの構造体(STimeTransactionSTimeCurrent) のday_of_year フィールドを単純に比較します。

 
Vladimir Karputov:

コード例

2つのMqlDateTime 構造体 -STimeTransactionと STimeCurrentSTimeTransaction 構造体では、取引時間(transaction_time)を変換し、STimeCurrent 構造体では、取引サーバーの最終既知時間を変換する。

次に、これら2つの構造体(STimeTransactionSTimeCurrent)のday_of_year フィールドを単純に比較します。

すてき、ありがとう

 

年寄りに一言...。

Expert Advisor のデバッグ 時に、なぜか印刷がうまくいかない。

つまり、プログラムの断片があるのです。

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]);
       }


しかも、何も印刷されない。if(IsNewBar)を削除して、すべてのティックにプリントするようにしましたが、何も起こりませんでした。

Expert Advisor」、「logs」、「logs」など、すべてのタブを見ましたが、何もありませんでした。

MT4では問題なかったのですが、MT5ではどこが問題なのかさっぱり...。どこに行けばいいのかわからない・・・どこを見ればいいのかわからない・・・。


はい、Expert Advisorは「最適化」モードで実行されておらず、過去のデータで実行されているだけです。

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

年寄りに一言...。

Expert Advisor のデバッグ 時に、なぜか印刷がうまくいかない。

つまり、プログラムの断片があるのです。


しかも、何も印刷されない。if(IsNewBar)を削除して、すべてのティックにプリントするようにしましたが、何も起こりませんでした。

Expert Advisor」、「logs」、「logs」など、すべてのタブを見ましたが、何もありませんでした。

MT4では問題なかったのですが、MT5ではどこが問題なのかさっぱり...。どこに行けばいいのかわからない・・・どこを見ればいいのかわからない・・・。


はい、Expert Advisorは「最適化」モードで実行されておらず、過去のデータで実行されているだけです。

Tester」フォルダのログをご覧ください。

 
Alexey Viktorov:

Tester」フォルダのログをご覧ください。

Tester」フォルダのログにはいろいろなものがありますが、私が探している、つまりプログラムからのプリントはそこにはありません......。
 
Oldman_Evgeny:
Tester」フォルダのログにはいろいろと書かれているのですが、私が探している、つまりプログラムからのプリントアウトがないのです......。

また、「Agent-127.0.0.1-3000」というフォルダもあり、こちらにもログが残っています。

 
Alexey Viktorov:

また、「Agent-127.0.0.1-3000」というフォルダがあり、その中にもログが記録されています。

ミラクル!テスターのログを全て削除し、「ログ」タブに印刷が表示されるようになりました。驚きです。

どうしてこうなったのか、想像もつきません! ))))でも、実際、印刷はできるんですよ。

ありがとうございました。

 

Expert Advisorを実行するためにファイルを開きテスターで ファイルにデータを書き込み、テスターで実行した後、書き込まれたファイルが「MQL5Files」フォルダに見つかるようにするには、どのようなフラグを 設定すればよいですか?

FILE_WRITE|FILE_TXT - テスターがファイルを保存した場所を見つけることができません。

FILE_WRITE|FILE_TXT|FILE_COMMON - すべてHelpの説明どおりで、"RoamingMetaQuotesTerminal "にファイルが見つかりました。


でも、"MQL5™Files "にファイルが欲しいんです。

理由: