質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

Q&A

0回答

1331閲覧

mql言語、エラーなし、表示されない、アラートならない

退会済みユーザー

退会済みユーザー

総合スコア0

MQL4

MQL4とは、MT4(MetaTrader4)で用いられるプログラム言語です。MT4は無料で使えるチャートソフトあり、MQL4を使うことで分析ツールのオリジナルスクリプトの作成ができます。

0グッド

0クリップ

投稿2021/07/22 14:56

編集2021/07/23 12:00

mt4にて

直近過去足の1本~4本の中で検証します。
ロウソク足の実体の幅が一番小さいのが1本前なのであれば「印・アラート・通知」を行うインジケーターを作りました。

エラーは出なかったのですが、目的の「印・アラート・通知」のすべて機能していないようでした。

if(AM==1)の部分を if(AM=1)と記述していたのを見つけたので訂正してみましたが、変化はありませんでした。

もうこれ以上は、どのように修正したらよいのかわかりません。完全にお手上げでした。

心優しいお暇な方、どうか回答をよろしくお願いいたします。

コード//+------------------------------------------------------------------+ //| NR7.mq4 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 2 #property indicator_plots 2 //パラメータ input int NR = 4; //NR input color CLR = Yellow; //色 input int WIDTH = 3; //太さ //--- indicator buffers double NRBuffer[]; double JittaiBuffer[]; string title = Symbol() + ", M" + IntegerToString(Period()) + ": NR4!!."; string text = "Open Buy¥nat " + TimeToString(TimeCurrent()); //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,NRBuffer); //styleを設定します。SetIndexStyle(バッファーの番号(何番目のバッファーなのか)、style、線種、太さ、色) SetIndexStyle(0,DRAW_ARROW,EMPTY,WIDTH,CLR); //名前の指定SetIndexLabel(バッファーの番号(何番目のバッファーなのか),"名前") SetIndexLabel(0,"NR"); SetIndexArrow(0,174); SetIndexBuffer(1,JittaiBuffer); // SetIndexStyle(1,EMPTY); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- /*表示されているすべてのロウソク足の数だけforの中を繰り返す。 for(int i=0; i<Bars; i++){ */ //limitは計算する最大数のこと。IndicatorCountedとは今まで既に計算されたインジケーターの数が入っている。初めは0が入ります。 int limit = Bars - IndicatorCounted()-1; if(limit<1)limit=1; for(int i = limit; i>=0; i--){ //始値と終値を整数値で保存する double Op = MathAbs(iOpen(Symbol(),0,i)); double Cl = MathAbs(iClose(Symbol(),0,i)); //始値と終値の小さいほうの値を返す double small = MathMin(Op,Cl); //始値と終値の大きいほうの値を返す double big = MathMax(Op,Cl); //ロウソク足の実体の数値をバッファー配列に入れる JittaiBuffer[i] = big-small; //4本前までの中で一番小さい実体の足のインデックス番号を見つける int AM = ArrayMinimum(JittaiBuffer,4,1); //もし一番小さい実体がひとつ前の足ならNRバッファーに実体の数値をいれる。 //さらにアラート等を送る if(AM==1){ NRBuffer[i+1] = JittaiBuffer[i+1]; Alert(Symbol()+" M"+Period()+" NR4"); SendMail(title, text); SendNotification(title); }; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

odataiki

2021/07/23 01:14

とりあえず、質問文を編集して <code>(コードの挿入)の中にコードを含めましょう。 (読みやすく表示されるようになります) せっかく開示頂いたコードですが読みずらく、コピーもしずらく、検証もしずらい、 つまり回答がつきにくい状態です。
退会済みユーザー

退会済みユーザー

2021/07/23 11:55

そうだったんですね。教えていただき、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問