【Protra】共通コードを関数化して可読性を向上させる

追記)本記事中のUtility.ptは更新されています。こちらの記事もあわせてご覧ください。

Protraストラテジに含まれる共通コードを外部に出して、コードの可読性を上げてみます。

【免責事項】
・本ブログの内容において、正当性を保証するものではありません。
・本ブログを利用して損失を被った場合でも一切の責任を負いません。
・最終的な決定は、ご自身の判断(自己責任)でお願い致します。

ファイルの格納場所

コード内の頭に記載している↓。Tilibはマニュアルにある通り、テクニカル指標を計算するオブジェクト指向風ライブラリです。

require "TIlib"


これにならって、共通化できるコードをライブラリ化します。

ファイルの格納場所:Protra\lib に Utility.ptを作成します。(名前は適当です)

コードの選択

今回は 前記事で取り上げた順張りコードを例に作成してみます。

株数」,「売買」,「株価データの有無の確認」部分は共通化できそうです。

これらは外部に出し、Protra\systemに保管されるストラテジには、売買ルールのみを記載します。

実装

はじめにストラテジ。前記事で示したコードからの変更部は以下の通りです。

  • 24行目  :Utility をインポート
  • 64行目など:株価データ有無確認 PricedataExistCheck(確認したい株価データ)
  • 90行目  :株数 Num(1回の購入資金, 株価データ)
  • 92行目  :翌日始値買い BuyingNextDay(i)
  • 127行目  :翌日始値売り SellingNextDay(i)


つづいて、Protra\lib に作成した Utility.ptです。

今回は使用していませんが、当日終値買い,当日終値売りも準備してあります。


銘柄を横断したストラテジ用(1行目に#loop-type: date-only)に作成しましたが、通常のストラテジでもオーバーロードさせれば、同じUtilityファイルで売買を記述できそうです。

その2に続く