Czy ktoś może mi powiedzieć, co robię źle? Chciałbym dodać sobie dowolny wskaźnik na wykres tak, aby rysował się on w trybie wizualnym, robię to tak:
Kod: Zaznacz cały
package singlejartest;
import com.dukascopy.api.*;
import com.dukascopy.api.indicators.IIndicator;
public class Robot implements IStrategy
{
@Configurable("Instrument")
public Instrument selectedInstrument = Instrument.EURUSD;
private String indic="cdlBreakAway(Instrument, Period, OfferSide,int)";
Object[] inputArray;
}
public void onStart(IContext context) throws JFException {
inputArray = new Object[] {selectedInstrument, Period.FIVE_MINS,OfferSide.ASK,1};
IIndicator cdl=indicators.getIndicator("indic");
chart.addIndicator(cdl, inputArray);
}
Kompilacja przebiega pomyślnie, natomiast próba uruchomienia kończy się tym:
Kod: Zaznacz cały
java.lang.NullPointerException @ singlejartest.Robot.onStart(Robot.java:102)
Linijka nr 102 to ta chart.addIndicator..., z tego, co wyczytałem, tworzę referencję do obiektu, a nie sam obiekt, ale go chyba tworzę używając new dwa wersy wcześniej, poza tym z kolei identyczny błąd uzyskiwałem, gdy z działającego przykładowego kodu usunąłem tablicę z parametrami pozostawiając zwyczajne:
więc nie wiem, o co chodzi.
Eh, trzeci raz piszę tego posta, ale jednak po stracie kilkunastu godzin nie mam pojęcia, więc się poddaję, błąd jest tak prosty, że go zwyczajnie nie widzę, przecież dodanie wskaźnika na wykres nie może być jakieś trudne, proszę brać też pod uwagę, że z programowaniem w tym mam kontakt od kilkunastu, czy już od kilkudziesięciu godzin
Btw, ten kod z strony Dukascopy dodający wskaźnik, czyli
Kod: Zaznacz cały
chart.addIndicator(indicators.getIndicator("ZIGZAG"));
chart.addIndicator(indicators.getIndicator("ET_Nico"), new Object[]{15});
w żadnej wersji mi nie działa, więc nie robię czegoś, co jest tak oczywiste, że nawet o tym nie wspominali, no ale naprawdę nie wiem, czego.
EDIT:
No dobra, ściągnąłem Eclipse i uruchomiłem debugger, dobre narzędzie

Problem zlikwidowany, wystarczyło zajrzeć do deklaracji metod i porównać. NullPointerException powrócił w innym miejscu, ale to już inna sprawa
