指定期間毎に自動でチャートを更新するインジケーターかスクリプトか何か

コメントを加えるため、ログインしてくださいまたは登録するをしてください
Harumi Saburou
20
Harumi Saburou  

インジケーターによってはチャートを更新しないと表示に変化がないものもあります。(特に図形表示系)

そこで、自動で更新してくれる機能を持たせられないかなと思っております。

どなたかそのようなインジケーターなどご存知でしょうか。

よろしくお願いいたします。

Harumi Saburou
20
Harumi Saburou  

ネットで見つけたサンプルをいじって自分で作りました。

Harumi Saburou
20
Harumi Saburou  

できたと思ったらできていませんでした。

ChartRedrawでえられる結果と、手動で更新することによって得られる結果は違うようです。

と言うかちゃんとインジで更新できていたのかはわかりません。

goldilocksbears
41
goldilocksbears  
MQL4 か MQL5 かくらいは書いたほうがいいような
Harumi Saburou
20
Harumi Saburou  
goldilocksbears:
MQL4 か MQL5 かくらいは書いたほうがいいような
失礼しました。MQL5のフォーラムでMQL4の話をする人はいないと思ったので。
Yutaka Okamoto
4376
Yutaka Okamoto  
Harumi Saburou:

インジケーターによってはチャートを更新しないと表示に変化がないものもあります。(特に図形表示系)

そこで、自動で更新してくれる機能を持たせられないかなと思っております。

どなたかそのようなインジケーターなどご存知でしょうか。

よろしくお願いいたします。

もしかして、マーケットが開いている時と閉じている時違いかもしれませんね。

一般的なインジケータは、Initイベントで初期化(OnInitメソッド)をした後、

Calculateイベント(OnCalculateメソッド)で計算・リペイントするのが基本の作り方となりますが、

Calculateイベントはマーケットが開いていない時(レートの更新が無い時)は1度しか発生しないと

思います。


MQL4からのソース(実装)を見ると、Timerイベントを使用して、強制的に描画するといった方法が

常套手段として採用されているようです。(好き嫌いは分かれると思いますが)


図形描画系であれば、ChartEventイベント(OnChartEventメソッド)で個々のイベントを拾って

再描画するのが一般的かもしれません。


また、ChartRedraw()はキューに積まれるイメージだと思います。

(すぐに反映されるわけではなく、チャートのイベントループで纏めて処理されてる。

 Dirtyフラグ的なものに印をつけているような動きに思えます。定かではないですが)


ではでは。

goldilocksbears
41
goldilocksbears  

そちらの環境がわからないので、なんとも言えないが

これでお望みどおりになるだろうか


// MQL5/Scripts/run-oncalc01.mq5


#property script_show_inputs

input int MILLISECONDS = 1000;

int OnStart()
{
    for (;;) {
        Print("ChartSetSymbolPeriod(0, NULL, ", Period(), ") => ",
                ChartSetSymbolPeriod(0, NULL, Period()));

        Sleep(MILLISECONDS);
    }

    return 0;
}


間隔は、ダイアログからミリ秒で指定

止めるときは、チャート内の右上のアイコン、右クリックから

Graceful Shutdown (正常に終了すること) は、できないと思ってほしい

かならずデモ口座を使うこと


ちゃんと動かすなら、もっと作り込まないとダメだと思う


参考: https://www.mql5.com/ja/docs/chart_operations/chartsetsymbolperiod

MQL5のドキュメンテーション: チャート操作 / ChartSetSymbolPeriod
MQL5のドキュメンテーション: チャート操作 / ChartSetSymbolPeriod
  • www.mql5.com
チャート操作 / ChartSetSymbolPeriod - MetaTrader 5 のためのアルゴリズムの/自動化されたトレーディング言語のリファレンス
ファイル:
コメントを加えるため、ログインしてくださいまたは登録するをしてください