More about ITextChartObject and other Chart objects you can read in javadoc -
https://www.dukascopy.com/client/javadoc3/com/dukascopy/api/drawings/ITextChartObject.htmlExample:
import com.dukascopy.api.IAccount;
import com.dukascopy.api.IBar;
import com.dukascopy.api.IChart;
import com.dukascopy.api.IConsole;
import com.dukascopy.api.IContext;
import com.dukascopy.api.IEngine;
import com.dukascopy.api.IHistory;
import com.dukascopy.api.IIndicators;
import com.dukascopy.api.IMessage;
import com.dukascopy.api.IStrategy;
import com.dukascopy.api.ITick;
import com.dukascopy.api.IUserInterface;
import com.dukascopy.api.Instrument;
import com.dukascopy.api.JFException;
import com.dukascopy.api.Period;
import com.dukascopy.api.drawings.IChartObjectFactory;
import com.dukascopy.api.drawings.ITextChartObject;
import java.awt.Color;
public class ITextChartObjectExampleStrategy implements IStrategy {
private IEngine engine;
private IConsole console;
private IHistory history;
private IContext context;
private IIndicators indicators;
private IUserInterface userInterface;
private IChart chart;
Instrument instrument = Instrument.EURUSD;
Period period = Period.ONE_MIN;
ITextChartObject textChartObject;
double highestBarValue;
public void onStart(IContext context) throws JFException {
this.engine = context.getEngine();
this.console = context.getConsole();
this.history = context.getHistory();
this.context = context;
this.indicators = context.getIndicators();
this.userInterface = context.getUserInterface();
this.chart = context.getChart(instrument);
}
public void onAccount(IAccount account) throws JFException {
}
public void onMessage(IMessage message) throws JFException {
}
public void onStop() throws JFException {
}
public void onTick(Instrument instrument, ITick tick) throws JFException {
}
public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException {
if (this.period != period || this.instrument != instrument) {
return;
}
if (askBar.getHigh() > highestBarValue) {
drawNewHighestBarValue(askBar);
highestBarValue = askBar.getHigh();
}
}
private void drawNewHighestBarValue(IBar bar) {
if (textChartObject == null) {
IChartObjectFactory chartObjectFactory = chart.getChartObjectFactory();
textChartObject = chartObjectFactory.createText();
textChartObject.setText("Highest Bar");
textChartObject.setColor(Color.RED);
textChartObject.setPrice(0, bar.getHigh());
textChartObject.setTime(0, bar.getTime());
chart.add(textChartObject);
} else {
textChartObject.move(bar.getTime(), bar.getHigh());
}
}
}