RSIをPHPにて計算・算出します。
計算式は、
RSI = n日間の値上がり幅合計 ÷ (n日間の値上がり幅合計 + n日間の値下がり幅合計) × 100
一般にnには、14日が使われています。松井証券のQUICK情報やヤフーファイナンスでも14日となっています。
以下がそのスクリプトです。
global宣言した変数・配列には、関数外で値を設定してください。$stocks_endには、データベースから終値を引っ張る処理を事前にしています。
//RSI算出 function get_rsi($offset) { global $rsi_term ; //rsi算出期間 global $stocks_end ; //終値配列データ(直近の添え字が0) //開始地点から要素を切り出し $array = array_slice($stocks_end, $offset); $plus = 0 ; $minus = 0 ; $diff = 0 ; for ($i = $rsi_term ; $i > 0; $i--) { $j = $i - 1 ; //jが本日、iが昨日 //本日終値から昨日終値を引いて差を求める $diff = $array[$j] - $array[$i] ; if ($diff > 0) { $plus += $diff ; } else { $minus += -($diff) ; } } return round($plus / ($plus + $minus) * 100) ; } //RSI取得 for ($i=0; $i < 3; $i++) { //3日分取得 $rsi[$i] = get_rsi($i) ; }