• ベストアンサー

MT4についての質問です

直近の価格の高値、安値をあらわす    iHighest(NULL,0,MODE_HIGH,kperiod,1)   [iLowest(NULL,0,MODE_LOW,kperiod,1) の様にRSI等の直近何日間の 高値、安値を取得するプログラム方法 を教えて下さい、宜しくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

RSI Channelというインジがあります。 参考にしてみては? 登録なしでダウンロードできます http://ruforum.mt5.com/threads/17301-torgovaya-strategiya-zigzag-grider/page8

ossy829
質問者

お礼

参考になりました。有難うございました。

関連するQ&A

  • MT4のRSIの計算式についての質問です。

    MT4のRSIをJavaで計算しようと思っています。 FXは初心者なので、分かりやすくご説明して頂けるとありがたいです。 私が調べたところ2つ程計算式があるようでした。 http://www.k3.dion.ne.jp/~forex/tc/rsi.htm 私が困っているRSIの計算に似たようなことが掲載されている下記のサイトもありました。 http://d.hatena.ne.jp/fai_fx/20090720/1248018736 上記のサイトのパターンBで計算しても同じような計算結果が得られません。(RSI2) なお、プログラムのRSIはパターンAです。 それでは、下記にJavaプログラムを記載致します。 /** * RSIを計算します。 * @param hajimene_data 始値データ * @param owarine_data 終値データ * @param takane_data 高値データ * @param yasune_data 安値データ * @param count 現在のカウント * @param a 「a」のRSIを作成 * @return RSIの値 */ public static double RSI( double[] hajimene_data, double[] owarine_data, double[] takane_data, double[] yasune_data, int count, int a) { //値上がり幅を格納 duble neagari = 0.0; //値下がり幅を格納 double nesagari = 0.0; for(int i = count;i >= count - a;i--){ //値上がり if(hajimene_data[i] < owarine_data[i]){ //値上がり幅の更新 neagari += owarine_data[i] - hajimene_data[i]; //値下がり }else{ //値上がり幅の更新 nesagari += hajimene_data[i] - owarine_data[i]; } } //RSIの値を計算 return neagari / (neagari + nesagari) * 100; } /** * RSIの値上がり幅、値下がり幅を計算します。 * @param hajimene_data 始値データ * @param owarine_data 終値データ * @param takane_data 高値データ * @param yasune_data 安値データ * @param count 現在のカウント * @param a 「a」のRSIを作成 * @return RSIの値上がり幅、値下がり幅 */ public static double[] RSI_Syokisyori( double[] hajimene_data, double[] owarine_data, double[] takane_data, double[] yasune_data, int count, int a) { //値上がり幅、値下がり幅を格納 double[] rsi_base = new double[2]; for(int i = count;i >= count - a;i--){ //値上がり if(hajimene_data[i] < owarine_data[i]){ //値上がり幅の更新 rsi_base[0] += owarine_data[i] - hajimene_data[i]; //値下がり }else{ //値上がり幅の更新 rsi_base[1] += hajimene_data[i] - owarine_data[i]; } } //平均を算出 //rsi_base[0] /= a; //rsi_base[1] /= a; //RSIの値を計算 return rsi_base; } /** * RSIを計算します。 * @param hajimene_data 始値データ * @param owarine_data 終値データ * @param takane_data 高値データ * @param yasune_data 安値データ * @param count 現在のカウント * @param a 「a」のRSIを作成 * @return RSIの値 */ public static double RSI2 double[] hajimene_data, double[] owarine_data, double[] takane_data, double[] yasune_data, int count, double[] RSI_Base, boolean flg, int a) { //1日目の値上がり幅の平均を算出 double syoki_neagari = RSI_Base[0]; //1日目の値下がり幅の平均を算出 double syoki_nesagari = RSI_Base[1]; //値上がり幅を格納 double neagari = 0.0; //値下がり幅を格納 double nesagari = 0.0; for(int i = count;i >= count - a;i--){ //値上がり if(hajimene_data[i] < owarine_data[i]){ //値上がり幅の更新 neagari += owarine_data[i] - hajimene_data[i]; //値下がり }else{ //値上がり幅の更新 nesagari += hajimene_data[i] - owarine_data[i]; } } //RSIの値を計算 return (syoki_neagari * (a-1) + neagari) / ((syoki_neagari * (a-1) + neagari) / a + (syoki_nesagari * (a-1) + nesagari) /a); } なお、下記がRSI_SyokisyoriとRSI2の呼び出し元です。 //RSIフラグ boolean RSI_flg = false; //RSIの計算 if(count >= RSI && RSI_flg == false){ //RSIの初期計算 RSI_Base = methods.Technical.RSI_Syokisyori(hajimene_data, owarine_data, takane_data, yasune_data, count, RSI); RSI_flg = true; }else if(count >= RSI && RSI_flg == true){ //RSIの計算 RSI_data[count] = methods.Technical.RSI3(hajimene_data, owarine_data, takane_data, yasune_data, count, RSI_Base, RSI_flg, RSI) }

  • MT4でsmaとrsiを別ウインドウで表示

    mt4の一つのmq4プログラムで、メインウインドウに移動平均線を、サブウンドウにRSIを表示することはできますか。 それぞれを別のMQ4として挿入すればできるのですが、一個のプログラムでやりたいのです。 下記のテストで、 //#property indicator_chart_window #property indicator_separate_window では、いずれかしか指定できないので 、smaとrsi を別々のウインドウ に表示させることは、色々試しましたができませんでした。 ”FXメタトレーダ実践”書籍にはこれに関した明確な記述はなく、EA集の本にもこのような例が無いのです。 propaty指定で表示するウインドウを指標に合わせて設定できれば良いのですが・・・・。 //#property indicator_chart_window #property indicator_separate_window #property indicator_buffers 2 double sma[]; double rsi[]; nt init() { SetIndexBuffer(0,sma); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,Yellow); SetIndexBuffer(1,rsi); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,Red); return(0); } int start() { int counted_bars=IndicatorCounted(); int limit=Bars-counted_bars; for(int i=limit-1;i>=0; i--){ sma[i]=iMA(NULL, 0,10,0,MODE_SMA,PRICE_CLOSE, i); rsi[i]=iRSI(NULL, 0,10,PRICE_CLOSE,i); } return(0); }

  • MT4でインジケーターにSendmail()関数の記述方法を教えてくだ

    MT4でインジケーターにSendmail()関数の記述方法を教えてください。 下記のインジケータにどう書けばよいでしょうか?一度試したのですが大量の送信してしまい困っています。 具体的にsendmail関数を挿入して頂けると助かります。 int start() { int limit, i, counter; double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter; double Range, AvgRange; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i = 0; i <= limit; i++) { counter=i; Range=0; AvgRange=0; for (counter=i ;counter<=i+9;counter++) { AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]); } Range=AvgRange/10; fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i); fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i+1); fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i); slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i+1); slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i-1); if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) { CrossUp[i] = Low[i] - Range*0.5; } else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) { CrossDown[i] = High[i] + Range*0.5; } } return(0); }

  • MT4(MetaTrader4)のプログラムで

    MT4(MetaTrader4)のプログラム(Indicator)の書き方の質問です。 現在からさかのぼって、価格がボリンジャーバンドの「±1シグマ」の どちらに到達したのが最新かをオブジェクトで表示させたいのです。 たとえば、「+1シグマ」到達が最新なら「上矢印」を表示させる (逆になるまで、表示させたままにする)ような感じです。 iCustomでボリンジャーバンドのIndicatorを呼び出して、 PRICE_HIGHやPRICE_LOWとの云々...というイメージはあるのですが、 それ以上が進めません。 いろいろと検索してみましたが、それらしいのが見つからないので、 ご存知の方、よろしくお願いします。

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

    指定した時間の高値・安値を返すプログラムを教えてください。 具体的に言うと、、21時から23時の間の高値・安値です。 少し調べたところ、iHighest,iLowestやiBarSHiftの関数で値を出せると思ったのですが、 この関数では、指定の期間が、”現在から何本前の足から何本分の期間”といったように時刻で指定できないみたいで困っております。 ※MT4を使用しております。

  • エクセルで確率を求めたい

    ここならベテランの詳しい方がいらっしゃると聞いてきました。 エクセルでデータの確率を分析をしたいのですが、何からやっていいのか教えていだだけますか? 始値高値安値終値の4本値のデータをエクセルに取り込むまでは出来ました。 がその後のことをネットで調べてみたものの解決がどうにもできず、頭を抱えている状態です。 どうかよろしくお願いいたします。 たとえば、インジケーターRSI 50以上で買い-50以上で売りとした場合、買いエントリー後の次の高値と安値の合計が+になっている確率、売りのエントリー後の場合は次は-になっている確率を調べたいのですが、詳しくわかる方がいましたらお願いいたします。 あともう一つよろしくお願いいたします。 取り込んだ4本値の高値と安値を引いた値が+20、-20以上あるものだけを抽出し、+20の場合次の高値と安値の合計が-になる、そして-20の場合次が+になっている確率を求めたいのです どうかよろしくお願いいたします。

  • MT4 スローストキャスティクス

    fhat6014様 以前、教えていただいたのですが、下記プログラム一つに(1)Alertを鳴らす(2)Soundを1度鳴らす(3)Soundを鳴らし続けるという設定を一まとめにできるのでしょうか。ご教授願います。 #property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 100 #property indicator_buffers 3 #property indicator_color1 Lime #property indicator_color2 Red //---- input parameters extern int PK=42; extern int PD=3; extern int PS=3; //---- buffers double k[]; double d[]; //| Custom indicator initialization function | int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,k); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,d); return(0); } //| Custom indicator iteration function | int start() { int counted_bars=IndicatorCounted(); int shift,limit; if (counted_bars<0) return(-1); if (counted_bars>0) counted_bars--; limit=Bars-PK-1; if(counted_bars>=PK) limit=Bars-counted_bars-1; for (shift=limit;shift>=0;shift--) { d[shift]=(iStochastic(NULL,0,PK,PD,PS,MODE_SMA,1,MODE_SIGNAL,shift)+iStochastic(NULL,0,PK,PD,PS,MODE_SMA,1,MODE_SIGNAL,shift+1)+iStochastic(NULL,0,PK,PD,PS,MODE_SMA,1,MODE_SIGNAL,shift+2))/3.0; k[shift]=(iStochastic(NULL,0,PK,PD,PS,MODE_SMA,1,MODE_MAIN,shift)+iStochastic(NULL,0,PK,PD,PS,MODE_SMA,1,MODE_MAIN,shift+1)+iStochastic(NULL,0,PK,PD,PS,MODE_SMA,1,MODE_MAIN,shift+2))/3.0; } return(0); }

  • MT4自動売買プログラムについて

    現在MT4にて自動売買プログラムを作成していますが、トレール注文のプログラムの組み方がわかりません、価格の変動に対して、損切、利益確定、を調節するプログラムを組もうとおもっているのですが、どのように組んでよいかわかりません。例を出して言うと、 購入価格$us 90.00 買い、初期設定損切、-15Pips、利益確定+25 Pips その後 90.05になった場合、損切、89.90に設定しなおす その後 89.90になった場合損切を行う。 というような感じにしたいのですが、 購入後の価格変動の比較し、最高値を探る方法がわかりません、 どなたか知っている方がいればぜひ教えてください。

  • ヘッドホンアンプについてです。

    ヘッドホンアンプについてです。 k701とATH-ES7の兼用にするつもりです。 アンプはiBassoのD12とオルトフォンのHd-Q7で迷っています。 D12のようなポタアンは据え置きに劣るとは分かっています。 しかし価格的に見ると D12・・・最高値¥37800最安値¥23634 Hd-Q7・・・最高値¥29900最安値¥26790(価格コムより) しかもD12の最安値は1位が若干飛びぬけていて2位は¥26000と価格的には同等、最高値を見るとD12が断然優位に見えます。それでもD12が劣ると言えますでしょうか? 乱文ですみません。ご回答よろしくお願いします。

  • ドル円の過去の1日の4本値を入手するには?

    ドル円の過去の1日の4本値(始値・高値・安値・終値)を入手したいのですが、最適なサイトをご存知でしょうか? 直近の3ヶ月分位で構いません。