IB証券でシストレ|メガヴィンさんの10年間で4億円の資産を築いたデイトレード手法をシステム化

スポンサーリンク
本ページは一度公開したのですが、あまりにもいい感じで利益が出ていた(年利90%、勝率ほぼ100%)ので再検証しました。
その結果、バグが発覚したため一度非公開にしました。
今はバグを改修したバックテストのシステムを公開しています。
はじめの公開時に閲覧された方には申し訳ないです。
スポンサーリンク

はじめに

以下の記事を参考に、実現できるか検証してみようと思います。

NIKKEI STYLEは次のステージに
NIKKEI STYLEが生まれ変わりました。キャリア、転職、人材育成のヒントを提供してきた「リスキリング」チャンネルは新生「NIKKEIリスキリング」に。ビジネスパーソンのためのファッション情報を集めた「Men’s Fashion」チャンネルは「THE NIKKEI MAGAZINE」デジタル版に進化しました。

メガヴィンさんは、元手100万円を10年間のデイトレードで4億円の資産を築いてきたということで、同じようにシストレできないか検証してみようと思います。

ギャップダウン(GD)を利用した投資手法ですが、いわゆる窓埋め理論と同じようなものですね。

私は窓埋めに関しては、FXでさんざん調査したのですが、うまくいきませんでした。
*本ブログを開設する前なので記事がありません。いずれ再調査したら掲載します。

投資手法

以下の手法に関する内容は引用しています。

前提

  • 日本株は前日の米国株市場の動きに連動しやすい。
  • 米国株が大きく下げると翌日の東京市場も全体として下げて始まり、多くの銘柄が前日終値から大きくGDした状態で寄り付く。
  • だが、本来上昇の勢いがある銘柄は、一時的に米国株に連れ安しても、前日終値付近まではすぐに値を戻すことが多い。

私はIB証券では日本株のデータを取得できないため、米国株で試そうと思います。
逆もまた真なりということで。。。

銘柄

  • 狙い目は株価が右肩上がりで出来高が多く、勢いのある新興銘柄。
  • 信用売り銘柄は対象外。

米国株で、新興銘柄とかよくわからないので、ランダムに選択しました。また信用売り銘柄という考えがアメリカにはないかも知れません。

勢いのあるってところは時期により銘柄を選択すべきですが、今回は固定で検証します
たぶんメガヴィンさんもどの銘柄に投資するか検討されていると思います。

大御所からベンチャーまでというところです。ちょっとNASDAQに偏っています。新興ってことで!?

取引所
コード
銘柄名業種
NASDAQTSLAテスラ自動車
NASDAQAAPLアップルコンピュータ関連
NYSEMCDマクドナルドレストラン & バー
NASDAQSBUXスターバックス外食
NASDAQEXPEエクスペディア・グループレジャー・オンライン旅行
NASDAQBYNDビヨンド・ミート食品
NYSEDISウォルト・ディズニー娯楽

戦略1:GDの反転を取る

  • 寄り付きが前日終値より下落した場合に仕込む。
  • その後、上がれば前日終値で利確。下がれば9時50分まではナンピンし、10時には決済(利確または損切り)

アメリカのNYSEとNASDAQの開始時間は9:30です。30分繰り上げて考えます。

戦略2:1泊2日の持ち越しの取引

  • 14時30分頃から引けにかけて急上昇したもの、チャートに大きな上ひげを付けた陽線が出ているなどの銘柄。
  • 引け間際の14時30分から15時に仕込む。
  • 翌日の寄り付きの始値が上回れば利確。下がった場合は戦略1と同様に9時50分まではナンピンするが早めに利確。

アメリカのNYSEとNASDAQの終了時間は16:00です。1時間繰り下げて考えます。

投資内容

目標

メガヴィンさんは、10年間のデイトレードで4億円の資産を築いてきたということで、複利効果を使う前提で、およそ年利95%(約2倍)だと100万円が約4億円になります。

かなりハードルが高いです。というかメガヴィンさん、すごい。

投資の神様のウォーレン・バフェットは、複利計算で約21%のリターンを約50年間も出しているそうです。

95%を10年間のメガヴィンさんと21%を50年間のウォーレン・バフェットは比べようがないですが、メガヴィンさんもこのままいけば神の域ですね。

