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

 
forexman77:

ありがとうございました。効くんです。

mql5のロジックを説明せよ。mql4では、int Hour()で時間単位で判定しているが、mql5では、私の理解する限りでは、そのような定数はない。

1.時間単位で要求していることを、プログラムはどのように認識しているのですか?MqlDateTimeから でしょうか?

2.現在時刻(分)を現在時刻(時)に足す、つまり現在時刻(分)を知るには、次のようにします。

1.はい

2.そうですね。

 

EAをmql4から mql5へ 作り変えて2日目。

1.1970年1月1日からの日足バーの開始時刻を秒単位で求める必要があります。フォーラムで機能を発見しました。

//--- переменные для указания параметров функции
int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(tp[0]);

この関数が、最後のバーの時刻を求めるのか、最初のバーの時刻を求めるのか、よくわかりません。

取引開始時刻として、日付と時刻の形式で表示されます。

StringToTime関数を 見つけ、それは私が必要とすることを行うように見えるが、私はさまざまな組み合わせを試して、今私はリンゴへの扉を開くためにどのボタンを押すべきか理解できないチンパンジーのように感じています。

3.mql5 には iBarShift, iLow, iLowest関数がないのですが。この問題を解決するために、ある期間の毎日の最小値を求める方法、またはmql 5のどの関数を使用すべきかをご教示ください。

Документация по MQL5: Преобразование данных / StringToTime
Документация по MQL5: Преобразование данных / StringToTime
  • www.mql5.com
Преобразование данных / StringToTime - Документация по MQL5
 
forexman77:

EAをmql4から mql5へ 作り変えて2日目。

1.1970年1月1日からの日足バーの開始時刻を秒単位で求める必要があります。フォーラムで機能を発見。

2.StringToTime関数を 見つけ、それは私が必要とするものを行うように見える。 しかし、私はさまざまな組み合わせを試して、今私はリンゴへの扉を開くためにどのボタンを押すべきかわからないチンパンジーのように感じています。

mql5 にはiBarShift, iLow, iLowestの関数がないのですが 毎日ある期間の最小値を求める方法、またはこの問題を解決するためにmql 5のどの関数を使用すればよいか教えてください。

1,2.こちらを ご覧ください。

3.こちらを お読みください。

 
DC2008:

1,2.こちらを ご覧ください。

3.こちらを ご覧ください。

2つ目の質問について。datetimeに関する全てを読み直す。"datetime型は、日付と時刻を1970年1月1日からの経過秒数として格納することを目的としています。"

それでは、なぜアラートを呼び出すと、秒数ではなく、「2013.10.02 00:00:00」と表示されるのでしょうか。

 
forexman77:

2つ目の質問について。datetimeのすべてを読み直す。"datetime型は、日付と時刻を1970年1月1日からの経過秒数として保存することを目的としています。"

なぜ、アラートが呼び出されると、秒数ではなく、2013.10.02 00:00:00と表示されるのでしょうか?

今すぐこちらを お読みください。アラートで出力するには、datetime型をint型に変換する必要があります。

 
DC2008:

今すぐこちらを お読みください。アラートで出力するには、datetime型をint型に変換する必要があります。

こんな感じで作りました。

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
int st=tp[0];
Alert("st=",st);

メタトレーダー4と比較したところ、同じ数値が出ました。

しかし、mql5をコンパイルするとメッセージが黄色く表示されます。

型変換によるデータ消失の可能性

こんな感じでやってみました。

int start = 0; // индекс бара
int count = 1; // количество баров
datetime tp[]; // массив, в котором возвращается время баров
//--- копирование времени 
CopyTime(_Symbol,PERIOD_D1,start,count,tp);
//--- вывод результата
Alert(IntegerToString(tp[0]));
エラーはありません。しかし、Expert Advisorが計算に使用するため、アラートを出さずに値を取得するには、IntegerToStringを どこに取り付ければよいのかわかりません。ただ、文字列の値になることが理解できなかった。つまり、他の数値との比較に使えるかどうか?
 
forexman77:

このような構造を作りました。

メタトレーダー4と比較したところ、同じ数値であることが判明しました。

ただし、mql5をコンパイルするときにメッセージが黄色で出てくるのは例外です。

型変換によるデータ消失の可能性

もっと単純なことです!

//--- вывод результата
Alert("st=",(int)tp[0]);
 

一度別のシグナルを 購読していた場合、どのようにシグナルを作成 すればよいか教えてください。

つまり、すでに退会しているのです。本当に無理なのでしょうか?

2週間足らずで100%稼いだが、誰にも教えられない(

 
かもしか
 
DC2008:

もっと単純なことです!

それでも、変数「st」はAlertだけ でなく、計算にも必要になるので、コンパイル時に「型変換によるデータ損失の可能性」の警告が出ます。

これは10桁の数字が出るからだと思いますが、intの最大値が2 147 483 647であるのに対し、現在は1 380 758 400と出ています。多分、ロングを使用することに意味があり、おそらくEAはこの部分で多くのリソースを消費するのでしょうか?

Документация по MQL5: Общие функции / Alert
Документация по MQL5: Общие функции / Alert
  • www.mql5.com
Общие функции / Alert - Документация по MQL5
理由: