プロジェクトを外部ライブラリのように使用します。
以前作成したストラテジー(プロジェクト)を変更して、ライブラリを使う方法を2パターン紹介します。
プロジェクトに依存性ファイルを追加します。
- NeaBeansで外部ライブラリを使う。
- JForexプラットフォームで外部ライブラリを使う。
外部ライブラリを作成
プロジェクトの外部ライブラリを作成し、ストラテジーのコードで使用します。
- 新しいプロジェクトを作成します。
NetBeansを起動し、"ファイル"⇒"新規プロジェクト"を選択します。
"カテゴリ"で"Maven"を選択し、"プロジェクト"で"Javaアプリケーション"を選択し、
"次へ"ボタンを押します。
- 新規Javaアプリケーションウインドウが開いたら、
"プロジェクト名"をMyExternalLibraryにして、"グループID"をcom.xCompany.strategyGUIにします。
(あとで、プロジェクトツリーのソース・パッケージノードを右クリックして、"新規"⇒"Javaパッケージ"でパッケージを追加する事も出来ます)。
- パッケージノードでcom.xCompany.strategyGUIを右クリックして、"新規"⇒"Javaクラス"を選択して新しいクラスを作成します。
新しいクラスの名前はShowGUIで作成します。
- ShowGUIクラスのコードを以下のようにします。
package com.xCompany.strategyGUI;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
public class ShowGUI {
public void showMe(){
JOptionPane pane = new JOptionPane("Executing onStart method", JOptionPane.INFORMATION_MESSAGE);
JDialog dialog = pane.createDialog(null, "OnStart Message");
dialog.setVisible(true);
}
}
- 次に、プロジェクトウインドウでプロジェクトを選択して、プロジェクトをビルドします。
JForex-SDKに依存性ライブラリを追加する
JForex-SDKプロジェクトに他プロジェクトへの依存性を追加する事が出来ます。
JForex-SDKプロジェクトの"依存性"を右クリックし"依存性の追加"を選択します。
依存性の追加ウインドウが開いたら、"開いているプロジェクト"のタブをクリックしMyExternalLibraryを選択します。
プロジェクトがライブラリのリストに追加されます。
これは、JForex-SDKプロジェクトでMyExternalLibraryのクラスが使える事を意味します。
JForex-SDKでライブラリを使う
JForex-SDKプロジェクトのMyFirstNBStrategyを開き、インポートを追加します。
import com.xCompany.strategyGUI.ShowGUI;
次に、onStartメソッドからshowMeメソッドをを追加します。
public void onStart(IContext context) throws JFException {
this.engine = context.getEngine();
this.console = context.getConsole();
this.history = context.getHistory();
this.context = context;
console.getOut().println("NetBeansで作成したストラテジー起動");
new ShowGUI().showMe();
}
JForex-SDKプロジェクトのMain.javaクラスファイルを開き、ログイン情報部分を探して、
"username"と"password"をデモ口座のアカウント情報のものに変更します。
続いて、Main.javaクラスに以下インポートを追加します。
import com.myCompany.myStrategies.MyFirstNBStrategy;
Mainクラスのmainメソッドでストラテジーを呼ぶように変更します。
Mainメソッドの最後の方にあるMA_Play()を呼び出しているコードを変更し、
代わりにMyFirstNBStrategy()を呼び出すようにします。
LOGGER.info("Starting strategy");
client.startStrategy(new MyFirstNBStrategy());
プロジェクトウインドウのMain.javaを右クリックし、"ファイルの実行"を選択します。
実行すると以下のようなポップアップが表示されます。
(エラーが発生していないのに表示されない場合は、"依存性でビルド"を試して見て下さい。)
ストラテジーを停止させるロジックが書かれていないので、手動で止める必要があります。
NetBeansウインドウの右下あたりにある停止アイコンをクリックして停止させる事が出来ます。
JForexプラットフォームで依存性ライブラリを追加する
JForexプラットフォームで実行するストラテジーにライブラリを追加するには、
@Libraryアノテーションを使用し、引数に"ライブラリのjarファイルへのフルパス"を設定しなければなりません。
前回作成したMyExternalLibraryプロジェクトをJForex-SDKプロジェクトに依存関係を追加しました。
ストラテジーにライブラリのjarファイルを追加します。
プロジェクトをビルド後、NetBeansはプロジェクトのディレクトリツリーにdistフォルダを作成します。
このdistフォルダにプロジェクトのjarファイルが置かれます。
(Mavenを使っている場合は、targetフォルダに置かれます。)
@Libraryアノテーションの引数に、このjarファイルのフルパスを指定します。
@RequiresFullAccessアノテーションはデフォルトのワークステーションとは違う場所からjarファイルをインポートしなければならない時に必要になります。
前回作成したMyFirstNBStrategyストラテジーを変更して、 @Libraryアノテーションと@RequiresFullAccessアノテーションを使用します。
import com.dukascopy.api.RequiresFullAccess;
import com.xCompany.strategyGUI.ShowGUI;
@RequiresFullAccess
@Library("C:/Users/USER_NAME/Documents/NetBeansProjects/MyExternalLibrary/target/MyExternalLibrary-1.0-SNAPSHOT.jar")
public class MyFirstNBStrategy implements IStrategy{
private IEngine engine;
private IConsole console;
(USER_NAME)の部分はOSのユーザー名に依存します。
アノテーションを追記した後に"Ctrl" + "Shift" + "I"でインポートが追加されます。
JForexプラットフォームでライブラリを使用する
ライブラリはJForexプラットフォームのストラテジーでも使えます。
JForexプラットフォームでストラテジーの
Javaファイルを開き、
コンパイルしてストラテジーを実行します。
実行結果は、JForex-SDKプロジェクトで実行した時と同じになります。