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

 
Renat Akhtyamov:

さて、次に、バーの 数がまさにこの線となるインジケータサイクル。

私は疑問に思う - クリア(?)、すなわちオフラインモードでのMT5の特殊性について読むことができる場所、私に教えてくださいませんか?

rates_total インジケータ -OnCalculate() ループで Bars() の代わりに使用することに成功しました。
 
Artyom Trishkin:
rates_total インジケータでは、OnCalculate() のループ内で Bars() の代わりに正常に使用されています。

なるほど。そう、そういうものがあるんです。

多通貨のインジケータを使用しているので、異なる商品/タイムフレームで同じ数のバーが あるのでしょうか?

ここでパラメータを変更することができます

Bars(_Symbol,_Period);

しかし、異なるタイムフレームやシンボルに対してインジケータを計算するためのrates_totalはどうでしょうか?

 
Renat Akhtyamov:

なるほど。そう、そういうものがあるんです。

多通貨のツールを使用しているので、異なる商品/時間枠でも同じ数のバーが あるのでしょうか?

マルチ通貨/マルチタイムフレームのインディケータで非現在の タイムフレームまたは非現在の シンボルの履歴のバー数を取得するには、Bars()を使用する必要があります。
 
Artyom Trishkin:
マルチ通貨/マルチタイムフレームのインジケータで非現在の タイムフレームまたは非現在の シンボルの履歴のバー数を取得するには、Bars() を使用します。

まさに、引用履歴はあるが、この機能はオフラインでは使えないということを書いているのです

そのため、オフラインでインジケーターをテストすることはできません。

MT5の気配値は各IPに個人的に送信されることが判明し、すでにチャートに描かれている気配値の履歴とは異なる場合があるのですね。//というわけで...。

 
Renat Akhtyamov:

と表示され、その中のバーの 数がまさにこの線になるインジケーターです。

と思うのですが、オフラインモードでのMT5の特殊性については、どこを読めばクリア(?)できるのでしょうか、教えていただけませんでしょうか。

MT5があることは明らかです。Bars()を呼び出す 前に何が行われたかは不明です。このシンプルなスクリプトは、サーバーに接続されていないときや、ネットワークが全くないときでも動作し、ゼロを返しません。

私はインジケーターで試したことがないので、あなたの場合はどうなのかと聞いたわけです。再コールが実数である場合、最初のコールでキャッシュのデータが更新されることがほとんどである。

void OnStart()
  {
        Print("Bars on chart - ",Bars(_Symbol,PERIOD_CURRENT));  
  }
 
Vitalie Postolache:

MT5があることは明らかです。Bars()を呼び出す 前に何が行われたのかが不明です。このシンプルなスクリプトは私の場合、サーバーに接続されていないときやネットワークが全くないときでもゼロを返しません。

私はインジケーターで試したことがないので、あなたの場合はどうなのかと聞いたわけです。

void OnStart()
  {
        Print("Bars on chart - ",Bars(_Symbol,PERIOD_CURRENT));  
  }
はっきり
 

ローソク足の終値に連動してEAを実行するシンプルな方法は?インジケーターの再計算、注文の削除/発注などを 行うため?

タイマーで?

しかし、タイマーの起動から1時間ごとではなく、1時間ごとのHH:00:00に起動させるには、どのようにしたらよいのでしょうか?

 
dimnik:

ローソクの終値に連動してEAを実行する簡単な方法は?インジケーターの再計算、注文の削除/発注などを 行うため?

タイマーで?

しかし、タイマーの起動から1時間ごとではなく、1時間ごとのHH:00:00に起動させるには、どのようにしたらよいのでしょうか?

現在のローソクの開始時刻を確認し、前回確認した開始時刻と比較します。等しい場合は、新しいバーがまだ開かれていないことを意味し、OnTick()から戻ります。等しくない場合 - 私たちは新しいバーの開口部を特定した - その後、我々はエキスパート-アドバイザに書かれているすべてを実行し、次のチェックのために新しいオープン時間を覚えています。
 
Vitaly Muzichenko:

グラフィックの質問です。

こんなデザインもあります

for(long currChart = ChartFirst();currChart != -1; currChart=ChartNext(currChart)) {
 if(currChart == график тестера) continue; // Что сюда написать?
  ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}

メインのチャートではなく、テスターモードで開いていることを知り、それをスキップするにはどうしたらよいでしょうか。

提案として

チャートのテンプレートを作成し、例えば "TesterChart "などの名前のラベルを貼る、または他のオブジェクトを表示されないようにゼロ座標を使用することができます。このテンプレートに "Tester "という名前をつけます。これで、テストから得られるすべてのチャートは、この名前のオブジェクトを 持つようになります。次に、チャートにこのオブジェクトがあるかどうかを尋ね、「はい」の場合は「Our Tester」、「スキップ」します。

スルーして、でも他の方法は知らない。

 
Vasiliy Pushkaryov:
提案として

チャートのテンプレートを作成し、"TesterChart "などの名前や他のオブジェクトのラベルを付け、場合によっては見えないようにゼロ座標で表示します。このテンプレートに "Tester "という名前をつけます。これで、テストから得られるすべてのチャートは、この名前のオブジェクトを 持つようになります。次に、グラフにこのオブジェクトがあるかどうかを尋ねます。はい、それは「Our Tester」です、スキップしてください。

方法はわからないが、他に方法はない。

ありがとうございます、しかし、このソリューションは、私は複数のテンプレートでテストしているという意味で適していませんが、それは半分のトラブルですが、この指標は私のために働いていないという事実は、人々は単にテスターでラベルを充填するのに疲れてしまうのです。

テスターでチャートが動くかどうか、プログラムで判断する方法がないことが判明?開発者はどこにいるのですか?

.

理由: