NDD方式で約定力の高さが魅力のJForexですが、注文画面がちょっと使いにくく感じます。
なので、今回はJForexのチャートツール上で動くシンプルな注文画面を自作したいと思います。
IStrategyインターフェースについて
FXで一番有名なプラットフォームといえばMT4になるかと思います。
MT4で自作のインジケータやEA(自動売買プログラム)を作成する場合、C言語ライクなMQLという言語が用意されています。
JForexでは基本的にはJavaで開発を行います。(JForexでもMQLが使えるようですが試したことありません…w)
JForexにおける売買プログラムはストラテジーといい、ストラテジーを作成するにはIStrategyインターフェースを実装する必要があります。
IStrategyインターフェースには
- onStart
- onTick
- onBar
- onMessage
- onAccount
- onStop
という6つのコールバックメソッドが用意されています。
各コールバックメソッドの内容は次のとおりです。
onStartメソッド
ストラテジー開始時に呼ばれるメソッドです。
ここで渡されるIContext型のcontextオブジェクトが肝となる部分で、このcontextオブジェクトを通してトレードの実行や履歴へのアクセスが出来ます。
onTickメソッド
ティックの更新毎に呼ばれるメソッドです。
ストラテジー実行前に選択した通貨ペアのティックが更新される度に呼び出されますので、通貨ペアが複数ある場合は、どの通貨ペアのティックが更新されたのかをフィルタリングする必要があります。
onBarメソッド
足の確定毎に呼ばれるメソッドで、10秒足、1分足、5分足など、JForex上の一般的な足の確定時に呼ばれます
一般的な自動売買プログラムは足の確定で注文を出すケースが多いかと思うので、そーゆープログラムの場合はどの足の確定で呼ばれたのかをフィルタリングする必要があります。
また、onTickメソッドと同様、通貨ペアが複数ある場合はそのフィルタリングも必要になります。
onMessageメソッド
サーバからのメッセージが送られる度に呼ばれるメソッドです。
注文送信時や変更時、取消時等にきちんと約定したかどうかはこのメソッドで渡されるIMessage型のmessageオブジェクトの中身を見るとわかります。
onAccountメソッド
口座情報が変更される度に呼び出されるメソッドです。
5秒に1回位の頻度で呼び出されるようですが使ったことありません…w
onStopメソッド
ストラテジー終了時に呼ばれるメソッドです。
注文画面を作る上では
- onStart
- onTick
を実装するくらいでなんとかなりそうです。
では、次回からいよいよ実装に移りたいと思います。
コメント