年利95%(約2倍)と言いたいところですが、極力それに近ければ大成功です!!
私は庶民の凡人です。

投資手法

金融商品*上記のとおり
金融機関IB証券(インタラクティブ・ブローカーズ証券)
資金各株式を10万米ドル
売買買いのみ
売買数量複利効果で自動計算(資金をロットと株価で割った数量)
よってナンピンはできません
投資判断買い発注戦略1を採用
前日の終値より始値が安い
(手数料を差し引く、かつギャップ幅は調整で設定する)
かつ、単純移動平均線5日が25日を上回っている
(勢いがある判断として)
利確10時30分までに前日の終値に達したら場合
ー>10分足を利用していたため10時40分までとなっています。
損切10時30分までに前日の終値に達しなければ決済
ー>10分足を利用していたため10時40分までとなっています。
売り発注
利確
損切

システム対応の可否

以下の2つがシステムで可能なのか調べました。

  1. 「前日の終値より始値が安い場合」というところで、指値+始値が可能か?
  2. 複数銘柄の発注で一つが約定すれば他をキャンセルできるか?
  3. 1と2を組み合わせた発注は可能か?

1.「前日の終値より始値が安い場合」というところで、指値+始値が可能か?

IB証券ではLimit-on-Open (LOO) Ordersという発注の方法があり、指値+始値で取引が可能です。
詳しくはIB証券の公式サイトを参照してください。

ホーム | インタラクティブ・ブローカーズ証券株式会社
株式やオプション、先物、通貨、そして債券やファンドに直接アクセス可能な、トレーダー、投資家、およびアドバイザーのお客様のためのオンライン取引ソリューションです。透明性の高い低額な約定手数料と借入金利、そして最良約定のためのサポートです。
サンプルコード
# Limit-on-Open (LOO) Orders
contract = Stock('SBUX', 'SMART', 'USD')
looOrder = Order(
    orderType = 'LMT',
    tif = "OPG",
    action = 'BUY',
    totalQuantity = 1,
    lmtPrice = 85
)
ib.placeOrder(contract, looOrder)

2.複数銘柄の発注で一つが約定すれば他をキャンセルできるか?

複数の銘柄を調査していますが、複数銘柄の発注で一つが約定すれば他をキャンセルできるようにならないと資金不足になります。

IB証券では、OCA(One-Cancels-All)注文という発注の方法があり、対応が可能です。
詳しくはIB証券の公式サイトを参照してください。

ホーム | インタラクティブ・ブローカーズ証券株式会社
株式やオプション、先物、通貨、そして債券やファンドに直接アクセス可能な、トレーダー、投資家、およびアドバイザーのお客様のためのオンライン取引ソリューションです。透明性の高い低額な約定手数料と借入金利、そして最良約定のためのサポートです。
サンプルコード
# OCA(One-Cancels-All)注文
contracts = [
    Stock('TSLA', 'SMART', 'USD'),
    Stock('AAPL', 'SMART', 'USD')
]

ocaOrders = [
    LimitOrder('BUY', 1, 115),
    LimitOrder('BUY', 1, 348)
]

ib.oneCancelsAll(ocaOrders, "Test", 1)

for index, order in enumerate(ocaOrders):
    ib.placeOrder(contracts[index], order)

3.1と2を組み合わせた発注は可能か?

最後の問題は、上記の2つを組み合わせて発注できるかというところですが、調査した結果、駄目なようです。
以下のようなエラーが発生しました。

Error 201, reqId 20: 発注が拒否されました-理由:無効なOCA操作方法です。
サンプルコード

*上記のエラーになります。

# OCA & LOO
contracts = [
    Stock('EXPE', 'SMART', 'USD'),
    Stock('BYND', 'SMART', 'USD')
]
ocaOrders = [
    Order(
        orderType = 'LMT',
        tif = "OPG",
        action = 'BUY',
        totalQuantity = 1,
        lmtPrice = 99
    ),
    Order(
        orderType = 'LMT',
        tif = "OPG",
        action = 'BUY',
        totalQuantity = 1,
        lmtPrice = 134
    )
]
ib.oneCancelsAll(ocaOrders, "Test3", 1)

