PHPにPECL拡張モジュールを入れるとtrader関数が使えるようになります。
使えれば便利なのですが、マニュアルが雑でサンプルもほとんど(全然みつかりません)ありません。自分で確認しながら使っていくことになります。
今回はRSIで売買タイミングの判断を行おうと思ったのですが、数値をどうあたえるとどういう結果が返ってきてそれが正しいのかをエクセルで計算した値と比較して検証してみました。
RSIエクセル計算などで検索すると計算式などがでてくるのですが、計算を間違っているものもあったので、正しい計算方法をメモしておきます。
前提:5日のRSIを計算します。
※[]内はエクセル計算式
1.C列に上げ幅を計算[=IF(B3<B2,B3-B2,0)]
2.D列に下げ幅を計算[=IF(B3>B2,B2-B3,0)]
3.E列に5日上げ平均を計算[=AVERAGE(C3:C7)]
4.F列に5日下げ平均を計算[=AVERAGE(D3:D7)]
5.H列に平均[=(C3+C4+C5+C6+C7)/5]
6.I列に平均[=(D3+D4+D5+D6+D7)/5]
7.J列にRSI[=(H7/(H7+I7))*100]
ここまでで最初のRSIの計算方法はこれでOK。
さらに2回目以降はちょっと計算式がかわります。
F列までと、J列は同じ計算式でOKです。
H列とI列だけ計算式がちょっと違います。
8.H8の計算式[=(E7*4+C8)/5]
9.J8の計算式[=(F7*4+D8)/5]
あとはこの計算式のリピートです。
PHPとの結果は画像にあるようにエクセル計算で算出した値とほぼ同じでした。
RSIが20%以下で売られすぎ、80%以上で買われすぎという判定になります。
PHPのtrader関数使えそうです。
計算式はカブドットコム証券を参考にしています(https://kabu.com/investment/guide/technical/08.html)。