ヾ(´・ω・`)ノ゙

2017年02月13日

前回の記事のコードの気になるところを直した

前回の記事でバイナリオプションの簡単なバックテストのコードを書きましたが、
いくつか修正点があったので直してみました
直してる途中にnumpy主体でテストしたらもっと速くなるか気になって
やってみたら速くなったのでそれも書いてみました

前回のだと1分足1年分で400msくらいかかってたのが
なんだかんだで50msくらいになりました

( ´・ω・`)つBackTestBO_2.html

---追記---
もっと大量のM1で動かしてみたところ
self.result = pd.Series(self.result, index=self.df.index)
してからNO_ENTRY以外を選択する
self.result = self.result[self.result!=self.NO_ENTRY]
この箇所が遅いことがわかった なので

calc_result()の以下のようになっているところを


self.result = pd.Series(self.result, index=self.df.index)
self.result = self.result[self.result!=self.NO_ENTRY]


以下のように変更したほうがよい

mask = self.result>self.NO_ENTRY
self.result = pd.Series(self.result[mask], index=self.df.index[mask])


約600万本の足で試したらこの部分だけで5秒以上かかったけど直したら150msくらいになった


わーい!たーのしー!ヽ(´・ω・`)ノ
kawauso.gif


posted by hage at 19:26| python | このブログの読者になる | 更新情報をチェックする