for index, order in enumerate(ocaOrders):
    ib.placeOrder(contracts[index], order)

システム対応の可否の結論

複数銘柄の発注で一つが約定すれば他をキャンセルできるOCA注文のみを活用して、寄り付きの間際に指値で注文するしかないようです。この発注で初値になるかは不明ですが普通で考えれば大丈夫だと思います。

ただし、このOCA注文の他の注文をキャンセルにする機能については自動で処理されますが、キャンセルを保障している訳ではないようで、100%ではないということです。

資産を100%使って投資する場合は大きなリスクになります。資産の配分を考えるか、ティックデータを取得して初値直後でトレードするなどの方法を検討する必要があります。

本番のシステムを構築する際は後者の方で検討したいと思います。

システム

システム要件

  • OS:macOS Carolina 10.15.6
  • 言語:Python 3.7.2
  • 開発ツール:Jupyter Notebook 1.0.0

システム要件外でも動作すると思います。

システム

以下はGithubにアップしていますので、ダウンロードして利用してください。
(左下のファイル名をクリックするとGithubのサイトに遷移します。「Download ZIP」をクリックするとダウンロードできます。)

システムにはIB証券からヒストリカルデータ(過去データ)のダウンロードも含まれています。
ヒストリカルデータは10分足を利用しています。

シストレのバックテストの結果

年度別の結果

  • actNum:投資回数
  • days:対象期間日数
  • wonPips:利益PIPS
  • termPips:対象期間の上昇PIPS
  • portfolio:資金
  • tickets:残建玉
  • cntWin:勝った回数
  • cntLoss:負けた回数
  • last_portfolio:残建玉の評価額

2020年(1月〜8月末までの8ヶ月間)

上下は単純移動平均線の有無です。
0.97というのは、ギャップ幅の調整として、前日の終値から往復の手数料を引いた値に掛けた結果を投資判断に指定mす。
要は始値の3%が概ねの利益となります。

0.97
With SMA
  symbol  actNum  days   per   wonPips  termPips    per portfolio     per  tickets  cntWin  cntLoss   pre last_portfolio
0   TSLA       3   166  1.8%  3.948457       411   1.0%   101,963  102.0%        0       3        0  100%              0
1   AAPL       1   166  0.6%  2.879486        57   5.1%   104,731  104.7%        0       1        0  100%              0
2    MCD       1   166  0.6%  5.439485        15  36.3%   102,867  102.9%        0       1        0  100%              0
3   SBUX       2   166  1.2% -0.341029        -3  11.4%    99,004   99.0%        0       1        1   50%              0
4   EXPE       3   166  1.8% -1.591543        -9  17.7%    97,552   97.6%        0       1        2   33%              0
5   BYND       5   166  3.0% -4.852572        62  -7.8%    92,640   92.6%        0       1        4   20%              0
6    DIS       2   166  1.2% -3.931029       -13  30.2%    96,319   96.3%        0       0        2    0%              0
Portfolio average 99296.57142857143

0.97
Without SMA
  symbol  actNum  days    per    wonPips  termPips     per portfolio     per  tickets  cntWin  cntLoss  pre last_portfolio
0   TSLA      21   166  12.7%  -7.620804       411   -1.9%    92,728   92.7%        0      12        9  57%              0
1   AAPL       8   166   4.8%   7.905884        57   13.9%   113,080  113.1%        0       7        1  88%              0
2    MCD       6   166   3.6%  14.076913        15   93.8%   109,136  109.1%        0       4        2  67%              0
3   SBUX       9   166   5.4%  -0.694630        -3   23.2%    98,398   98.4%        0       2        7  22%              0
4   EXPE      15   166   9.0%  -9.387717        -9  104.3%    83,610   83.6%        0       6        9  40%              0
5   BYND      18   166  10.8%   1.120739        62    1.8%    99,978  100.0%        0       8       10  44%              0
6    DIS       8   166   4.8% -10.694116       -13   82.3%    90,406   90.4%        0       1        7  12%              0
Portfolio average 98190.85714285714

やはり、いい感じに利益は出ませんね。

単純移動平均線がある方が成績はいいですね。しかし当たり前ですが投資回数が少ないです。
ギャップを緩めると投資回数は増えますが、勝率も下がり、余計に悪くなります。

