作成と管理


チャートオブジェクトの作成

チャートオブジェクトを作成する前に、チャートからIChartObjectFactoryを取得する必要があります。

IChart chart = context.getChart(Instrument.EURUSD);

if( chart == null ){
    context.getConsole().getErr().println( Instrument.EURUSD + "のチャートが開かれていません。");
    context.stop(); // ストラテジー停止
}

IChartObjectFactory factory = chart.getChartObjectFactory()



続いて、ユーザーはcreateの接頭辞付きのメソッドを使ってファクトリーで使用可能な全てのオブジェクトを作成する事が出来ます。
例えば、最後に受信したAsk価格で水平線を作成するには、以下のコードの通りになります。

ITick tick = history.getLastTick(Instrument.EURUSD);

IHorizontalLineChartObject hLine = factory.createHorizontalLine(
                                       "hlineKey",
                                       tick.getAsk()
                                   );
                                   
chart.add(hLine);



そして、10pips X 10バーサイズの長方形を作成するには、以下のコードの通りになります。

long   barWidth = chart.getSelectedPeriod().getInterval();
double tenPips  = Instrument.EURUSD.getPipValue() * 10;

IRectangleChartObject rectangle = chart.getChartObjectFactory().createRectangle(
                                      "rectangle", 
                                      tick.getTime(), tick.getAsk(), 
                                      tick.getTime() - barWidth * 10, tick.getAsk() - tenPips
                                  );

chart.add(rectangle);




チャートオブジェクトのリファレンスについてはチャートオブジェクトカタログのページを参照して下さい。






キーの使用方法

キーパラメータの使用は注意する必要があります。
各チャートオブジェクトはユニークキーを持っています、ストラテジーが新しいチャートオブジェクトを作成すると、
以前キーを保持していたオブジェクトは上書きされます。
各チャートオブジェクト作成する方法は2つ種類あります。
  1. キーパラメータのみ
  2. キーパラメータ無し(キーはプラットフォームによって生成され、IChartObject.getKeyで取得出来ます。)

キーパラメータのみ設定で、Askの40pips上に水平線をプロットする例。
IHorizontalLineChartObject hLine2 = chart.getChartObjectFactory().createHorizontalLine("hlineKey2");

hLine2.setPrice(0, tick.getAsk() + 0.004);
chart.add(hLine2);




キーパラメータ無し設定で、Askの20pips上に水平線をプロットする例。

IHorizontalLineChartObject hLine3 = chart.getChartObjectFactory().createHorizontalLine();

hLine3.setPrice(0, tick.getAsk() + 0.002);
chart.add(hLine3);
console.getOut.println("生成されたキー: " + hLine3.getKey());








オブジェクトの削除

ユーザーは以下方法でオブジェクトを削除出来ます。
  • IChartPanel.removeでオブジェクトを一つ削除。
  • IChartPanel.removeALLでストラテジーによって作成されたチャートオブジェクトを全て削除。

前者は、チャートオブジェクトキーか参照で実行出来ます。
オブジェクト削除後は変更不可能で、ユニークキーは他チャートオブジェクトで使用出来ます。
以下サンプルコードは、チャートオブジェクトを作成し、5秒後にオブジェクトキーか参照のいずれかで削除します。

サンプルソースコード:HLineKeyRemove.java





オブジェクトの移動

チャートオブジェクトを移動する方法は2つあります。

  • IChart.moveメソッドを使う
  • IChart.moveメソッド と オブジェクトに関連した引数を渡す

Those methods move the object as whole by its 0th point (i.e. coordinates which stand for IChartObject.getTime(0) and IChartObject.getPrice(0)). Note that calling on all object points IChartObject.setTime and IChartObject.setPrice will yield the same outcome as the two move methods.


サンプルソースコード:RectangleMoveByTick.java





オブジェクトの取得

以下2つの方法でオブジェクト取得出来ます。
  • IChartPanel.getでキーを指定して、一つオブジェクトを取得する。
  • IChartPanel.getAllでストラテジーが作成したオブジェクトを全て取得する。







オブジェクト外観変更

ストラテジーからオブジェクトの外観を変更する事が出来ます。
  • オブジェクトを選択し目立たせて、オブジェクトへナビゲートします。
  • Unsnapping time coordinate from candle midpoint
  • setLockedメソッドでチャートオブジェクトをロック/解除します。
  • setVisibleInWorkspaceTreeメソッドでワークスペースツリーのチャートオブジェクトを表示/非表示にします。





オブジェクトを選択して目立たせて、オブジェクトへナビゲート

ストラテジーは選択されたチャートオブジェクトを目立たせたり、選択されたオブジェクトにナビゲートする事も出来ます。
IChart.selectDrawingメソッド と IChart.navigateAndSelectDrawingメソッドを使用します。



サンプルソースコード:HLinesSelectFromStrat.java





バー中点の時間座標スナップを解除

デフォルトではチャートオブジェクトはバーの中点にスナップされます。
2つのバー間の座標時間が視覚的に表示される最小ステップになります。
最も近いバーの中心に時間軸の点が表示されます。

例えば、レイラインやトレンドラインを使用するような場面では、
このスナップ機能は、時間軸切り替え時に時間座標の丸めによってラインの角度に影響を及ぼします。
その為、そのようなケースではスナップをオフにした方が無難です。

スナップをオフにするには

IChartDependentChartObject.setStickToCandleTimeEnabled(false)

のメソッドを呼び出します。


サンプルソースコード:SnappedToCandleTime.java




スポンサーリンク

スポンサーリンク
検索
リファレンスツリー


Copyright ©2016 JForexAPIで自動売買させ隊! All Rights Reserved.


Top

inserted by FC2 system