アプリ開発の経緯

2016年度、競馬に関する研究をぼちぼちやっておりました。 しかしながら11月から始まったトランプラリー、翌年には暗号通貨への投資も始め、全く競馬に回せるリソース(資金と時間)がなくなりました。 これ自体は正しい選択でした。株でも暗号通貨でも、多くのお金を得ることができました。 競馬ではかなり望み薄の金額ですし、ひょっとしたら失っていたかもしれません。

だが、研究成果を無駄にして良いものか?きちんとエッジとなる強みは見つけていました。 これはあまり他の人が気づいていない傾向のような気がします。 そう思っているときは得てして危ないのが投資の世界ですが、知ってしまった以上やってみたくなるのが性です。

資金をきちんと用意して、己の戦略を信じて馬券を購入し続ければプラス収支にできるのではないか? そもそも競馬は楽しい。馬と人間たちのドラマがある。今年は推しの2歳馬も出走する。

ということで、以前の研究成果をブラッシュアップして馬券を買ってみたいと思います。 今まではR Studio上でデータを手でいじって色々見ていましたが、流石にその方法は限界です。 去年までと違うのは、Webアプリを開発する経験を積み、DB周りの知識も多少なりとも増強したところです。

要件を整理し、ポチポチ操作で自分の知りたい情報を取れるアプリケーションを作成しましょう。

俺専用馬柱

対象レースを指定すると、自分の欲しい情報(エッジ)を整理して一覧表示してくれる機能です。
これに関してはひとまず、早急に作れるR Shiny Appを作ります。データは簡便のためファイルで済ませます。 その後DBをきちんと定義し、Djangoに移植します。

分析のブラッシュアップ、バックテストの充実

これに関しては一旦後回しとしたいと思います。

10/12

  • Rからpythonを叩く機能の実装
  • レース情報の取得→ファイル保存
  • レースに出走する馬情報の取得→ファイル保存

Rとpython間のデータのやり取りは効率的ではないので、ファイルにいちいち保存します。 これも効率的とは言い難いですが、早急に作る必要があるためこの方針を取ります。 昔書いた資材を出来ればR6クラス化、パッケージ化したいですが、期限内にやるのは難しそうです。 source()を用いて対応するつもりです。 いずれはやらないとDjango化するときに困りますね。分析も全部pythonで書けよという話ですが・・・

10/14

  • 以前作成したソースコードの確認
  • ソースコードをShinyアプリケーション用にmodify

ソース修正の際に以下の壁にぶつかりました。

小ネタ:Rでパッケージ読み込み時に日本語のメッセージを出す

Shinyアプリはパッケージではないだろう?とも思いますが、同じエラーが出るので修正する必要があります。
と思ったら、Shinyでは日本語が一切使えないらしいです・・・古い記事ですが・・・

Shiny-Serverあれこれ

今までRを使っていて日本語を使うという場面がまったくなかったので気づかなかったのですが、今回はとってきたデータに日本語文字列が含まれる以上日本語をコード内に仕込めないのは困ります。
回避策としては、ファイルから日本語を読み込めば使えるはずですが、非常に面倒でバカバカしい作業です。
さすがにShinyをすっ飛ばしてDjangoを使うことを検討した方がいいかもしれません。
しかしチュートリアルから始めないとまともに作業できないので、明日のレースはもちろん、来週末にも間に合わないでしょう。
株の振り返り記事や暗号通貨の投資戦略、その他の記事も書きたいのにこちらを優先している手前、これ以上タスクがかさむのは困ります。


明日は府中に、来週末は新潟に行きます。府中は、馬の写真を撮る練習、新潟は推しを見に行くのが目的です。
詰めていった結果、三連単でオッズを作るのが最も正しい戦い方だと気づいてはいるのですが、私の戦略では多点買わないといけないので一回の投資が6000円からとかになってしまいます。
全然分析できていないので複勝や馬単で少額遊びたいと思います。勝負の準備ができていないので仕方ないです。

11/4

  • 日本語文字列に関する問題を消極的に解決
  • ダッシュボードデザインの適用
  • テーブル表示

記録をつけるのをサボっていましたが、競馬をやったり@tipnemでXEMのバラまきなどをしていたせいです。
ちなみに馬券は大いに負けています。推し馬の単勝へ大金を投じているので負けると全く回収できません。そして新馬戦以来2連敗で馬券内なしです。辛い。
推し以外も少しだけ買っているのですが、単勝10倍~20倍レンジの馬が2着止まりのケースが2回もありました。これも辛い。

本題ですが、まず日本語の問題が解決しました。
Macに移動したら問題なくすべてのコードが動きました。根本は解決していないので消極的な解決策ですが、これで進められます。
Macだと日本語をコード内に仕込んでいても別に大丈夫でした。情報があまりないので調べてまとめるのもありかもしれません。

ダッシュボードの見栄えを整えました。
ShinyDashboardライブラリは非常に素晴らしいと思いました。
インストールしてチュートリアルどおりのコードを貼り付けるだけで見栄えが非常に良くなります。
まともなフロント開発技術をもっていない私としてはとても助かります。

テーブル表示をする部分を実装しました。問題なく動いたので、いよいよデータを整形する部分を作ります。
たくさんカラムがあるので取捨選択がまず一手間です。
そして、去年実装したコードの内容把握とリファクタリングがなかなか大変です。
まずは、取捨選択を終えてスコープを絞るところまでやりたいです。