JForex APIでのオーダーの取引数量は100万通貨単位で表示されます。
これはユーロドルで1.000の取引数量でロングエントリーオーダーを行った場合、100万通貨(つまり100万ユーロ)を買うことを意味します。
最小の取引数量は1,000通貨です。
ただし、XAG/USD(最小:1)とXAU/USD(最小:50)は例外です。
(ちなみにデューカスコピージャパンでは金(XAG,XAU)は取り扱っていません。)
以下例は、各銘柄での最小取引量でのオーダーになります。
engine.submitOrder("eurusdMinOrder", Instrument.EURUSD, OrderCommand.BUY, 0.001 );
engine.submitOrder("xauusdMinOrder", Instrument.XAUUSD, OrderCommand.BUY, 0.000001);
engine.submitOrder("xagusdMinOrder", Instrument.XAGUSD, OrderCommand.BUY, 0.00005 );
取引数量の増分
オーダーの取引数量の増分は1単位です。
以下の例では、XAUUSDの1234と1001の取引量でオーダーします。
engine.submitOrder("order1", Instrument.XAUUSD, OrderCommand.BUY, 0.001234);
engine.submitOrder("order2", Instrument.XAUUSD, OrderCommand.BUY, 0.001001);
以下の例では、最小単位で丸められて1235の取引量でオーダーされます。
engine.submitOrder("order3", Instrument.XAUUSD, OrderCommand.BUY, 0.00123456789);
最小取引数量のチェック
銘柄をチェックして、最小取引数量を返す関数を作ってみましょう。
(デューカスコピージャパンではXAUUSDとXAGUSDは取り扱っていないため、デューカスコピージャパンの口座で行うとエラーになります。)
private double getMinAmount(Instrument instrument){
switch (instrument){
case XAUUSD : return 0.000001;
case XAGUSD : return 0.00005;
default : return 0.001;
}
}
サンプルソースコード:
MinAmounts.java