Giter Site home page Giter Site logo

algo-trade's People

Contributors

masavo avatar

Watchers

 avatar

algo-trade's Issues

ER図を考える

メモ

@startuml

title ER図

class "銘柄" as Company {}
note left of MinChart
  日、分、週、月、で
  分割したテーブルを持つべきかも?
end note
class "分足" as MinChart {}
class "日足" as DailyChart {}
class "あゆみ値" as ProgressValue {
}
Company --{ MinChart
Company --{ DailyChart
DailyChart --{ ProgressValue

@enduml

nextAction

ん、ORMapper使うか、NoSQL使うかによっても、色々変わりそうなので、これ以上は一旦待ったほうが良さそうだね。

localにpythonの開発環境を構築する

目的

検証をスムーズにできるようにする

やること

Python株価分析の方法を試す

  • 疑問点
  • Pythonでのライブラリ管理方法は?(rubyのbundle install的なやつで、とりあえず環境切ってlocalできどうできればよい)

売買・分析システムの要件を洗い出す

考え方

ポイント

  • 競合優位性を生み出すものを強調する。
  • ステークホルダー(顧客)に価値を提供しないような、不要なフィーチャーが入っていないか確認する

大まかな業務メタプロセス一覧

要件は、基本的に「ooする」だとか「oo機能」などになりがちが、
KADS手法に基づいて、高次のプロセスを考えるところから始める。

  • 1 分析プロセス: 人が分析でき、その分析結果を元にアルゴリズムを組める
    • データの取得・表示・加工
    • チャートによる分析
    • 日経平均による分析
    • 決算書による分析
    • その他の外部要因による分析
  • 2 モデリングプロセス
    • ある分析を過去のデータに照らし合わせて、売買記録をチェックできる。
  • 3 株式売買プロセス
    • 上記分析結果を利用して判断する
    • 板と直近の値の動きを見て判断する
    • 保存した売買状況に基づいて判断する
  • 4 売買情報保存プロセス
    • システムが、株の売買履歴を記録できる(当然他API使っても良い)
  • 5 報告プロセス
    • 売買結果や増減率、数週間の予測をレポーティングする

2023/10/28現在では、全部で7つのプロセスを発見している。
これらのプロセスの詳細を記述していくことで、主要なフィーチャを明らかにしていく。

より詳細な機能(ブレインストーミング的に出す)

  • 日本株式を取り扱う
  • ある計画(モデル)に沿って自動で取引する
  • 分析しモデルを作成できる
  • モデルを随時チューニングできる
  • エラーが発生したときに、直ちに適切な担当者へ方向され、適切に対処される
  • 運用実績が確認できる(モデルの予想との差分がわかる)
  • バックテストできる
  • 情報を常に取得して、モデルに反映できる
  • チャートをいっぱい書ける(どれくらい必要かは現時点では不明)
  • ある条件にしたがって、API叩けるような仕組みが用意されている
    • 最低限のイメージ
      • (0.)N秒おきにAPIリクエストして、情報取得する
    • その結果を各モデルに追加して売買判断を煽る
    • (前日の情報に基づいて、ポジションを取るなど)
  • 計算をスタックして、read速度を上げる仕組みが用意されている(都度計算しないで、現在の計算結果に追加していく)

できればの追加要件

趣味面がでかい

  • 色々な変数を考慮して遊べる。
    • 日本のカレンダー
    • 世界情勢のイベント: 戦争が起こっただのなんだの
    • 温度やとかも追加できたら楽しいのでは?
  • できればDBに対してsqlを直打ちして分析してみたい欲求→ソレを元にモデルを開発するイメージ

TODO

  • 本を一冊読んだらもう少し固める。
  • スター多い上位3~5種類 を確認して、比較表をissueにする
    • 必要に応じて自分で作ったほうが早いかもしれない判断をする。

KADSの実践メモをする

やってること

  1. メタプロセスを大まかに定義する
  2. とりあえず、1つ選んで考えていく→できなかった
  3. なんか思いつかないので、「知識抽出技法」を実践していく
  4. とりあえず、主要部分のメタプロセスに上がりそうな「入力」「出力」「操作」を考える

具体的実装方法をいつ考えるかについて考える

例えばバックテストの実装方法について書いてあるのが、Pythonによる株価分析の本である。

で、俺が重要視しているのは、なにか?
バックテストなどどうやるの?みたいな部分も重要な項目である。
だが、それよりも人間がどういうプロセスで使うかのほうが大事な気がしてきている。

なので、インタビューが先っぽい。
それらのインタビューしたあとに、大枠の設計ができて、その後に初めて実装の少尉について考えたほうが良さそうだぞ

不安な点

  • 具体的に何をするかを知らないのではないのか→
  • 今回の目的はある意味「システム化」である。
  • したがって、通常のシステム開発プロセスと同様に、既存の手順をシステムに起こすことによって、そこで生じた改善ポイントもまとめて改善するということになる

    要求の穴ライジングついて、詳しい記述がソフトウェア要求に書いてあったはずなので読もう。

6つの知識抽出技法を駆使して、知識を抽出していこう

目的

  • 現状、メタプロセスの大分類をしてみたが、実際に本当に大事なプロセスがわかっていない

  • これらの抽出技法は、認知パターンのモデリングやコンパイル済みの知識獲得に役立つ

  • 複雑なドメインを理解する

  • 複数のアプローチを取ることで、より詳細な知識を抽出する

  • 一度各手法を使うことで、今後発生しうる「金槌持ってたら全てが釘に見える症候群」を防ぐ

方法

  1. インタビュー
  2. プロトコル分析
  3. 概念整列
  4. シナリオ
  5. 観察
  6. 事象想起

今回は、1, 5,6は一挙に行っても良い。 + 実際に取引をする(カウカ川内科判断する)過程を録画してみて、その時何を思ったか、どういった情報が更にあれば、買う判断ができていたのかなどを観察する。

KADSを用いてパターンを作成する

#2 の主要な機能部分を分解していき、KADSの図を作る

人が分析でき、その分析結果を元にアルゴリズムを組める
すステムがアルゴリズムに基づいて、株を売買できる
システムが、株の売買履歴を記録できる(当然他API使っても良い)

目的

  • 各概念・操作を明確にし、実装に落とし込めるようにする
  • ライブラリのコードを読むときに、設計知識を役立てる
    • 構造が想定の範囲内であれば、やっていることがわかるので、実装をそのまま使えそう

方法

https://plantuml.com/ja/state-diagram
plantUMLのアクティビティ図状態遷移図を使うことで、簡単に図式化できそう?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.