スポンサーサイト

--------

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JForex ストラテジープログラムのはじめ方その2 MAクロス編

2011-02-18

JForexのはじめ方、その2です。
JForexはJavaベースですのでJavaとオブジェクト指向を勉強しておくと理解が相当早いと思います

それからDukasCopy提供のJavadocをさらっと見ておくといいかも^-^;;


プラットフォームのダウンロード、デモ登録はこちら(KakakuFX-MK2)からどうぞ。

まずは
JForex ストラテジープログラムのはじめ方その1
をご覧ください。

今回は、kakakuFX MK-2で紹介されているMACrossのサンプルを紹介します。
(短期移動平均が長期移動平均を上抜いたとき買い、逆で売りのシステムトレードの基本中の基本のアレです。)



【準備】
まずは上記URLからサンプルコードをダウンロードし、MACross.javaを開いてください。
さてその1ではプログラムの全体構成を紹介しましたので、今回は追加部分を見ていきます。



ソースコードのうまい貼り付け方がわからないので、該当ファイルを横に並べて以下をご覧ください。

いい方法があれば教えてください。。。


・4行目
import java.util.concurrent.TimeUnit;

時間に関する操作を扱いたい場合にインポートしておくと便利です。
今回はサーバから注文の結果を待っている間の時間に利用しています。


・7行目から
import com.dukascopy.api.IEngine.OrderCommand;
import com.dukascopy.api.IIndicators.AppliedPrice;
import com.dukascopy.api.IIndicators.MaType;


com.dukascopy.api.IIndicatorsはFXのいろんなインジケータを使ってストラテジーを作るときにはインポートしておくと便利です。
例えばcom.dukascopy.api.IIndicators.MaTypeはSMA,EMA~T3など各種移動平均を扱うことが出来ます。

さて、お気づきかもしれませんが、「インポートしておくと便利」なだけでインポートは実は必須ではありません。

例えば、20行目で
@Configurable("移動平均線1 種類") public MaType fastMaType = MaType.SMA;
という記述があります。
これは、
import com.dukascopy.api.IIndicators.MaType;
のインポートを省略した場合
@Configurable("移動平均線1 種類") public IIndicators.MaType fastMaType = IIndicators.MaType.SMA;

とパッケージ名のIIndicatorsまで書いても動作します。
なぜなら、import com.dukascopy.api.*;の記述でcom.dukascopy.api以下のパッケージはすべてインポートされているためです。
ただし、繰り返し使うものはサンプルのようにインポートしておくと何回もと書かなくてすむので便利ですので通常そのようにします。
Javaマスターの方には当たり前かもしれませんが(^-^;;


・12行目から
@Configurable("通貨ペア") public Instrument instrument = Instrument.EURUSD;
@Configurable("金額") public double amount = 0.25;
・・・・・・
・・・・・・

@Configurableを変数の宣言につけると、ストラテジーの実行時にその変数をパラメータとして入力することが出来ます。MT4でいうところのexternに相当するものです。


・53行目から
 public void onBar

 public void onBarの{}でくくられた中にいろいろ書いています。
 ここはバーが完成したときに行いたい動作を書くものです。
 今回はバーが完成したときにMAがクロスしているかどうかを判定しエントリーしますので、ここに具体的な移動平均交差売買の内容を書くことになります。


・98行目
 private IOrder submitOrder{}

 発注する処理をメソッド(関数)としてまとめています。
 privateとついているのは、このファイル内から呼び出す関数であることをあらわしています。
 同一クラス(戦略)内で同じ処理を何度もやる場合は、このように外出しで書くと便利です。

・118行目
 private IOrder closeOrder{}

 同様にポジションを閉じる処理をメソッド(関数)としてまとめています。


大体の骨格を説明しましたが、ちょっと取りとめがなくなってしまいましたorz
続く。。。。かも

テーマ : FXでシステムトレード
ジャンル : 株式・投資・マネー

トラックバック

コメントの投稿

非公開コメント

JForex

JForex興味ありありです。
今後の記事もヨロピク!

Re: JForex

ガマウシさん

> JForex興味ありありです。
> 今後の記事もヨロピク!

ありがとうございます。
新しい記事で書きましたが、KakakuFXのページがかなり更新されていて、内容が一気に充実してきました。Eclipseでの利用法なども書く予定でしたが、必要なくなりましたね。このMAcrossの件だけ最後まで書こうかなと予定しています。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。