見守り電球またはGPS端末が特価中!

MetaTrader4のスクリプト初心者です。
サブウインドウに表示している移動線同士が交差したらアラートを出して、メールで知らせるスクリプトの書き方ご存知の方教えていただけないでしょうか?

サブウィンドウにMT4標準で罫線分析ツールに入っているStochastic Oscillator(メインとシグナル)とMoving Averageを表示しています。

それぞれの設定は次のとおりです。
Stochastic Oscillator
%K 14, %D 3, Slowing 3, Price field Low/High, Sinple, 下限 0, 上限 100
Moving Average
期間 14, 表示移動 0, Exponential, First Indicator's Data
(メインウィンドウのFirst Indicatorは、期間 84, 表示移動 0, Simple, Close)

添付画像だと、Stochasticが黄線と赤線、Moving Averageが緑線です
緑線と黄線、緑線と赤線がクロスするときにアラートとメールを送るようにしたいのです。

自分でも探してみたのですが、サブウィンドウにあるStochasticとMoving Averageのクロスを表示するインジケーターらしきものは見つからなかったので、ご存知の方いらっしゃらないでしょうか
参考になるスクリプトでも、もちろん結構です。
よろしくお願いいたします。

「MT4サブウインドウの移動線のクロスをア」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (1件)

まず、スクリプトとインジケーターの違いを勉強してから、応用編に進みましょうね。

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QMT4のサブウインドウの左上の表示を消したい

MT4のサブウインドウにMACD(Custom)というインジケーターとMT4標準のストキャスティクスを表示しているのですが、ウインドウの左上にテクニカル指標の名前や数値が表示されています。これを非表示にする事はできないでしょうか。

現在、メインモニターに1分足のチャートを大きなウインドウサイズで表示させて、片隅に5分足のチャートのウインドウを小さく表示しているのですが、ウインドウサイズが小さいとテクニカル指標が上段付近に行った場合は、文字がラインの上に重なって表示されるので、ラインがどうなっているのか判別できません。
別のモニターには大きいサイズで5分足も表示させているから、それを見ればテクニカルのラインも見えますが、極力視線移動を少なくして素早く確認をしたい時にはあると便利なので、どうにかこの左上の文字を無くしたいです。

よろしくお願いします。

Aベストアンサー

左上の表示は少なくすることはできますが、仕様なので完全に消すことは普通はできません。
ここでいつもは仕様なのでしようがない、と言うところですが、
もうお気付きでしょうが、「普通は」です ^^;

don-naldoさんの使用方法ならば以下のやり方でO.K.ではないでしょうか。

(1)小さい方の5分足チャート上で右クリックしてプロパティを選択
(2)色の設定タブを選び、右側に並んでいる色選択の上から2つ目の「前景色」のプルダウン・メニューを表示させる(デフォルトは普通はWhite)
(3)メニューの一番上の「None」を選択

これによりチャートの文字が全て消えます(消えちゃいます)。
don-naldoさんの場合は別に5分足チャートを表示されているので、これで大丈夫だと思いますが、どうですか?

QFX:指定した時間の高値・安値を返すプログラムを教えてください。(MT4)

指定した時間の高値・安値を返すプログラムを教えてください。

具体的に言うと、、21時から23時の間の高値・安値です。

少し調べたところ、iHighest,iLowestやiBarSHiftの関数で値を出せると思ったのですが、
この関数では、指定の期間が、”現在から何本前の足から何本分の期間”といったように時刻で指定できないみたいで困っております。

※MT4を使用しております。

Aベストアンサー

ちょっと自信ありませんが、とりあえず作ってみました。
今、手元に、MT4がないので、コンパイルその他の実験をしておりません。エラー等ありましたら、どうかご容赦を。

double H=0; // 最高値を変数として宣言
double L=0; // 最安値を変数として宣言
int T = TimeHour(CurTime()); // 現在の時刻を変数として宣言

if(T!=23) // もしも現在が23時台でなければ、
{
H= High[iHighest(NULL,PERIOD_H1,MODE_HIGH,2,T+2)];
L= Low[iLowest(NULL,PERIOD_H1,MODE_LOW,2,T+2)];
}
else // もしも現在が23時台であれば、
{
H=High[iHighest(NULL,PERIOD_H1,MODE_HIGH,2,1)];
L=Low[iLowest(NULL,PERIOD_H1,MODE_LOW,2,1)];
}

ちなみに、TimeHour()関数については、以下のサイトで詳しく解説されておりました。

http://jidoubaibai.com/index.html

また、私は、ごく最近MT4の勉強をはじめたばかりで、質問者の方と同様、いろいろ苦労しております。

ちょっと自信ありませんが、とりあえず作ってみました。
今、手元に、MT4がないので、コンパイルその他の実験をしておりません。エラー等ありましたら、どうかご容赦を。

double H=0; // 最高値を変数として宣言
double L=0; // 最安値を変数として宣言
int T = TimeHour(CurTime()); // 現在の時刻を変数として宣言

if(T!=23) // もしも現在が23時台でなければ、
{
H= High[iHighest(NULL,PERIOD_H1,MODE_HIGH,2,T+2)];
L= Low[iLowest(NULL,PERIOD_H1,MODE_LOW,2,T+2)];
}
else // もしも現在...続きを読む


人気Q&Aランキング