prosty warunek w javie

O jezykach programowania w platformach i nie tylko.
kowal00
Gaduła
Gaduła
Posty: 102
Rejestracja: 07 lut 2009, 19:49

prosty warunek w javie

Nieprzeczytany post autor: kowal00 »

Witam
Zaczalem pisac ea w javie pod jforex i mam problem z prostym warunkiem. Chodzi o to aby order byl wysylany w momencie gdy cena jest wieksza/mniejsza o x pips od high/low poprzedniiej swiecy. Wie ktos jak to napisac?
Probuje w ten sposob:

Kod: Zaznacz cały

 IBar bar = history.getBar(instrument, Period.ONE_MIN, OfferSide.BID, 1);

double High = bar.getHigh();
double Low= bar.getLow();
       if (positionsTotal(instrument) == 0)
       {
                if (bidPrice< Low ) {
                 sell(instrument, engine, profitLimit, lossLimit, volume);
                 }
                else  if (bidPrice> High) { 
                   buy(instrument, engine, profitLimit, lossLimit, volume);
                  }
    }
ale nie dziala to tak jak bym chcial :(
pozdr.

Awatar użytkownika
rayzeel
Gaduła
Gaduła
Posty: 357
Rejestracja: 05 lis 2008, 14:47

Nieprzeczytany post autor: rayzeel »

Przy takim zapisie grasz na przebicie poprzedniego high/low. Jak chcesz dodać do tego odległość x to zrób:

double x;
double High = bar.getHigh() + x;
double Low= bar.getLow() - x;

To trochę proste ;)

kowal00
Gaduła
Gaduła
Posty: 102
Rejestracja: 07 lut 2009, 19:49

Nieprzeczytany post autor: kowal00 »

Dzieki za zainteresowanie. Ogolnie chodzi o to zeby wejscie bylo w momencie gdy przebijany jest szczyt lub dolek poprzedniej swiecy. Niestety w takiej postaci jak podalem wyzej to nie dziala.Brana jest pod uwage przedostatnia zakonczona swieca a nie ostatnia. Jesli wiesz o co chodzi to chetnie przeczytam jak to powinno wygladac. :wink:

Awatar użytkownika
rayzeel
Gaduła
Gaduła
Posty: 357
Rejestracja: 05 lis 2008, 14:47

Nieprzeczytany post autor: rayzeel »

Hmm... możliwe, że jest to jakiś niuans dukasa. Wg mnie to co napisałeś wygląda dobrze, a potwierdza to info z api:

Parameters:
instrument - instrument of the bar
period - period of the bar
side - bid or ask side of the bar
shift - number of candle back in time staring from current bar. 1 - previous bar, 2 - current bar minus 2 bars and so on

A to "buy", "sell" odnosi się do odpowiednich metod ? Bo w takiej formie zlecenia nie złoży.

Kod: Zaznacz cały

engine.submitOrder(label, instrument, IEngine.OrderCommand.BUY, lot, 0, SLIPPAGE, stopLoss, 0);
To info z api wyciągnąłem, też się uczę operować na dukasie ;)

PS: A tak ogólnie to jeśli będzie Ci pomocny przykładowy kod strategii to podaję linka

http://dl.dropbox.com/u/6028806/quantisan1.java
z
http://www.quantisan.com/sixth-place-fi ... y-contest/

kowal00
Gaduła
Gaduła
Posty: 102
Rejestracja: 07 lut 2009, 19:49

Nieprzeczytany post autor: kowal00 »

Tez tak myslalem, ze powinno to dzialac w takiej formie. Zadalem to pytanie tez na forum dukasa i support odpisal jak to powinno wygladac. Niestety nie potrafie na razie dodac do tej formuly tp i sl :( Moze ty wiesz jak to zrobic?
http://www.dukascopy.com/swiss/english/ ... 65&t=46627

Awatar użytkownika
DruhRafal
Bywalec
Bywalec
Posty: 13
Rejestracja: 07 sty 2009, 17:31

Nieprzeczytany post autor: DruhRafal »

Może niekoniecznie Java, ale w Groovy najlepiej wszelkie notowania zapisywać jako big decimal. Sprawdzone, przetestowane.
Mój kanał:
Obrazek

kowal00
Gaduła
Gaduła
Posty: 102
Rejestracja: 07 lut 2009, 19:49

Nieprzeczytany post autor: kowal00 »

DruhRafal pisze:Może niekoniecznie Java, ale w Groovy najlepiej wszelkie notowania zapisywać jako big decimal. Sprawdzone, przetestowane.
A jak to sie ma do tego czego szukam? :think:

ODPOWIEDZ