規模別株価指数

JPXはTOPIX 500銘柄や、TOPIX Core 30銘柄を毎年10月末日に入れ替えている。銘柄リストはJPXの株価指数ラインナップ・ページから辿る事で、PDF形式で入手できる。TOPIX 500銘柄はそれ以外の銘柄と異なり呼値が異なる。だから、模擬売買を行う際にストップロスの値を専用の値を設定しないと損切りが遅れる事になる。

1 min read

東証から8本値(午前4本、午後4本)を得る

東証からは毎日各銘柄の8本値が公表されているが、pdfで記載されているのが困ったところ。しかも時期によって記載内容が異なっている。例えば、2024-07以降は銘柄毎に売買株数、売買代金が記載された日報が公表されている。しかし、2020-01 ~ 2024-07では月報が公表され、そこには売買株数、売買代金の記載がない。

1 min read

pdfファイル構造

Rubyのpdf-reader GemだとJPXの日報からTextを取り出せるのに、SwiftのPDFKitでは問題が発生する。 表からTextの取り出しは出来るのだが、レイアウトが酷く壊れてしまうのだ。しかもその壊れ方に規則性を見いだせずにいる。そこでpdfのファイル構造を調べ始めた。 独自Text Extractorを実装する第一歩は、圧縮されたStream(FlateDecoder)からPDFオペレーターとオペランドを抜き出すことだ。

1 min read

サーバーレスのバックエンド

数年前(2017頃)にサーバーレスなる謎用語がバズっていた。GoogleのFirebaseを指していたのだが、今ではFirebase似のサービスのローカルで実行可能だ。Pocketbaseがそれなのだが、この記事では認証サービスを例にサーバーレスとは何なのかを調べたので記録しておく。以下の情報はGrokに尋ねて得た。

1 min read

日本株を模擬売買やってみた

模擬売買とは売買シミュレーション、システムトレードと言われてるヤツである。コードで記述可能なルールで銘柄を選び、買い取引、売り取引のタイミングも選び、ルールを過去の株価に適用する。適用した結果、利益率(収益: 利益‐損失を取引回数で割る)が大きいルールの発見を目指す。ルール、コード、実行結果を以下に示す。

5 min read

決済代行サービス利用時のフロント/バックエンド実装

アプリを開発してマネタイズする方法の一つにActivation Codeの販売を行うのがある。その際のバックエンド、フロントエンドの実装を調べてみた。なお、以下に掲載するコードの内、Code生成、Codeの正当性検証のコード(Swift, Ruby)以外は実際に動作を確認していない。

  • 開発者の口座に入金がなされる仕組み
1 min read

KeyPath<T, V>で作る汎用関数

多数のメンバを持つタイプのメンバへのアクセスを抽象化(汎用化)した下記のsortBy関数は、KeyPathで実現されています。時にはname, 時にはageで配列をソートしたい場合にsortBy関数がどちらの場合でも利用できます。なお、People型のInt型プロパティへのKeyPath<T, V>は\People.ageと表記されます。

~1 min read

macOS AppのタイトルバーにMenuボタンを設置

タイトルバーにメニューボタンを設置してみた。メニューにButtonを設置することは出来るが、Text, Pickerの設置してもコンパイルエラーは発生しないがPreview Canvasに表示されない。もちろん、Debug実行しても表示されない。(俺的メモ: ToolbarContent@FloatingTabBarワークスペース)

~1 min read

App起動前にDialogを表示する

macOS Appの場合App起動前に、SQLite3のDBからデータを取り出す処理に失敗した時にApple Scriptのdisplay dialogを使って失敗を通知できる。ネットを漁って見つけたコードを残して置く。

~1 min read