Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

初期化処理(post_create)について #449

Open
JunyaW opened this issue Jan 12, 2018 · 4 comments
Open

初期化処理(post_create)について #449

JunyaW opened this issue Jan 12, 2018 · 4 comments

Comments

@JunyaW
Copy link

JunyaW commented Jan 12, 2018

前回はnext_tickの間隔を変える方法についてご教授いただきありがとうございました。

現在、Herokuのhobbyプランを使って、next_tickの間隔を6-10h程度にしたエージェントを
プラクティスの講座で動かしています。

next_tickやpost_createのところにloggerを入れて見ているのですが、next_tickの間隔はうまくコントロールできている一方で、1日1回必ずpost_createされています。

ここで質問なのですが、

  1. post_createされた直後の一番最初のnext_tickは、ただレートを受け取るだけで、前日の最後のnext_tickのレートと比較してCross upやdownの判断をすることはないですよね?

  2. 1.の質問のようにシステムが動くとすると、1日1回 post_createされた直後のnext_tick一回分、取引のチャンスが無駄になってしまうと思うのですが、なんとかそれを回避する方法はないでしょうか。
    (restore stateを使えば良いのでしょうか? もしそうであれば、エージェントへのオーバーライドの仕方を教えていただけませんか?)

お手数をおかけしますが、宜しくお願い致します。

@unageanu
Copy link
Owner

1日1回必ずpost_create

これは、恐らく再起動されていますね。Herokuのhobbyプランはそのような仕様だったと記憶しています。

1.post_createされた直後の一番最初のnext_tickは、ただレートを受け取るだけで、前日の最後のnext_tickのレートと比較してCross upやdownの判断をすることはない

その通りです。restore_state(state) で状態を復元する等しないと、一番最初のnext_tickは値を返却しません。

  1. それを回避する方法

Herokuの有料プランを使用して再起動を抑制する以外に、 書かれている通り、restore_state(state) で状態を復元する方法でも対応可能です。state() , restore_state(state) をエージェントのメソッドで定義すれば停止/再開時に呼び出されますので、そこで状態を保存、復元するようにしてみてください。

@JunyaW
Copy link
Author

JunyaW commented Jan 13, 2018

ありがとうございます。納得しました。

教えていただいた、状態の保存と復元をエージェントのメソッドで定義するには、具体的にはどのようにすれば良いのでしょうか。

デフォルトのmoving averageのエージェントの最後の方に、以下のような部分がありそのままにしているのですが、このままでもこれらはもしかして機能しているのでしょうか?


エージェントの状態を返却

def state
{
mvs: @mvs.map { |mv| mv.state }
}
end

永続化された状態から元の状態を復元する

def restore_state(state)
return unless state[:mvs]
@MVS[0].restore_state(state[:mvs][0])
@MVS[1].restore_state(state[:mvs][1])
end

@unageanu
Copy link
Owner

はい、これでよいはずです。

@JunyaW
Copy link
Author

JunyaW commented Jan 14, 2018

ありがとうございます。うまくいっているようで良かったです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants