当サイトは、アフィリエイト広告を利用しています

JForexプログラミング入門その9-ストップロス価格の設定

JForexプログラミング入門

今回は、JForex APIでストップロスを設定する方法に関して解説します。

オーダーにストップロスを設定する方法には2種類あります。

  1. 注文発注時にストップロスを設定
  2. 既存の注文orポジションに対してストップロスを設定

注文発注時にストップロスを設定する

注文の発注時にストップロスを設定するには、IEngineインターフェースの「submitOrder」の「stopLossPrice」にストップロス価格を設定します。

IOrder submitOrder(String label,
Instrument instrument,
IEngine.OrderCommand orderCommand,
double amount,
double price,
double slippage,
double stopLossPrice,
double takeProfitPrice)
throws JFException

買い成行注文でストップロスを105.00にセットする場合

既存注文に対してストップロスを設定する

既存注文に対してストップロスを設定するには、IOrderインターフェースを使用します。

IOrderインターフェースには、既存注文のストップロス価格の設定あるいは修正を行うための3種類の関数が用意されています。

ストップロスを設定したいIOrderオブジェクトを取得し、そのオブジェクトに対して上記の関数を呼びます。

IOrder order = engine.getOrder(“orderLabel”);

void setStopLossPrice(double price)

ストップロスを105.00にセットする場合

void setStopLossPrice(double price, OfferSide side)

この関数を使用すれば、ストップロスを判定する際にASKとBIDプライスのどちらを使用するのかを指定することができます。

void setStopLossPrice(double price,OfferSide side, double trailingStep)

この関数を使用すれば、ストップロスを判定する際のASKとBIDプライスの選択に加え、ストップロス注文をトレーリングストップ注文にすることができます。

トレーリングストップを有効にするには、trailingStepパラメータは10以上を指定する必要があります。

ストップロス注文をキャンセルする

既に設定してあるストップロス注文を削除したい場合は、ストップロスプライスを0に設定します。

ストップロスによるポジションクローズを検出する

ストップロス価格に到達したことによってポジションがクローズされたことを検出するには、ストラテジのonMessageコールバック関数内でメッセージをチェックします。

IMessageインターフェースのgetReasonsの戻り値に「IMessage.Reason.ORDER_CLOSED_BY_SL」が含まれていればストップロスによるクローズと判断できます。

コメント