どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 977

 
Vadim_2015:


関数についてはヘルプを、使用例についてはフォーラムを参照してください:

1. iHighest/iLowest
- 混乱を避けるため、これらの関数は最大/最小の価格に 対応するインデックスを返します。
そして、それらの値をHigh[]/Low[]に入れる必要があります。フォーラムでたくさんの例を見ることができます。

2. iBarShift
 

ご感想をお寄せいただきありがとうございました。

1_はい、_iHighest を使ってみましたが、見つかった最高値のインデックス(バー番号)を返します(「現在のバー」からの相対的なオフセット)。つまり、ある条件がi番目のバーで満たされ、このバーは時間、例えば10:00に対応し、_10:00から一日の終わり_00:00までの最大値が必要なのです。できれば、ちょっとした落書きくらい、どうですか?お話にあったiHighest High[] / Low[]のリンク方法について。

2_iBarShift after all は、指定した時刻が到来するバーのインデックスを返します。1本のバーのインデックス。履歴(チャート上)で、特定の時間_12:00_13:00_14:00などのバーが何本あるか計算する必要があるという意味です。iBarsも同じではありません。

atztek:

関数についてはヘルプを、関数の使用例についてはフォーラムをご覧ください:

1. iHighest/iLowest
- 混乱を避けるため、これらの関数は最大/最小価格に対応するインデックスを返します。
そして、それらの値をHigh[] / Low[]に入れる必要があります。フォーラムでたくさんの例を見ることができます。

2. iBarShift

 
Vadim_2015:

ご感想をお寄せいただきありがとうございました。

1_はい、_iHighestを使おうとしましたが、見つかった最高値のインデックス(「現在のバー」からの相対的なオフセット)を返します。つまり、i番目のバーである条件が成立し、このバーは例えば10時に相当するので、_10:00から一日の終わり_00:00までの最大値が必要なのです。できれば、ちょっとした落書きくらい、どうですか?お話にあったiHighest High[] / Low[]のリンク方法について。

2_ iBarShift after all は、指定した時刻が到来するバーのインデックスを返します。1本のバーのインデックス。履歴(チャート上)で、特定の時間_12:00_13:00_14:00などのバーが何本あるか計算する必要があるという意味です。iBarsも同じではありません。

1.あなたが考えているセグメントで、iHighestは、変数に格納できる何らかの値、例えば'Index_Max'を返します。値を取得するためには、単純に => High[Index_Max] の操作を行う必要があります。

2. iBarShiftは、指定した時間までのバーの 数を返します。

プログラムしなければならないことをしばらく忘れ、それぞれのケースについて小さな例を作り、それを使ってどのように動くかを示す。
 
atztek:
1.あなたが考えているセクションでは、iHighestは変数に格納できる何らかの値、例えば'Index_Max'を返します。値を取得するためには、単純に => High[Index_Max] の操作を行う必要があります。

2. iBarShiftは、指定した時間までのバーの数を返します。

プログラムしなければならないことをしばらく忘れ、それぞれのケースについて小さな例を作り、それを使ってどのように動くかを示す。

もしかしたら、私が理解していないことがあるのかもしれませんが、私は・・・。MQL4 Handbook/タイムシリーズとインジケーターへのアクセス/ iBarShift

" iBarShift - 時間でバーを検索します。この関数は、指定した時刻が属するバーのインデックスを返します。

戻り値指定した 時刻のバーのインデックス指定した時間のバーがない場合(履歴の「穴」)、この関数は -1 または最も近いバーのインデックスを返します。",

指定時間前の小節数ではありません。

はい、すでに例題を使っていますが、すべて間違っています。いろいろな機能を試しました。あなたのバージョンを試してみます。バータイムを計算するときの注意点は?どのように計算するのですか?

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

 
Vadim_2015:


もしかしたら、私が理解していないことがあるのかもしれませんが、私は・・・。MQL4 Handbook/タイムシリーズとインジケーターへのアクセス/ iBarShift

" iBarShift - 時間でバーを検索します。この関数は、指定した時刻が属するバーのインデックスを返します。

戻り値指定した 時刻のバーのインデックス指定した時間のバーがない場合(履歴の「穴」)、この関数は -1 または最も近いバーのインデックスを返します。",

指定時間前の小節数ではありません。

はい、すでに例題を使っていますが、すべて間違っています。いろいろな機能を試しました。あなたのバージョンを試してみます。バータイムを計算するときの注意点は?どのように計算するのですか?

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

おっしゃるとおりですが、バーインデックスを知れば、プロット中のバーの本数もわかりますよね?
 
Vadim_2015:

2_ not all, pardon my impertinence, there is a function 'iBars'( Returns the number of bars in the history for corresponding symbol and period).history(PERIOD_H1)で'12:00'とか'15:00'とかの時間だけでなく、何本の時間付きバーがあるか計算できる関数の組み合わせを教えてください。

12:00と15:00は1日に1回だけ発生します。従って、期間PERIOD_D1 の最後のバーの本数を定義すれば、時刻 12:00 のバーの本数と なり、それ以外の時刻のバーの 本数も定義できる。

一見するとよくわからないかもしれませんが、アルゴリズムはおおよそ次のようになります。

Barsを使用して、現在の期間の最も古いバーの時刻を定義します。datetime time = Time[Bars-1];

バー番号を定義する iBarShift(_Symbol,PERIOD_D1, time, false);

 
現在アクティブなチャートシンボルを確認する方法は?すなわち、その時点でアクティブなタブ/ウィンドウのチャートであり、インジケータ/エキスパートが取り付けられているものではありません。つまり、あるチャートで動作しているExpert Advisorは、ユーザーが選択したチャートのシンボルを知っているのです。
 
ありがとうございました。
 
AlexPORT:
現在アクティブなチャートシンボルを確認するには?つまり、その時点でアクティブなタブ/ウィンドウのチャートであり、インジケータ/エキスパートが接続されているチャートではありません。つまり、あるチャートで動作しているExpert Advisorは、ユーザーが選択したチャートのシンボルを知っているのです。
プログラム的にアクティブなチャートシンボルを定義するようなものは存在しない。インジケータ/アドバイザが動作するチャートのシンボル_Symbol, Symbol() のみを定義できます。
 

AlexeyVik:

一見すると意味がわからないかもしれませんが、アルゴリズムは大体こんな感じです。

Barsを使用して、現在の期間の最も古いバーの時刻を決定する。datetime time = Time[Bars-1];

バー番号を定義する iBarShift(_Symbol,PERIOD_D1, time, false);

アルゴリズムは明確であり、それを理解した。例を作ってみたが、すべてうまくいった。

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

また、最初の質問(最大値について)ですが、どのように実装するのか、もう少し詳しく説明してください。できれば、小さなアルゴリズムをお願いします。上手なんですね :)