エラー、バグ、質問 - ページ 2177

 
Konstantin Nikitin:

文字列から時間へ

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

恐ろしく遅く、文字列変数の変換を処理するのに最適なものではありません。

上に答えがありますね。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

アレクセイ・ビクトロフ さん 2018.03.30 19:30

MqlDateTime構造体を埋めて、そこから完全な日付と時刻を取得します。


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

私たちは、安易な方法を求めません。頑張れ...

 
Alexey Viktorov:

私たちは、安易な解決策を求めているわけではありません。頑張れ...

彼にちょっとした例を書いてあげてください ;)

 
Alexey Viktorov:

MqlDateTime構造体に記入し、そこから完全な日付と時刻を取得します。

コードでどのように動作するか興味深い

 
Artyom Trishkin:

彼にちょっとした例を書いてあげてください ;)

と言われていました。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

マキシム・クロレンコ さん 2018.03.30 18:49

int型の6つの変数(年、月、日、時、分)をもとに、与えられたパラメータに対応する時刻値をdatetime型の 変数に書き込むにはどうしたらよいか、という質問に対する答えが見つからないのです。そうすると、その時間に開いたロウソクのインデックスを見つける必要があるのですが、それは私には問題ではありません。どなたか答えがわかるリンクをお持ちの方、お願いします!自力で 解決します。

MqlDateTime dateTime;

dateTime.year = 2018;
dateTime.mon = 3;
dateTime.day = 30;
dateTime.hour = 21;
dateTime.min = 15;

datetime _Time = StructToTime(dateTime);
 
Alexey Viktorov:

と言われていました。


曜日 なんだろう?確認しましたか?ただ、変換時に勝手に計算されるのか、そうでないのかが気になります。

この2つも:曜日_of_weekと曜日_of_year

 
Artyom Trishkin:

今日は何曜日 ですか?確認しましたか?変換時に勝手に計算されるのか、そうでないのかが気になるところです。

day_of_weekとday_of_yearの2つでさえも。

その後、構造体に戻した場合。

  TimeToStruct(_Time, dateTime);

を表示させることができます。

曜日 = 5

日齢 = 88

 
Artyom Trishkin:

今日は何曜日 ですか?確認しましたか?ただ、変換時に勝手に計算されるのか、そうでないのかが気になります。

この2つも:曜日_of_weekと曜日_of_year


void OnStart()
  {
//---
   MqlDateTime timeDate, time;
   
   timeDate.year=2018;
   timeDate.day_of_year=32;
   
   datetime date1=StructToTime(timeDate);
   Print("День года - ",timeDate.day_of_year);
   
   time.year=2018;
   time.mon=2;
   time.day=1;
   time.hour=0;
   time.min=0;
   
   datetime date2=StructToTime(time);
   Print("День года - ",time.day_of_year);
  }

День года - 879007969
День года - 32



day_of_yearが記入されている場合は動作しません(

 


22秒のとても不思議な間。誰が説明できるのか?

//+------------------------------------------------------------------+
//|                                                      BagBars.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

void OnStart()
  {
   datetime Arr[];
   if(CopyTime(_Symbol,PERIOD_H4,0,1,Arr)<0) Print("Ошибка");
   Print("1 "+TimeToString(Arr[0])+" CurrentTime = "+TimeToString(TimeCurrent()));
   
   int Res=::Bars(_Symbol,PERIOD_W1,Arr[0],TimeCurrent());  // выполнение происходит 22 секунды!!!
   
   Print("2 CurrentTime = "+TimeToString(TimeCurrent()));
  }
//+------------------------------------------------------------------+

の結果です。

2018.03.30 16:37:16.941 BagBars (EURUSD,W1)     1 2018.03.30 20:00 CurrentTime = 2018.03.30 23:37
2018.03.30 16:37:38.862 BagBars (EURUSD,W1)     2 CurrentTime = 2018.03.30 23:37