structMqlDateTime
{
int year; // Year int mon; // Month int day; // Day int hour; // Hour int min; // Minutes int sec; // Seconds int day_of_week; // Day of week (0-Sunday, 1-Monday, ... ,6-Saturday) int day_of_year; // Day number of the year (January 1st is assigned the number value of zero)
};
その代わり、初期化関数で一度オブジェクトを作成し、後で希望の日付に移動させることができます。
を使用すると、この問題を回避することができます。
あるいはさらに、オブジェクトがすでに存在するかどうかを前もってチェック することもできます。
ObjectFind(...
Marco, Paul
ご回答とご協力ありがとうございました。
しかし、私が今直面している問題は、ファイルから取得した情報(日付)を変換し、それを使用して線を描くことです。
コードでは、ファイルはMT4ファイルセクションの# Linesとして保存され、保存された日付は例えば2019.05.18 05:30:00ですが、最初のステップでは、日付から下3桁を削除 し、変換します。
次のステップでは、時刻をD'形式にすることに失敗しました。
私は次のように試してみました。
しかし、それはうまくいかなかったので、私は文字列を時間に変換する
どちらの場合も、行は1970.01.01 00:00に作成されます。問題は、ファイルからの日付を、MT4がVラインを作成するために使用できる意味のあるものに変換することです。
私はコードを添付しています、多分あなたは私の間違いを見つけることができます。コードでは、私は2つの行を作成しましたが、私はファイルから取得した日付に行のいずれも作成されていません。
日付を引用符で囲んで書くのは間違いです。
をそのまま書くと
D'2019.05.18 05:30'
どちらもデータタイム です。ちょうど
は両方ともdoubleである。日付を引用符で囲んで書くのは間違いです。
をそのまま書くと
D'2019.05.18 05:30'
私は、ウィリアム・ローダーが 上で説明したように、テキストを日付形式に変換しているので、そうしています。 私は、日付を正しく保存し、D'形式に変換しましたが、まだ行を作成することができないので、私の間違いがどこにあるかわかりません。
このような文字列から日付への 変換の代わりに、エポックからの秒数のような長い整数値として時間を保存したり読み取ったりする方が、より運が良いと思います。
日付は秒数を含めて保存され、例えばこれはファイルから取り出された時間です 2019.05.19 15:00:00
しかし、私はテスト中に、私は秒と日付を使用した場合、それは1970.01.01で 行を作成することがわかりました、 私は秒を削除した理由ですが、まだ日付の正しい場所にファイルを作成することができません。
その場合、時間軸を見ることもできると思います。
以下のように
TimeToStruct()
という関数が あります。
そして、ここから必要な値をすべて抽出することができます。
これらは整数値であるため、文字列をいじる必要はありません。