エラー、バグ、質問 - ページ 1545

 
Alexey Volchanskiy:
Youtubeは、暴力的な広告やポルノがなく、サイズが15MB未満であれば、aviのすべてのファイルを受け入れることができます(アドバンスドモードでない場合)。また、署名も含め、広告がないことが望ましい。
PMでメールしました。私には効きません。
 
Karputov Vladimir:

このフォーラムは技術的なフォーラムであり、すべてのコメントは確認する必要があります。

  • 端末とOSの情報(端末を再起動した後のログタブの最初の3行)。
  • コード
  • 何をしたのか、何を得たのかを詳しく説明する。

私が観察したことをかなり詳細に記述しています。開発者は私に何の借りもないし、私も彼らに何の借りもない。興味を持たれたら、サービスデスクで話を聞いてみる。

空のインジケーターのコードは一目瞭然です。

 
comp:

インジケータ(標準モード - デバッグではない)が更新されるが、新しいバーが描画されない様子をビデオに記録しました。チャートからインジケータを離すと、すぐに新しいバーが 表示されます。

ホスティングがビデオファイルを受け付けない。必要であれば、そのままservicedeskに送ります。

アーカイブに束ね、送る。Zipファイルに対応しています。
 
MetaTrader 5の「Precise time scale」をプログラムで 有効/無効にする方法を教えてください。見つからない。
CHART_SHOW_DATE_SCALEを通して - これは、私が理解しているように、それではない です。

以下の経路で、手動で関心時間を有効にします。

ターミナル→サービス→設定→グラフィックス→プリサイスタイムライン


以下にテストコードを添付します。取引端末で「正確な時間スケール」が手動で有効になっている場合、このテスト指標は2つのバー間に タイポイントを持つ垂直線セグメントを 描画します。有効でない場合は、バーとバーの間にありません。

以下のスクリーンショットは、"Precise time scale "を有効にした場合に、テストコードによってバーの間に作成される垂直線セグメントを示しています。



さっそく2つ目の気になることをお伝えします。

このコードをテスターで実行すると、バーとバーの間に アンカーポイントがある線が描画されません上のスクリーンショットのように作成されるのではなく、下のスクリーンショットのように作成されます。

MetaTrader 5 バージョン: 5.00 build 1295

最初の質問に対する答えがないので、ここでより正確な質問をする方法がわかりません。



P./S:

いくつかの点を明確にしました。

  • スクリーンショットを追加しました。
  • をテストコードに置き換え、ここで使われていない変数を削除し、別ウィンドウを表示しました。
  • 紺色のフォントで、本文の中で私が行った説明をしています。
ファイル:
 

MT5でターミナルからOnCalculateを呼び 出すにはどうしたらよいですか?ChartRedrawは役に立ちません。DLLバリアントは適しません。

つまり、Calculateイベントを作成する必要があるのです。https://www.mql5.com/ru/docs/runtime/event_fire#calculate。

Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
Программы MQL5 / События клиентского терминала - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

検索結果から、MQL5のヘルプには、MetaTrader 5の「Precise time scale」をプログラムで 有効/無効にする機能はないようだ、という結論に達しました。

なぜか、この点については、最近になって何か変化があったような印象があります。もちろん、私が間違っているに違いないのですが。

もしそうなら、上の最初の質問を もう一度します。

プログラムによる「正確な時間軸」の有効化・無効化機能はありますか?


また、どちらの場合も(導入される、されないにかかわらず):テスターでこのオン・オフの切り替えはどうやるのですか?

 
comp:

MT5でターミナルからOnCalculateを呼び 出すにはどうしたらよいですか?ChartRedrawは役に立ちません。DLL-versionが動作しない。

もし見つけたら、私にも教えてください(笑)。

今のところ、私の知る限りでは「ありえない」というのが答えです。

 
Комбинатор:

もし見つけたら私も教えてください(笑)。

今のところ、私の知る限りでは「ありえない」というのが答えです。

私がアドバイザーなら、こんな感じです。

#define  PERIOD_NULL -1

void CallOnCalculates( void )
{
  const string Name = __FUNCTION__;

  if (GlobalVariableCheck(Name))
  {
    const int Value = (int)GlobalVariableGet(Name);

    if (Value == PERIOD_NULL)
    {
      GlobalVariableDel(Name);

      ExpertRemove();
    }
    else if (ChartSetSymbolPeriod(0, Symbol(), (ENUM_TIMEFRAMES)Value))
      GlobalVariableSet(Name, PERIOD_NULL);
  }
  else
  {
    const ENUM_TIMEFRAMES period = Period();

    if (ChartSetSymbolPeriod(0, Symbol(), (period == PERIOD_MN1) ? PERIOD_W1 : PERIOD_MN1))
    {
      GlobalVariableTemp(Name);

      GlobalVariableSet(Name, period);
    }
  }

  return;
}

void OnInit( void )
{
  CallOnCalculates();

  return;
}

しかし、私は別のことで必要な のですが、私には合いません。

 
comp:

Expert Advisorによる場合は、次のようになります。

スクリプトであれば、(TFを変更することなく)チャート上の特定のインディケータに対して、または一度にすべてのインディケータに対してOnCalculateを呼び出す ことができます(実装は完全に異なります)。

しかし、私は別のことで必要な のですが、このバリエーションは適していません。

しかし、この(スクリプト)バリエーションは、ターミナルが独自のOnCalculate(MT5)を呼び出すようにする必要がある場合にも適していません。

 
インジケータがあれば、インジケータが必要