ナンピンをイメージして、初値でダメな場合は、10分足の安値でエントリーできるか検証しました。
他の条件は同じです。

0.97
With SMA
  symbol  actNum  days    per    wonPips  termPips     per portfolio     per  tickets  cntWin  cntLoss  pre last_portfolio
0   TSLA      27   166  16.3% -71.720014       411  -17.5%    51,759   51.8%        0      12       15  44%              0
1   AAPL      12   166   7.2%  -3.205884        57   -5.6%    95,618   95.6%        0       5        7  42%              0
2    MCD      12   166   7.2%   2.143416        15   14.3%   100,403  100.4%        0       7        5  58%              0
3   SBUX      15   166   9.0%  -7.092130        -3  236.4%    90,105   90.1%        0       4       11  27%              0
4   EXPE      32   166  19.3% -43.885591        -9  487.6%    47,753   47.8%        0       9       23  28%              0
5   BYND      31   166  18.7% -52.270574        62  -84.3%    54,276   54.3%        0      12       19  39%              0
6    DIS      17   166  10.2% -16.951161       -13  130.4%    85,324   85.3%        0       4       13  24%              0
Portfolio average 75034.0

余計に悪くなりました。。。

2019年

単純移動平均線の判断ありで、ギャップも0.97と同じです。ナンピンイメージはなしです。

0.97
With SMA
  symbol  actNum  days   per  wonPips  termPips    per portfolio     per  tickets  cntWin  cntLoss pre last_portfolio
0   TSLA       0   252  0.0%        0        23   0.0%   100,000  100.0%        0       0        0  0%              0
1   AAPL       0   252  0.0%        0        35   0.0%   100,000  100.0%        0       0        0  0%              0
2    MCD       0   252  0.0%        0        22   0.0%   100,000  100.0%        0       0        0  0%              0
3   SBUX       0   252  0.0%        0        24   0.0%   100,000  100.0%        0       0        0  0%              0
4   EXPE       0   252  0.0%        0        -2  -0.0%   100,000  100.0%        0       0        0  0%              0
5   BYND       0   169  0.0%        0        29   0.0%   100,000  100.0%        0       0        0  0%              0
6    DIS       0   252  0.0%        0        36   0.0%   100,000  100.0%        0       0        0  0%              0
Portfolio average 100000.0

投資回数は0になりまた。。。

2018年

BYNDは上場の前のため、除外しています。

  symbol  actNum  days   per   wonPips  termPips    per portfolio     per  tickets  cntWin  cntLoss pre last_portfolio
0   TSLA       0   251  0.0%  0.000000         4   0.0%   100,000  100.0%        0       0        0  0%              0
1   AAPL       1   251  0.4% -1.050514        -3  35.0%    98,025   98.0%        0       0        1  0%              0
2    MCD       0   251  0.0%  0.000000         3   0.0%   100,000  100.0%        0       0        0  0%              0
3   SBUX       0   251  0.0%  0.000000         6   0.0%   100,000  100.0%        0       0        0  0%              0
4   EXPE       0   251  0.0%  0.000000        -9  -0.0%   100,000  100.0%        0       0        0  0%              0
5    DIS       0   251  0.0%  0.000000         0     0%   100,000  100.0%        0       0        0  0%              0
Portfolio average 99670.83333333333

全体で、1回しかトレードができず、それも損失になっています。

まとめ

メガヴィンさんの10年間のデイトレードで4億円の資産を築いてきた株式トレードをシストレで再現してみたのですが、再現は難しそうです。

今回は、ところどころで仕様を変更しています。

  • 米国株
  • 勢い*メガヴィンさんは何で判断しているのでしょうか??神のみぞ知る感覚でしょうか!?
  • 新興銘柄
  • 空売りの株を対象から外す
  • ナンピン
  • ロスカットの時間*10時30分までではなく10時40分までになっている。
  • 複利効果
  • など

また戦略2に関しては調査できていません。別の機会に調査します。

今回も残念ながらボツ案にしました。

はじめバグで利益が出ると思って本番のシステムを開発したのですが、バグが発覚したので公開はやめようと思います。

コメント

タイトルとURLをコピーしました