Monika Rokosik Katarzyna Rola
Wykrywanie kursu akcji poniżej dołka znajdującego się pomiędzy dwoma sąsiednimi górkami, z których późniejsza jest mniejsza od wcześniejszej.
1. Wykrywanie górek i dołków na podstawie kursów akcji spółek 2. Przekazanie rezultatów do dalszego przetwarzania 3. Przetworzenie górek i dołków – wykrycie sekwencji zdarzeń 4. Porównanie wyników przetwarzania z podstawowym strumieniem zdarzeń
Date,Open,High,Low,Close,Volume,Adj Close ,29.17,29.52,29.00,29.35, , ,28.78,29.19,28.65,29.16, , ,28.69,28.89,28.52,28.55, , ,29.33,29.33,28.56,28.63, , ,30.87,31.15,29.34,29.41, , ,29.70,30.14,29.55,30.10, , ,29.59,29.89,29.43,29.76, , ,30.11,30.16,29.58,29.74, , ,29.96,30.13,29.74,30.06, , ,30.00,30.16,29.69,29.84, , ,29.99,30.23,29.91,30.13, , ,29.72,29.92,29.20,29.71, , ,30.05,30.29,29.90,30.13, , ,30.40,30.44,29.85,30.07, , ,30.05,30.28,29.83,30.22, ,30.22 …
ISTREAM {gorka2=45.19, gorka=47.44, data3= , dolek=43.81} ALARM: ISTREAM {kursZamkniecia=43.31, data= } ISTREAM {gorka2=73.62, gorka=77.44, data3= , dolek=71.81} ALARM: ISTREAM {kursZamkniecia=67.81, data= } ISTREAM {gorka2=111.25, gorka=115.75, data3= , dolek=105.06} ALARM: ISTREAM {kursZamkniecia=59.25, data= } ISTREAM {gorka2=81.94, gorka=84.0, data3= , dolek=77.0} ALARM: ISTREAM {kursZamkniecia=76.87, data= } …
, , , , , , , , ,44
1874, , , ,5 2471, , , , , ,94
select prev(1, dataSformatowana) as data, prev(1, kursZamkniecia) as kurs, (CASE when ((prev(2, kursZamkniecia) > prev(1, kursZamkniecia)) and (prev(1, kursZamkniecia) < kursZamkniecia)) THEN \"D\ when ((prev(2, kursZamkniecia) < prev(1, kursZamkniecia)) and (prev(1, kursZamkniecia) > kursZamkniecia)) THEN \"G\" END) as etykieta from KursAkcji.win:length(3) where (((prev(2, kursZamkniecia) > prev(1, kursZamkniecia)) and (prev(1, kursZamkniecia) < kursZamkniecia)) or ((prev(2, kursZamkniecia) < prev(1, kursZamkniecia)) and (prev(1, kursZamkniecia) > kursZamkniecia)))
administrator.createEPL("create schema Dane (data String, kurs Float, etykieta String )"); administrator.createEPL(create window NaszeOkno.win:length(3) as Dane"); administrator.createEPL( "insert into NaszeOkno […]
EPStatement statement1 = Administator.createEPL("select gorka1.kurs as gorka, dolek.kurs as dolek, gorka2.kurs as gorka2, gorka2.data as data3 from pattern [every (gorka1=NaszeOkno(etykieta='G') -> dolek=NaszeOkno(etykieta='D') -> gorka2=NaszeOkno(etykieta='G'))] where (gorka1.kurs > gorka2.kurs)");
public void update(EventBean[] newEvents, EventBean[] oldEvents) { if (newEvents != null) { for (int i = 0; i < newEvents.length; i++) { if(newEvents[i].toString().contains("gorka2")){ kursGorka2 = Float.valueOf(newEvents[i].get("gorka2").toString()); dataGorka2 = newEvents[i].get("data3").toString(); kursDolek = Float.valueOf(newEvents[i].get("dolek").toString()); System.out.println("ISTREAM "+ newEvents[i].getUnderlying()); wasKurs = false; } else { if(isDateGorkaLessThanDateKurs(dataGorka2,newEvents[i].get("data").toString()) && (Float.valueOf(newEvents[i].get("kursZamkniecia").toString())<kursDolek) && (!wasKurs)){ System.out.println("ALARM: ISTREAM "+ newEvents[i].getUnderlying()); wasKurs=true; }}}}