C#
DDE

投資活動: 自動取引への挑戦!

More than 1 year has passed since last update.

1. 経緯

初めての株取引

  • ご多分に漏れず、知ってる銘柄を適当に値頃感から買いました。
  • もちろん、日々下がって行く株価を眺めていました。。。

カバードワラントなるものを知る

  • え?高額な株を買うのではなく、小額のカバードワラントを買えば数倍になる?
  • ちょうど持っていた株が評価損になっていたので、ちょうど好感触ニュースが出た時にこのカバードワラントなるものを知ったせいで手を出しました。
  • もちろん好感触ニュースなのでCALL!
  • もちろん大損です!
  • その後、日経平均を基にしたカバードワラントの方が値動きが良かったのでデイトレードで挑戦しましたが・・・

その後、日経平均先物、オプション、FXにも手を出しましたが全然でした。

  • これまで、ほぼ裁量トレードを行ってきました。
  • 利益が出るときもありました。
  • 損失が大きく出る事もありました。
  • いえ、正直なところ、損失ばっかりでした・・・
    • トータルは完全に負けです。
    • これは裁量トレードによるものだとはっきりしています。
    • 自動売買、システムトレード、を全くやってこなかったから、そう思っているだけ、かもしれません・・・

あるアプリケーションとの出会い

  • 「ほぼ」と上述したのは、トレード用のアプリケーションを一時期使っていました。
    • そのアプリケーションは、ある会社で開発されたものでした。(数年前、2013年頃には、サイト自体が無くなっていました)
    • そのアプリケーションは、楽天RSSから取得した株価データを基に分析を行いシグナルを出していました。
    • 単にそのシグナルだけではなく、他のテクニカル分析、ファンダメンタル分析も行い、それらの要素を組み合わせて売買を行うものでした。
    • 他のテクニカル分析、ファンダメンタル分析の詳細は不明です。
    • その会社は、アプリケーションを開発、販売するだけではなく、実際に売買も行い、その際のリアルタイムなトレードログも公表していました。
    • 過去の成績はプラスだったことは当時の保存データからも明らかです。
    • このアプリケーションはかなり良いものだ、なんとかこれを使って儲けたい、と思いました。
    • ただ、トレードログの通りに取引しなかったせいもあり、利益は出ませんでした。。。
    • “リアルタイム”なトレードログといっても、シグナルが出る→注文出し→約定→の流れで、約定した後のトレードログのはずなので、利用者がタイミングを逃すのは当然です。

よし、自分で作ってみよう!!

  • そこで、そのアプリケーションの仕様を把握しようと研究しました。
  • そのアプリケーションの監視銘柄の値動きも研究しようとしました。
  • 自分ならもっといい成績を出せるアプリケーションを開発できるはずだ、と意気込みました。
  • そうして私はそのアプリケーションの思想を踏襲した(真似た)アプリケーション開発を行いました。
    • 開発言語はC#
    • 楽天MarketSpeed楽天RSSを使用して株価データを取得
    • DDEを使用してRSSからのデータをC#に通知し、データ分析を行い売買シグナルをアラート
    • データ蓄積はSQL/Serverとテキストファイル

挫折 orz

  • 一旦は完成したのですが、資金不足になり中断しました。
  • 実家に戻りました。
  • ひっそりと暮らしながら別のアプリケーションを作って売って儲けようと考えましたが、実家暮らしは楽ですね!まったく開発は進みませんでした!
  • その間、トレードアプリケーションには手を付けずにいました。
  • 田舎で時給が安いPG派遣に出てしこしこと貯金し再び都会に出る事を目指しました。

復活!

  • そして資金も出来たので時給が高いPG派遣にでるため都会へと戻りました。
  • そしてそして作成途中のアプリケーションを完成させようと2016年末に開発を再開しました。
  • が、結局完成しないままです。
  • 未だに裁量トレードを行って損失が膨らんでしまいました。
  • でも、前回のような失敗は2度としません。
  • 次、実家に戻るような事があれば、もう復活は出来ないでしょう。

楽天RSS

  • ぜんぜん駄目です。
  • MarketSpeedで見られるような株価のいろいろな情報がRSSを通して取得出来ます。
  • 2010年東証でアローヘッドが採用される前までは問題ありませんでした。

従来1件あたり2〜3秒かかっていた売買注文が0.005秒(5ミリ秒)程度まで短縮された

  • アローヘッドが採用されたお陰で、データ量が一気に増えました。
    • 当然RSSに流れるデータ量も増えます。
    • RSSはDDEを使用します。
    • DDEは、すべてのデータをDDEクライアントが受け取ったかどうか全く気にしません。
    • お陰で、データの取りこぼしが発生します。
  • 何故データの取りこぼしが分かったか?
    • マイクロソフトNetworkMonitorでパケット解析しました。
    • 1回のパケットデータ内に複数の約定データがありました。
    • しかし、C#側に通知されたのは複数の内の最後のデータでした。
    • そのため、歩み値データがMarketSpeedと一致せず悩んでいたことが解決しました。
      • それまでは、プログラムのロジックが悪くて処理速度が遅くて取りこぼしているのかと悩んでいました。

