![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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)
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# プログラミングの問題です。写真のプログラムの1から10を下のように入力しましたがプログラムが上手くい 3 2022/07/01 23:31
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- スピーカー・コンポ・ステレオ 電気交流の実効値と値が違う平均値ではオームの法則が成り立たない理由を教えて下さい。 4 2022/05/02 09:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
郵便番号と市外局番のデータ
-
Tera Termが途中で切れるのです...
-
【FX】相関関係 相関係数
-
出来るだけ細かいドル円の時系...
-
macでポチ袋を自作したいのでテ...
-
過去データをメタトレーダーで...
-
au W61T デコメテンプレート
-
FX クソポジチェッカー
-
2回戦止まりは2回戦は勝ってい...
-
MT4の売買シグナルをメール受信...
-
FX取引き
-
MACD_Cross_Alert.mq4
-
メタトレーダー MT4について
-
FXのシステムトレードは儲かり...
-
Visual Traderでのバックテスト...
-
MT4のHeiken Ashi Smoothedをサ...
-
一目均衡表が見れるサイトやF...
-
MT4でモメンタムの数字をメイン...
-
MT4のインジケーターのDL
-
MT4のmq4ファイルがビックリマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Tera Termが途中で切れるのです...
-
為替データをエクセルにダウン...
-
FXの日足時系列データをダウン...
-
【MQL4】ZigZagの天底の値の取得
-
メタトレーダーでのヒストリー...
-
RSIを2本表示できるmt4のin...
-
郵便番号と市外局番のデータ
-
出来るだけ細かいドル円の時系...
-
au W61T デコメテンプレート
-
mt4のテスターが遅すぎる。
-
macでポチ袋を自作したいのでテ...
-
為替時系列データ(4本値)
-
ドル円の時系列データを探して...
-
FXDD社について
-
他サイトのデータでMT4でチャー...
-
2回戦止まりは2回戦は勝ってい...
-
遠藤さくらと言う人が、毎日100...
-
80歳の高齢者ですが、金融庁に...
-
陽線・陰線が切り替わったらア...
-
複数表示の移動平均線のインジ...
おすすめ情報