マルチタイムフレーム・インディケーター - ページ 1204 1...119711981199120012011202120312041205120612071208120912101211...1222 新しいコメント greenpar 2017.07.05 08:35 #12031 Naguisa Unada: 私は固定プログラムと完全なサンプルをアップロードしました。ご指摘の通り、変更を加えました(以下の添付ファイルとコードを参照)。コンパイル時に多数のエラーが発生します(添付のコンパイルエラーの画像を参照)。私はこのインジケーターファイルの中に他のタイムフレーム、通貨ペア、そして最終的には他のインジケーター(ADXなど)を組み込みたいと考えていることを心に留めておいてください。何か更なる支援があれば、非常に感謝します。#property description "Indicator alerts when candle size is larger than CandlePoint value for specified period" #property strict #property indicator_chart_window #property indicator_buffers 0 #property indicator_plots 0 //+------------------------------------------------------------------+ //| Declaring Constants | //+------------------------------------------------------------------+ #define RESET 0 //+------------------------------------------------------------------+ //| Enumeration for the indication of operation | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Input parameters of the indicator | //+------------------------------------------------------------------+ //--- Candle point size input uint CandlePointM1 = 5; // Minimum candle points for Period M1 input uint CandlePointM5 = 5; // Minimum candle points for Period M5 int timeFrame[] = {PERIOD_M1, PERIOD_M5, PERIOD_H1}; string currencyPairs[] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"} //+------------------------------------------------------------------+ //| Custom indicator initialisation function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Deinitialisation | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Custom 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[]) //+------------------------------------------------------------------+ //| Candle size indicator | //+------------------------------------------------------------------+ { int range; static datetime alertBar[] = {0, 0, 0}; // used for one alert/bar datetime candleTime[3]; for(int i=0; i<3; i++) { for (int j=0 ;j<3 ;j++) { double candleLow, candleHigh; candleLow = iLow(currencyPairs[i],timeFrame[j],0); candleHigh = iHigh(currencyPairs[i],timeFrame[j],0); range = int((candleHigh-candleLow)/_Point); candleTime[j] = iTime(currencyPairs[i],timeFrame[j],0); if (alertBar[j] != candleTime[j]) { if (timeFrame[j] == PERIOD_M1 && range>int(CandlePointM1)) { Alert(currencyPairs[i], "PERIOD_M1", "candle >", CandlePointM1, "points"); alertBar[j] = candleTime[j]; } if (timeFrame[j] == PERIOD_M5 && range>int(CandlePointM5)) { Alert(currencyPairs[i], "PERIOD_M5", "candle >", CandlePointM5, "points"); alertBar[j] = candleTime[j]; } } } } ファイル: Candle_Size_Alert_v4.mq4 3 kb Shino Unada 2017.07.05 12:44 #12032 greenpar : ご指摘の通り、変更を加えました(以下の添付ファイルとコードを参照)。コンパイル時に多数のエラーが発生します(添付のコンパイルエラーの画像を参照)。私はこのインジケーターファイルの中に他のタイムフレーム、通貨ペア、そして最終的には他のインジケーター(ADXなど)を組み込みたいと思っていることを心に留めておいてください。ご教示いただければ幸いです。1.行末の;が抜けていました。 String currencyPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"}; 2.以下の行が抜けていました。 Return (rates_total); } 3.配列の次元を間違えてしまいました。以下のように修正し、グローバル領域に移動しました。 datetime alert_bar [3] [3]; datetime candleTime [3] [3]; ファイル: Candle_Size_Alert_v4.mq4 4 kb Sample.mq4 4 kb greenpar 2017.07.05 14:44 #12033 Naguisa Unada:1.行末の;が抜けていました。 String currencyPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"}です。 2.2. 以下の行が抜けていました。 Return (rates_total); } 3.配列の次元を間違えてしまいました。以下のように修正し、グローバル領域に移動しました。 datetime alert_bar [3] [3]; datetime candleTime [3] [3]; 改めて、本当にありがとうございました。記載されている全てのタイムフレーム、通貨ペアで アラートするようになりました。ただし、1バーに1回のアラートではなくなり、ローソク足の最小サイズを超えるローソク足が増えるごとにアラートされるようになりました。前回のメッセージに添付された 'Sample.mq4' の78、84、90行目は、ローソク足ごとに一度だけアラートするようにはなっていません。私は「[]」内の値を変更しようとしましたが、これは明らかに問題を解決しませんでした。どのようにこれを修正するのでしょうか?いつものように、さらなる支援は非常に高く評価されます。ありがとうございました。 Shino Unada 2017.07.05 23:50 #12034 greenpar : しかし、1バーにつき1回のアラートではなく、最小キャンドルポイントサイズを超えるキャンドルポイント増加ごとにアラートが出ています。前回のメッセージに添付した 'Sample.mq4' の78、84、90行目は、ローソク足ごとに一度だけアラートするようにはなっていません。私は「[]」内の値を変更しようとしましたが、これは明らかに問題を解決しませんでした。どのようにこれを修正するのですか?もちろんです。OnInit」の中に以下のような行を書けばいいんですね。 //ArrayResize(candleTime, CPNO); //ArrayResize(alert_bar, CPNO); //ArrayInitialize(alert_bar, 0); int OnInit () { //--- indicator buffers mapping TFNO = ArraySize (timeFrame); CPNO = ArraySize (currencyPairs); ArrayResize (candleTime, CPNO); ArrayResize (alert_bar, CPNO); ArrayInitialize (alert_bar, 0 ); if ( StringLen ( Symbol ()) > 6 ) { sufix = StringSubstr ( Symbol (), 6 , 0 ); for ( int i = 0 ; i < CPNO; i++) currencyPairs[i] += sufix; } //--- return ( INIT_SUCCEEDED ); }の中の数値は、上記の「ArrayResize」で調整する。通貨ペアの 数が増えても、ここで自動的に調整されますが、別の時間軸を追加したい場合は、プログラムを直接修正する必要があります。これはMQL4の仕様であるためです。 greenpar 2017.07.06 01:06 #12035 Naguisa Unada:確かにそうですね。OnInit "に以下の行を書けばいいんですね。 の中の数字は、上の「ArrayResize」で調整している。通貨ペアの 数が増えても、ここで自動的に調整されますが、別の時間軸を追加したい場合は、プログラムを直接修正する必要があります。これはMQL4の仕様であるためです。 改めてありがとうございました。コードを入れてみました。チャートからインジケータを削除し、再コンパイルし、MTを終了するなどしても、ローソク足が最小ローソク足サイズより大きくなるごとにアラートが発生する状態です。どうしたら直るでしょうか?いつものように、さらなる支援は非常に高く評価されます。ありがとうございました。 Shino Unada 2017.07.06 02:08 #12036 greenpar : チャートからインジケータを削除し、再コンパイルし、MTを終了しても、ローソク足が最小サイズより大きくなるたびにアラートが表示されます。どうすれば直るのでしょうか?私のPCでは何の問題もなく正常に動作しています。何かが間違っていると思うのですが、何が間違っているのかわかりません。 greenpar 2017.07.06 02:42 #12037 Naguisa Unada:私のPCでは何の問題もなく正常に動作しています。何かが間違っていると思うのですが、何が間違っているのかわかりません。MT4ビルド1090を動かしています。何が問題なのかよくわかりません。多分他の誰かが助けることができる?ありがとうございます。 削除済み 2017.07.06 10:22 #12038 このインジケーターをどなたか改造していただけないでしょうか。ストキャがクロスしたとき、矢印は2番目のローソク足に表示されますが、私は、ストキャがクロスしたときに毎回すぐに、現在のローソク足に矢印を表示させる必要があります。ありがとうございます。 ファイル: _Stochastic_Cross_Alert_SigOverlayM_cw.mq4 6 kb Shino Unada 2017.07.06 13:46 #12039 fxprogramer:このインジケータは、ストキャがクロスしたとき、2本目のローソク足に矢印が表示されますが、ストキャがクロスしたとき、毎回すぐに現在のローソク足に矢印を表示させたいのですが、どなたか修正していただけないでしょうか?//for(i=1; i<=limit; i++) for(i=0; i<=limit; i++) とても簡単です。77行目のi = 1をi = 0に訂正してください。 削除済み 2017.07.06 14:13 #12040 Naguisa Unada: 動作しています、素晴らしいです。 1...119711981199120012011202120312041205120612071208120912101211...1222 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私は固定プログラムと完全なサンプルをアップロードしました。
ご指摘の通り、変更を加えました(以下の添付ファイルとコードを参照)。コンパイル時に多数のエラーが発生します(添付のコンパイルエラーの画像を参照)。
私はこのインジケーターファイルの中に他のタイムフレーム、通貨ペア、そして最終的には他のインジケーター(ADXなど)を組み込みたいと考えていることを心に留めておいてください。
何か更なる支援があれば、非常に感謝します。
ご指摘の通り、変更を加えました(以下の添付ファイルとコードを参照)。コンパイル時に多数のエラーが発生します(添付のコンパイルエラーの画像を参照)。
私はこのインジケーターファイルの中に他のタイムフレーム、通貨ペア、そして最終的には他のインジケーター(ADXなど)を組み込みたいと思っていることを心に留めておいてください。
ご教示いただければ幸いです。
1.行末の;が抜けていました。
String currencyPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"};
2.以下の行が抜けていました。
Return (rates_total);
}
3.配列の次元を間違えてしまいました。以下のように修正し、グローバル領域に移動しました。
datetime alert_bar [3] [3];
datetime candleTime [3] [3];
1.行末の;が抜けていました。
String currencyPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"}です。
2.2. 以下の行が抜けていました。
Return (rates_total);
}
3.配列の次元を間違えてしまいました。以下のように修正し、グローバル領域に移動しました。
datetime alert_bar [3] [3];
datetime candleTime [3] [3];
改めて、本当にありがとうございました。記載されている全てのタイムフレーム、通貨ペアで アラートするようになりました。
ただし、1バーに1回のアラートではなくなり、ローソク足の最小サイズを超えるローソク足が増えるごとにアラートされるようになりました。前回のメッセージに添付された 'Sample.mq4' の78、84、90行目は、ローソク足ごとに一度だけアラートするようにはなっていません。私は「[]」内の値を変更しようとしましたが、これは明らかに問題を解決しませんでした。どのようにこれを修正するのでしょうか?
いつものように、さらなる支援は非常に高く評価されます。ありがとうございました。
しかし、1バーにつき1回のアラートではなく、最小キャンドルポイントサイズを超えるキャンドルポイント増加ごとにアラートが出ています。前回のメッセージに添付した 'Sample.mq4' の78、84、90行目は、ローソク足ごとに一度だけアラートするようにはなっていません。私は「[]」内の値を変更しようとしましたが、これは明らかに問題を解決しませんでした。どのようにこれを修正するのですか?
もちろんです。OnInit」の中に以下のような行を書けばいいんですね。
の中の数値は、上記の「ArrayResize」で調整する。通貨ペアの 数が増えても、ここで自動的に調整されますが、別の時間軸を追加したい場合は、プログラムを直接修正する必要があります。これはMQL4の仕様であるためです。
確かにそうですね。OnInit "に以下の行を書けばいいんですね。
の中の数字は、上の「ArrayResize」で調整している。通貨ペアの 数が増えても、ここで自動的に調整されますが、別の時間軸を追加したい場合は、プログラムを直接修正する必要があります。これはMQL4の仕様であるためです。
改めてありがとうございました。コードを入れてみました。
チャートからインジケータを削除し、再コンパイルし、MTを終了するなどしても、ローソク足が最小ローソク足サイズより大きくなるごとにアラートが発生する状態です。どうしたら直るでしょうか?
いつものように、さらなる支援は非常に高く評価されます。ありがとうございました。
チャートからインジケータを削除し、再コンパイルし、MTを終了しても、ローソク足が最小サイズより大きくなるたびにアラートが表示されます。どうすれば直るのでしょうか?
私のPCでは何の問題もなく正常に動作しています。何かが間違っていると思うのですが、何が間違っているのかわかりません。
私のPCでは何の問題もなく正常に動作しています。何かが間違っていると思うのですが、何が間違っているのかわかりません。
MT4ビルド1090を動かしています。何が問題なのかよくわかりません。多分他の誰かが助けることができる?
ありがとうございます。
このインジケーターをどなたか改造していただけないでしょうか。ストキャがクロスしたとき、矢印は2番目のローソク足に表示されますが、私は、ストキャがクロスしたときに毎回すぐに、現在のローソク足に矢印を表示させる必要があります。
ありがとうございます。
このインジケータは、ストキャがクロスしたとき、2本目のローソク足に矢印が表示されますが、ストキャがクロスしたとき、毎回すぐに現在のローソク足に矢印を表示させたいのですが、どなたか修正していただけないでしょうか?
とても簡単です。77行目のi = 1をi = 0に訂正してください。
動作しています、素晴らしいです。