はじめに
実を言うと、週間ベースのシステムトレードはFang+のETF(316A)を除いて停止していました。
このシステムを運用する前に、Fang+ならば代替でNasdaqで、他にもゴールド(1540)などを10年分のデータでバックテストをしました。自前のプログラムでも計算させましたし、細かい条件を探るのには、ChatGptに10年分のCSVデータを渡して、バックテストさせたりしました。
話は変わりますが、ChatGPT本当に便利ですね。最終的なテストは自前のプログラムで走らせるとしても、様々な条件を変更したり、パラメータを変えた場合にどういう成績になるのかといったことを、日本語で指示するだけでやってくれます。5年ごとにずらしてウォークフォワードテストをさせるというのも簡単にできてしまいます。
以前と比べて圧倒的に開発の効率が上がりました。
で、何が言いたいかというと、10年分のデータをつかったテストの結果はよいわけです。Nasdaqで月間4%くらいでしょうか。ただ、実運用をすると、テストほどのパフォーマンスは出ません。
何より、ばらつきが大きくて結構なマイナスになったりします。1年を通して運用すれば、それなりの成績になるのかもしれませんが、とにかく、週ごとのマイナス損失に耐えられない。
プログラムを改良しようにも、一週間に一回しかトレードしないため、実運用のデータが少なすぎてどうしようもない。
そこで、デイトレに変えようと思いました。1日あたりの利益は少ないですが、とにかく、毎日運用データが貯まるので、運用データを分析してプログラムを改良することができます。何より、ニュースを見て柔軟に運用を変えることが出来るようになるのが大きい。
どんなロジックを使うのか
スキャルピングを考えたのですが、中々難しいですね。5分に1回、成り行きで買って、ある程度のポジションサイズを持つようにして、条件に応じて 利確、損切り というシステムを考えて、ChatGPTにアドバイスを求め、改良し、バックテストではそこそこの成績を出したので、実運用したら、想定の十分の一しか利益がでなかったり。
そこで、1時間に1度に頻度に落としたら、利益がでるようになりました。
ゴールド(1540)だと、こんな雑なシステムでも利益がでたりします。今だけでしょうが。
ちなみに、僕は日本株のシステムトレードはETFしかしません。個別株で利益を出せるシステムを作れないからです。
本も買って勉強した
以前は、テクニカル分析をつかって、色々とバックテストをしたのですが、僕のやり方が悪いのか(きっとそう)とにかく、利益が出ませんでした。ある期間に限って言うと利益がでるのですが、全体では損失という感じです。
パンローリングというところが出している、システムトレードの本を買って勉強もしました。20日ブレイクアウトとトレイルストップで利益がでるよ、みたいなことが書いてあるので、頑張ってバックテストを書いてみましたが、本に書いてあるような成績には成りませんでした。
65日移動平均線を3回連続で上回ったら、買え と言うロジックも載ってましたね。これも、散々試したなあ。
これは、どういうことかというと、おそらく、2つ理由があるように思います。
1つめは、本当に実運用に耐えるロジックを具体的に書いてしまうと、戦略のエッジが消えてしまう。著者が空気を読んで、要の技術はぼかして書いていない。
2つめは、昔の株式市場では機能したが、現在では古くなってしまいエッジがない。
ネットで色々と情報を漁ったのですが、2つめの理由が大きいようでした。昔は、寄り付きで株を買って引けで売るだけで利益が出た時代もあったそうです。テクニカル分析(RSI)とかで簡単に利益が出たりもしたそうです。
トレイルストップも、コンピュータによるアルゴ取引が無視できない存在感を持つ前は、有用な方法だったのかもしれません。
ただ、この本が役に立たなかったというわけではありません。
バックテストの考え方とか、ドローダウンと損切りと最終利益の関係とか、あるいは、全く使えないように思えるシステムでも、パラメータを触ったり、条件を加えることで利益を生み出すシステムに変えていくことが出来るとか、システムトレードの開発をどうすればよいのか という技術を身につけるのには良い本でした。
マーケットメーカー
ChatGPTに色々聞いていると、マーケットメーカーという手法があることを知りました。
僕が買った本には、この手法は書かれていませんでしたし、ネットで調べても、僕が読める日本語の情報に限っていえば、マーケットメーカーは市場に流動性を提供する役割がある 以上のことは分かりませんでした。
ChatGPTによると、買いと売り注文を同時に出すことで、スプレッド分の利益を稼ぐ手法だそうです。株価というのは、普通、買値と売値の間にスプレッド(差)があるものです。例えば、買値が1100円 売値が1000だったりします。
この銘柄を、成り行きで買って、直ちに売ると、1100円で買って、1000円で売ることになるため、マイナス100円の損失になります。
マーケットメイカーというのは、例えば、同時に、指値1099円で売り注文を出し(誰かにとっての買い価格)、指値1001円で買い注文を出し(誰かにとっての買値)ます。
誰かが、成り行きで買って、また、別の誰かが成り行きで売ると、差額の98円がマーケットメーカーの利益となります。買いと売りのスプレッドがあればあるほど、マーケットメイカーの利益になると言うことです。
いわゆる、高頻度取引というのもこのマーケットメイカーのロジックがよく使われているそうです。
専門の業者成ると、100くらいの指値を動じに出すとか、そして、数秒から数ミリ秒で取引を成立させて、0.1円とかの利益を積み重ねることで採算が取れるようにしているのだとか。
取引量の少ない銘柄(マイナー株とかETFとか)は例えば、1日の取引がほぼなくて、せっかく売買したくても出来なかったりするのですが、マーケットメイカーが指値で注文を出すことによって、約定しやすくなっているのだとか。
株だけでなく、仮想通貨の取引所などは、取引所自体が積極的にマーケットメイカーとなり、流動性を提供しているそうです。そうでないと、マイナー通貨なんかだれも売買しないでしょうね。あと、成り行きでしか買わないという人が多いでしょうし。
マーケットメイカー その2
で、そのマーケットメイカーを実際に作るためのロジックをChatGPTに聞くと丁寧に教えてくれるわけです。買いと売りを、ロング、ショートで別々に在庫として管理するとか。マーケットメイクは在庫の調整が要で、ロングとショートの比率によって、板に投げる、買値、売値を調整するとか。
でまぁ、頑張って、もう、完全にChatGPTに教えてもらって頑張って実装しました。ビットコインとかイーサリアムは流動性がありすぎて、スプレッドがそもそもほとんど存在せず、スプレッドで稼ぐマーケットメイクでは稼げません。(マーケットメイクの手法を応用した別のロジックがあり、そちらでは利益が出るらしいですが、実装できていません)
そこで、僕の使っている国内取引所で、それほど取引量の多くない仮想通貨である、ライトコインで利益が出せるようになりました。
スプレッドが広い イコール 取引量が少ない であるために、ロットを増やして利益を稼ぐことは出来ないのですが、小遣い稼ぎくらいいはなりそうです。
あと、株の方でも取引量のすくない すなわち、 スプレッドのある ETFで利益が出そうな感じになってきました。
指値で注文を出してから、約定するまで時間がかかるため、1時間に1度の頻度でオーダーを出すような感じですが、仮想通貨の方は24時間稼働のため、なかなか良い感じです。現在の相場に助けられている部分も大きいですが。
株の方は1日 5回くらいしかトレードできないため効率は悪いですが、とりあえず、様子見で動かします。
東証のETFを色々調べて、試していけば、結構利益がでるETFを見つけられそうな気もします。
結果
マーケットメーカー 実装しました。
仮想通貨の方は運用していけそうですが、株(ETF)の方は微妙な結果に。
スプレッドの取れる、仮想通貨は、取引量が少ないので、あまり大きな金額を入れられないところが難点ではありますが、365日24時間 ボットを動かし続けられるという環境は大きいです。まだ、開発途中なので、本当に少ない金額でしか動かしていませんが一応、利益は出ています。
日本のETFにも、同じようにスプレッドから利益を得るマーケットメイカーを導入したのですが約定回数が少なすぎて結局上手くいきませんでした。スプレッドの取れるETFはそもそも、取引量が少なく、オーダーを出してから約定するのに1時間ほどはかかります。1時間以上経っても約定しないケースもありました。株式の取引時間が6時間半ほどなので、ほとんど利益が出ず、断念しました。投入金額に対して、利益が少なすぎるのがなんとも。
ライトコイン 日次のリターン
| pair | date | Return | cumsum |
| ltc_jpy | 2025/9/26 | 0 | 0 |
| ltc_jpy | 2025/9/27 | 0.52 | 0.52 |
| ltc_jpy | 2025/9/28 | -0.48 | 0.04 |
| 2025/9/29 | 0 | 0.04 | |
| ltc_jpy | 2025/9/30 | 0.38 | 0.42 |
| ltc_jpy | 2025/10/1 | -0.13 | 0.29 |
| ltc_jpy | 2025/10/2 | 2.71 | 3 |
| ltc_jpy | 2025/10/3 | 3.29 | 6.29 |
| 2025/10/4 | 0 | 6.29 | |
| ltc_jpy | 2025/10/5 | 1.91 | 8.2 |
| ltc_jpy | 2025/10/6 | 0.1 | 8.3 |
| ltc_jpy | 2025/10/7 | 1.08 | 9.38 |
| 2025/10/8 | 0 | 9.38 | |
| 2025/10/9 | 0 | 9.38 | |
| ltc_jpy | 2025/10/10 | -0.28 | 9.1 |
| ltc_jpy | 2025/10/11 | -0.93 | 8.17 |
| 2025/10/12 | 0 | 8.17 | |
| ltc_jpy | 2025/10/13 | -0.1 | 8.07 |
| ltc_jpy | 2025/10/14 | -0.22 | 7.85 |
| 2025/10/15 | 0 | 7.85 | |
| ltc_jpy | 2025/10/16 | -0.16 | 7.69 |
| ltc_jpy | 2025/10/17 | -0.13 | 7.56 |
| ltc_jpy | 2025/10/18 | -0.32 | 7.24 |
| ltc_jpy | 2025/10/19 | -0.04 | 7.2 |
| ltc_jpy | 2025/10/20 | 1.16 | 8.36 |
| ltc_jpy | 2025/10/21 | 0.34 | 8.7 |
| ltc_jpy | 2025/10/22 | -0.08 | 8.62 |
| ltc_jpy | 2025/10/23 | -0.49 | 8.13 |
| ltc_jpy | 2025/10/24 | 0.05 | 8.18 |

コメント