そしてMarketSpeedバージョンアップがやってきた

  • 2017年4月 Ver15.5が公開

2017/04/14 【セキュリティ仕様変更・強化】マーケットスピード Ver15.5 リリースのお知らせ
(記事抜粋)
2017年4月13日に、トレーディングツール「マーケットスピード」の新バージョン(Ver15.5)をリリースいたしました。
通信暗号方式の変更

これまでマーケットスピード(ver15.4まで)では独自の通信暗号化処理を行っていましたが、今回リリースされるバージョン(Ver15.5)より全ての通信をSSL/TLSを使用した暗号方式に変更します。

この変更によりセキュリティ面が強化され、悪意のある第3者がお客様の取引情報を盗み見したり改ざんしたりする行為がこれまで以上に困難になり、お客様の取引情報がより安全に保護されます。

  • 2017年7月1日 Ver15.6が公開

2017/06/23 マーケットスピード Ver15.6 リリースのお知らせ
(記事抜粋)
2017年7月1日に、トレーディングツール「マーケットスピード」の新バージョン(Ver15.6)をリリースいたしました。

リアルタイムスプレッドシート(RSS)が64ビット版のExcelでご利用可能になりました。

  • 恐らく、Ver15.5の時だと思います。Ver15.6と入れ替えて比較していませんが、RSSのパケットデータがTSL暗号化されました。
  • それまではパケットの中身を見ると、指定する銘柄の全更新データがパケット内に含まれていました。
  • なので、DDE通信してデータを受け取るよりも、パケットを横から覗き込んでやれば、データの取りこぼしが無くなる!と喜びパケット取得からRSSデータ変換ライブラリを作ってやろう!と意気込んでいました。
  • それを挫くが如くバージョンアップがやって来ていたのでした・・・
    • ちょっと最新バージョン公開されてるからインストールしてやろうと思ってやってみたところ、パケット取得するプログラムが動かない!何故!
    • NetworkMonitorで見ると、何やら見かけない文字TSL~が・・・
    • あー・・・
  • MarketSpeedを古いバージョンに戻すと、しっかりパケット無いの株価データが確認出来ました。
    • セキュリティ対策でのバージョンアップなのだから、そう遅く無いうちに使用出来なくなりそう、ということは察しが付きます・・・

つまり、もう楽天RSSを使ってのトレード用アプリケーションは作れない!!!

  • なんと言うことでしょう・・・
    • いや、作る事は出来ます。
    • ナノトレード対応になった東証からのデータをリアルタイムに正確に分析しトレード判断する事が出来なくなっただけの事です。
      • デイトレード、スキャルピングには大事ですよね。
    • スイングトレード、長期投資するのなら全く問題無いでしょう。
      • そもそも歩み値が必要ないです、日々の4本値+αさえ取れれば。

楽天RSSよりも良いデータ配信をしてくれる会社を探す!

  • 検索しました。「投資 RSS」「トレード RSS」「トレード RSS 端末」「トレーダー・ワークステーション」
  • 数分で見つけました。
  • Interactive Brokers証券です。
    • データ配信あり。
    • APIが使える!RSSのようなDDEもあるようだが、何よりJava/C#/Python/C++のAPIが用意されている!!
    • 海外口座です。
    • 国内口座も開けますが、
  • 他社も探してみました。X-Trade社でも株価データ配信しているようですが高額でした。
  • Interactive Brokers証券は取引手数料も安いしデータ配信も安いので、ほぼここに決定です。
  • 開設する前に、本当に欲しいデータが配信されているのか確認したい。
  • APIのオンラインドキュメントを見ても分からない・・・
  • どうやらMarketDepth、Level2がそれのようだ・・・
  • ただ、RSSのように板情報+約定情報を同時に流してはいないようだ・・・
  • Level2は板情報で、約定情報はTimeAndSalesと、別々のAPIで受け取るようだ・・・同期取るのが面倒なのかな・・・
    • Level2とは一体どんなものなのか、Youtubeで検索すると沢山でてきました。
    • 以前、米国でのデイトレードについて書かれていた本を読んだ事があります。その中でレベル2情報を見ながら~と書かれていました。写真もありましたが、さすがYoutubeの時代です。動画で見ると一目瞭然。

2. 次回、いよいよInternetBrokers証券の口座を開設してみようと思います。