MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 42

 

Artyom Trishkin:

...正しいのですが、間違ったバーからです。これは知っておかなければならないし、考慮しなければならない。

つまり、マルチタイムデータ取得では、時間を頼りに、適切なタイムフレームでバー番号に再計算する必要があります。

分かりやすい説明ありがとうございました。

そこで、EAでこのようにインジケータを 呼び出すと

ozy_verh=NormalizeDouble(iCustom(NULL, 240, "Ozy", Amplitude, 3, 1), Digits);

をH1で実行すると、インジケータは最初のバーのH4から読み込まない。

その時、インジケーターの数値はどうなるのか、また、H4から正しい数値を得るにはどうしたらよいのか。

int TimeFrame = 240;

ozy_verh=NormalizeDouble(iCustom(NULL, TimeFrame, "Ozy", Amplitude,3,iBarShift(Symbol(),TimeFrame,iTime(Symbol(),TimeFrame,1)) ), Digits);


では、H4からインジケーターの値は正しくなるのでしょうか?



 
mila.com:

分かりやすい説明ありがとうございました。

このようにEAでインジケータを呼び出すと、次のようなことが判明しました。

ozy_verh=NormalizeDouble(iCustom(NULL, 240, "Ozy", Amplitude, 3, 1), Digits);

をH1で実行すると、インジケータは最初のバーのH4から読み込まない。

では、どのようなインジケーターの読み方をすれば、シニアTFから正しい読みが得られるのか、どのようにすれば正しい読みが得られるのか。

int TimeFrame = 240;

ozy_verh=NormalizeDouble(iCustom(NULL, TimeFrame, "Ozy", Amplitude,3,iBarShift(Symbol(),TimeFrame,iTime(Symbol(),TimeFrame,1)) ), Digits);


では、H4からインジケーターの値は正しくなるのでしょうか?



あなたが書いた方法でインジケータを呼び出すと

ozy_verh=NormalizeDouble(iCustom(NULL, 240, "Ozy", Amplitude, 3, 1), Digits);

の場合、インジケータのデータは、現在のシンボル、PERIOD_H4、4番目のバッファ、H4タイムフレームの最初のバーから取得されます。

私が話したことを誤解しているのでは?

つまり、M5でEAが動いていて、M5のバー1からデータを取得する場合、上位のバー、例えばH1から何が起こっているかを見たい場合、上位のH1からもバー1から値を取得すると、現在H1にある値ではなく、最後の1時間にあった値が取得されることになります。M5のバー1がH1のバー0の内側にあるからです。

これが、今お話したような、考慮しなければならないことなのです。

 
Vitaly Muzichenko:

テスターのログを意味します

追記:コードを正常な状態に組み立て、修正した後、テスターで実行し、ログのエラーを読み取る。あなたはここでコードの断片を与えています。

これです。チェックについては理解できるが、どこからがチェックなのかがわからない。

ファイル:
count.mq4  17 kb
 
Artyom Trishkin:

これを考慮しなければならないし、これが私の言っていたことです。

M5にEAを置き、H1の1本目からインジケータの値を取得したい場合、以下のような入力でよろしいのでしょうか?

ozy_verh=NormalizeDouble(iCustom(NULL, 60, "Ozy", Amplitude, 3, 1), Digits);
 
mila.com:

Expert Advisor を M 5 に配置し、H1 の指標値を最初のバーから取得したい場合、以下の入力でよろしいでしょうか。

ozy_verh=NormalizeDouble(iCustom(NULL, 60, "Ozy", Amplitude, 3, 1), Digits);

1の代わりにNo:

datetime _time1 = iTime(Symbol(), PERIOD_H1, 1);
int      _n     = iBarShift(Symbol(), PERIOD_CURRENT, _time1);
// ваша формула
ozy_verh=NormalizeDouble(iCustom(NULL, 60, "Ozy", Amplitude, 3, _n), Digits);
サーバーや 自分でEAを 使う場合で、H1チャートも開いていない場合のみ、余計なチェックをする必要があります。
 

Oksana Berenko:

... が、H1チャートも開い てないだろうから、余計にチェックが必要。

ありがとうございます。

M5チャートを1つ開いていて、そこにEAを入れていて、お書きいただいたようにH1インジケータを呼び出しているのです。

他に必要なチェックはありますか?

 
mila.com:

M5にExpert Advisorを置き、H1の1本目のバーからインジケータの値を取得したい場合、以下の入力でよろしいでしょうか。

ozy_verh=NormalizeDouble(iCustom(NULL, 60, "Ozy", Amplitude, 3, 1), Digits);

そうですね。どの時間枠のデータが必要かは、最初のバーによりますが...。

まだ私が言ったことを理解してないようだな...。

 
こんにちは、mt4とmt5の主な違いについて教えてください。大きな違いは見当たりません。
 

午後の部 ...

if (OrderType()==OP_SELL) CloseOpBuySell("BUY");

if (OrderType()==OP_BUY) CloseOpBuySell("SELL");

ここで、買いポジションを持つときに売りポジションをクローズし、その逆を行う必要があるのですが、トリガーされますか?

私は左の部分にだけ興味があります OrderType()==OP_SELL

右側は任意の信号が押されると動作 します。

質問:「このクローズは使えるのでしょうか?

 
elektrik777:
こんにちは、mt4とmt5の主な違いについて教えてください。大きな違いは見当たりませんね。
違いはEA、スクリプト、指標のプログラミング言語で、MT5が証券取引所で取引できるのに対し、MT4はできないことを除けば、その他はすべて同じです。