スポンサーサイト

--------

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

JForexのEclipseでの利用

2011-02-21

いつにまにやらkakakuFXのページが更新されており、
Eclipseへの導入編がアップされていました。

JForex プログラミングガイド 導入編(Eclipse)

ちなみに、私が行ったEclipse利用方法とは少し異なりますがこっちのほうがいいと思うので紹介は差し控えます(笑)


さらに、プログラミングについてもより分かりやすい解説がこちらにアップされていました。

JForex プログラミングガイド 基礎編

これまたこっちのほうが分かりやすいorz...

これからは何か補足出来ることがあればこのブログで取り上げたいと思います(^-^)
スポンサーサイト

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

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でシステムトレード
ジャンル : 株式・投資・マネー

続報、値上げではなかったの巻き

2011-02-11

先日書きましたkakakuFX MK-2 by DukasCopyですが、
以下のようなメールが届きました。

値上げではなかったのでひとまず安心です。


------以下引用---------

カカクコムフィナンシャルお客様サポートセンターでございます。

ご連絡いただきました件ですが、
カバー先のデュカスコピー銀行が売買手数料を
誤って、0.0048%にて設定した為、
手数料料率の変更通知がお客様のメールアドレスに
送信された次第です。

ご迷惑をおかけいたしまして誠に申し訳ございません。

尚、現在は0.0025%に設定されており、
本番の口座には一切影響はございませんこと
念のため申し添えいたします。
また、現時点で手数料の引き上げの予定もございません。

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

手数料値上げですか??

2011-02-09

こんなメールが届きました。


kakaku FX Mk-2

Dear Sir/Madam,

Please be advised that Volume Commission rate on your trading account Client ID xxxxxx has been changed from 25 to 48.

For more information please visit the Commission Policy page on Dukascopy website: http://www.dukascopy.com/swiss/english/forex/forex_trading_accounts/commission-policy/.

Please feel free to contact with us if you have any further questions.


カカクコム・フィナンシャルお客様サポートセンター


確かに、上記DukasのURLには、デポジットが5000ドル以下の人はコミッションが1万通貨あたり0.48ドルと書いてある。(つまり0.0048%となる)

ええまあ残高0ですけども。




しかしkakakuFXのページには、
http://megalodon.jp/2011-0209-1357-17/kakakufx.com/mk2/service/outline.html

上段に、「取引手数料 取引金額の0.0025%」

と書いてあるのですが。どういうことなんだろう。

もし本当ならJForexでストラテジーを作っている身としてはかなり萎える内容です。

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

JForex ストラテジープログラムのはじめ方その1

2011-01-21

突然このブログの訪問者が増えたと思ったら、とあるMetaTraderの備忘録のfaiさんからリンクをしていただいたようです。多謝。
(faiさん、fc2のIDにメッセージを送ったので良かったらご覧ください。)


さて、予定どおり(?)JForexの「はじめ方」を書きたいと思います。

1回目の今回はJForexの説明から、自動生成されるスケルトン(プログラムの骨組み)の内容説明まで。


JForexとは、Dukasucopy社(スイス)が提供するトレーディングプラットフォームです。日本ではkakakuFXに口座を開くことで利用が出来ます。

Javaでストラテジー(EA相当)やインディケータを記述することが出来ます。
ECNやらMQLをJava変換するツールがついていたりと特徴がありますが、ストラテジー作成が目的なのであとは自身でどうか勝手に調べてください(汗


ということで、話が飛んで、
JForexのデモを開設し、このページからプラットフォームを立ち上げた状態
から話を始めますw


早速画面の左下の「WokrSpace」内の「ストラテジー」を右クリックし、「新しいストラテジー」を開きます


JForex1


すると、下図のようにJavaのスケルトンコードが出来ます。


JForex2


で、今日の本題。どこに何を書けばどう動くか。


まず、1-6行目は写っていませんが、使いたいパッケージのクラスをインポートしています。
書いていることの意味が分からなければとりあえずおまじないとして放置してください。

7-38行目の

Public Class ストラテジー名 implements Istrategy {
 //ここにすべてを書く
}

この{}の中にとりあえずはやりたいこと全部書きます。
8-13行目もとりあえずおまじないです。
そして、実際以下の6つ内容が{}内に元々、入っています(「メソッド」といいます)。

1.public void onStart(IContext context) throws JFException
2.public void onAccount(IAccount account) throws JFException
3.public void onMessage(IMessage message) throws JFException
4.public void onStop() throws JFException
5.public void onTick(Instrument instrument, ITick tick) throws JFException
6.public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException


まず、throws JFException はJForexのエラーを処理してくれるおまじないと思ってください。

1の{}内にはストラテジーをスタートしたときのみに行いたい処理を記述します。
2の{}内には口座情報に変化があったときに行いたい処理を記述します。
3の{}内にはメッセージを受け取ったときに行いたい処理を記述します。
4の{}内にはストラテジーを終了するときに行いたい処理を記述します。
5の{}内にはティックを刻むときにしたい処理を記述します。
6の{}内には足(日足、1時間足、15分足など)が完成したときに行いたい処理を記述します



一番使うのは
5と6だと思います。

次に、
1のストラテジースタート時、4のストラテジー終了時
をよく使います。



例えばスキャルのストラテジーでティックが動くたびに何かしたい場合は、5の{}内にその処理を書くことになります。

ちなみに、ここでのティックとは、プラットフォームの左下の「ワークスペース」内の「銘柄」すべてのティックに反応します(はずです)。(なので、不要な銘柄を閉じるか、どの銘柄のティックが動いたかを判定するプログラムを書く必要があります。)



1分足の終値でスキャルをする場合や30分足の終値でMACDのクロスを判定して取引したい場合は6に処理を書くことになります。


またストラテジーのスタート時に残高に応じてロットを変えるには1に、ストラテジーの終了時にすべてのポジションを閉じる処理は4に書きます。






ちなみに、ファイル名は保存時にストラテジー名(=「クラス」名)と一致する必要があります。


次回があれば、何か具体的なプログラムを書いてみたいと思います。


実際は、JForex付属のエディタは補完機能が無いのでEclipseなどに移して開発しても良いと思われます。(次か次の次かどっかで方法は書きます)



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

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