MT4 EA 過去3本の最高値・最安値 ブレイク の iCustom の 書きかた 目…

MT4 EA 過去3本の最高値・最安値 ブレイク の iCustom の 書きかた
目的は ロスカット 等に使用する為です 作ったものは 次の通りですが 正常に働いていないようです
間違い箇所教えてください

extern int breakperiod = 3; // 過去の時間足の数
double max = 0;
double min = 0;
max = High[iHighest(NULL,0,MODE_HIGH,breakperiod,1)];
min = Low[iLowest(NULL,0,MODE_LOW,breakperiod,1)];
//買いポジションエグジット
if(min > Close[1])
//売りポジションエグジット
if(max < Close[1])
の様に書いています
実際は他のインディケータとの組み合わせをしています

..[補足]..
Fさん 早速有難うございます
max = High[iHig hest(NULL,0,MODE_HIGH,breakuperiod,2)];
min = 同上〜 ,2)];
で 2本前〜4本前の足の 高値 ? 安値 ということになりますか?
= High[〜の書きかたで 過去??本のブレイクで正しいですか?
レンジブレイクの作成にも同じ内容で行いたいと考えています

回答1

終値のシフト位置と高値安値の開始位置が同じである事が原因です。

if(min > Close[1])は、

バー1本前からの最安値 > バー1本前の終値

という意味ですが、1本前の終値が1本前の最安値を下回ることはありません。

補足について

それでも良いと思います。
ただ、これだとローソクの確定前に一旦最高値位置を越えてその後下がって最高値位置を下回って終値が確定した場合、次のバーで最高値位置が変わるがブレイクしたとはみなされない状態が起こります。
これをどうとるかで良し悪しが決まります。

これがダメならClose[0]、iHighest(NULL,0,MODE_HIGH,breakuperiod,1)です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA