目次
RSIを使用した株のトレードの検証に関して
私が作成した下記の記事に対する検証方法を解説します。
検証に使用した任天堂(7974)の株価データは、私が口座を開設しているSBI証券が提供しているトレーディングツールHYPER SBIからダウンロードしました。
また、検証結果は、下記のExcelファイルに記載しました。
- https://4affiuser.github.io/data/trade/RSI/トレード_RSI_1_任天堂_検証データ.zip
今回の検証方法に関する解説は、上記のExcelファイルに基づいて行っていきます。
Excelファイルの各シートに関して
Excelファイルには、次の2つのシートがあります。
- Data
- HYPER SBIからダウンロードした日足チャートに対する株価データです
- ただし、HYPER SBIからダウンロードされたものは、日付が降順(新しい順)で並んでいるため、昇順に並べ替えてあります
- RSI N回
- RSIを使用したトレードの検証を行ったデータです
続いて、シート名「RSI N回」に記載されているデータの詳細について説明します。
「RSI N回」シートの説明
「RSI N回」シートは、主に4つのブロックに分かれています。
- 検証データブロック(A列からP列)
- トレードの検証を行うデータが並んでいます
- 設定ブロック(R列からS列)
- トレードの検証に与える設定用パラメータが並んでいます
- データ抽出ブロック(U列からY列)
- トレードの検証結果から必要な情報を抽出したデータが並んでいます
- 結果ブロック(AA列からAK列)
- 設定用パラメータを変更して得られた結果が並んでいます
検証データブロック(A列からP列)
検証データが並んでいる順に説明します。
- 日付(A列)
- 株価データの日付を示しています
- 年(B列)
- 日付から抽出した年を示しています
- 終値(C列)
- 株価データの終値を示しています
- 前日差(D列)
- RSIを算出するためのデータです
- 算出式は、当日の終値 - 前日の終値 です
- 値上がり(E列)
- RSIを算出するためのデータです
- 設定された期間における値上がり値の合計値を示しています
- 算出式は、(設定された期間での)全てのプラスの前日差の合計 です
- 値下がり(F列)
- RSIを算出するためのデータです
- 設定された期間における値下がり値の合計値を示しています
- 算出式は、(設定された期間での)全てのマイナスの前日差の合計 です
- RSI(G列)
- 算出されたRSIを示しています
- 算出式は、値上がり合計 / (値上がり合計 + 値下がり合計の絶対値) * 100 [%] です
- 買い(H列)
- 買い条件の成立を示すフラグです
- 買い条件が成立すると 1, それ以外は 0 です
- 買い条件は次の通りです
- RSI < x% で新規買い or 返済買い
- 買いN(I列)
- 買い条件が成立した場合に残り何回まで買いを実行できるかを示す数値です
- 初期値は設定ブロック内の「N回」で設定可能です
- 買い値(J列)
- 買い条件が成立した場合の買い値を示しています
- 買い値は、買いを実行する度にこれまでの買い値を考慮した平均値を算出しています
- 算出式は、次の通りです
- 1回目の買い → 終値 を設定
- N回目の買い → (買い値 * (N - 1) + 終値) / N を設定
- 売り(K列)
- 売り条件の成立を示すフラグです
- 売り条件が成立すると 1, それ以外は 0 です
- 売り条件は次の通りです
- (100 - x%) < RSI で空売り or 返済売り
- 売りN(L列)
- 買い条件が成立した場合に残り何回まで買いを実行できるかを示す数値です
- 初期値は設定ブロック内の「N回」で設定可能です
- 売値(M列)
- 売り条件が成立した場合の売り値を示しています
- 売り値は、売りを実行する度にこれまでの売り値を考慮した平均値を算出しています
- 算出式は、次の通りです
- 1回目の売り → 終値 を設定
- N回目の売り → (売り値 * (N - 1) + 終値) / N を設定
- 損益(N列)
- 反対売買が実行された場合の損益を示しています
- 売買(O列)
- 反対売買の実行を示すフラグです
- 反対売買が実行されると 1, それ以外は 0 です
- 成否(P列)
- トレードの成否を示すフラグです
- トレードが成功(損益がプラス)すると 1, それ以外(損益がマイナス)は 0 です
設定ブロック(R列からS列)
トレード検証で設定可能なパラメータは、次の3種類です。
- RSI
- RSIを算出する期間を設定します
- RSI閾値
- RSIを参照してトレードする場合の閾値を設定します
- RSI < 30% で買いを実行 and (100 - 30%) < RSI で売りを実行する場合は30%と設定します
- N回
- 売買条件が成立した場合に、何回まで売買を実行するのかを設定します
- 設定値が1であれば、1回のみ売買を実行し、以降は売買条件が成立しても売買を行いません
データ抽出ブロック(U列からY列)
検証データブロックで行った検証結果に対して、年に基づいて結果を集計しています。
集計しているデータは次の通りです。
- 売買数
- 年に基づいて、売りの回数を集計しています
- 成功数
- 年に基づいて、成否の回数を集計しています
- 成功率
- 抽出された売買数と成功数から成功率を算出しています
- 損益
- 年に基づいて、損益の合計を算出しています
結果ブロック(AA列からAK列)
下記の条件でトレードを検証した結果が示されています。
- RSI < 30% で買い、70% < RSI で売り、N=1, 2, 3, 4回の設定でトレードを検証した結果
- RSI < 40% で買い、60% < RSI で売り、N=1, 2, 3, 4回の設定でトレードを検証した結果

