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

 
Karputov Vladimir:

すぐに指定する必要があります :) .

チャート上にバーがあれば、それはインジケーターバッファーの セルに対応しています。このセルに何かを書き込まない限り、ゴミは保存される。

MT4ではゴミにならないのに、このバーの下にインジケータが表示されないだけなのはなぜですか?
 
Aleksey Lebedev:

整数(int,long,datetimeなど)の割り算は、結果は整数、つまり余りは捨てられる。今日の00:00と昨日の23:59:59では、その差は1日分となります。

まずそれはない。インジケーターで実験的に証明されている。

次に、どうすれば1が得られるのか。もともと秒単位で計算していることを前提に、数学的に示してください。

 
Alexey Kozitsyn:
単純な型のゼロ化と全く同じ方法です。必須フィールドに0を代入 した後は、StructToTime()の逆操作を行います。

ゼロにした。

MqlDateTime str1;
datetime  Open_timePos=iTime(_Symbol,0,pos);
TimeToStruct(Open_timePos,str1);
   str1.hour=0;
   str1.min=0;
   str1.sec=0;
datetime  start_time=StructToTime(str1);
Print("день=",TimeToStr(start_time));

すべてうまくいきました。ありがとうございました
 

Aleksey Lebedev:
При делении целых чисел(int,long,datetime и т.п.) результат целое число, т.е. остаток отбрасывается. 00:00 сегодня и 23:59:59 вчера, разность будет равна 1дню.

-Aleks- です。

まずそれは-指標で実験的に証明されたものではありません。

基本に忠実な議論をしてはいけない)。

-Aleks- です。

次に、どうやって1を得るのか。最初に秒単位の計算があるとして、数学的に示してください。

datetime today=D'2016.03.09 00:00:00';
datetime yesterday=D'2016.03.08 23:59:59';
Print("today=",86400*(today/86400)," value=",int(today));
Print("yesterday=",86400*(yesterday/86400)," value=",int(yesterday));
Print("разница в днях = ",int(today/86400-yesterday/86400));

コンバージョンススルー構造の方が分かりやすい場合は、そちらを使用する。

 
Aleksey Lebedev:

基本に忠実であること(Don't challenge the basics)

構造変換の方がわかりやすい場合は、構造変換を使う。

理解されたことは、対処されたことです。あなたのコードを実行してみたわけではありませんが、あなたが自分でやったことだと思うので、どう動くのか、無知な私に説明してください。

86401/86400-86400/86400は,数学のルールで1.000012-1=0.000012であれば1になり,intは整数,すなわち0に切り上げなければなりません.

 
-Aleks-:

理解されたことは、対処されたことです。あなたのコードを実行してみたわけではありませんが、あなた自身がやったことだと思いますので、どのように動作するのか、無知な私に説明してください。

86401/86400/86400は、数学のルールによると1.000012-1=0.000012 、およびintは整数、すなわち0に丸める必要がある場合は、1に等しくなります。

やってみなはれ)

開始時刻 00:00:00 を 86400 で割ると余りなく、前が 1 秒以上短くなる。四捨五入 - 式全体ではなく、割り算の残りが捨てられる。

86400/86400=1

86399/86400=0

 
Aleksey Lebedev:

を実行してください)

始点00:00:00を余りなく86400で割ると、前が1秒以上短くなる。四捨五入 - 式全体ではなく、割り算の残りが捨てられる。

86400/86400=1

86399/86400=0

ということで、式の中で独特の丸めが発生することに驚きました。変数に値が代入されたときに、小数点以下の値が捨てられると思っていました。
 
みんな!プログラムでチャートにインジケーターを表示させることはできますか?それとも手書きだけ?
 
Vladimir Tkach:
みんな!プログラムでチャートにインジケーターを表示させることはできますか?それとも手書きだけ?
できることhttps://www.mql5.com/ru/docs/chart_operations/chartindicatoradd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
は、mql5では、mql4では?
理由: