Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;//import biblioteki obslugoi wyjatkow (bledow)
- import org.jsoup.Jsoup;//import glownej klasy pakietu jsoup sluzacego do odczytu i parsowania kodu HTML
- import org.jsoup.nodes.Document;//import klasy obslugujacej dokumenty zawierajace HTML
- import org.jsoup.nodes.Element;//import klasy obslugujacej poszczegolne elementy jezyka HTML
- import org.jsoup.select.Elements;//import klasy wyszukujacej poszczegolne elemeenty jezyka HTML(znajdujace sie w analizowanym dokumencie
- import java.util.Timer;//import klasy obslugujacej timer w celu odczytu co minute (lub innnym interwale czasowym)
- import java.util.Calendar;//klasa pomocnicza do timera
- import java.util.TimerTask;
- //import java.sql.Timerstamp;
- public class RSI //klasa obslugi wskaznika RSI
- { //deklaracja zmiennych glownych, ktore sa jednoczesnie zmiennymi skladowymi klas
- double wskRSI; //zmiennna w ktorej jest przechowywana wartosc wskaznika RSI
- double srednia_wzrostu; //średnia wartość wzrostu cen zamknięcia z N sesji
- double srednia_spadku; //średnia wartość spadku cen zamknięcia z N sesji
- int N = 14; //liczba sesji historycznej ktore beda uwzgledniane przy obliczniu wskaznika
- int seconds=5; //interwal czasowy timera (w sekundach)
- double[] vecNotowan=new double[N];//wektor notowan (bierzace notowanie + 13 poprzednich)
- void runRSI() //metoda obliczania wskaznika RSI
- {
- Timer timer1=new Timer(); //tworzenie nowego obiektu timera
- timer1.schedule(new TimerRun(),0, seconds*1000);//ustawianie timera (obiekt klasy obslugujacej, okres dzialania 0-nieskonczonosc,odstęp czasowy w milisekundach(sekundy mnożymy razy 1000)
- }
- class TimerRun extends TimerTask //klasa obslugujaca timer ktory wywolywany jest w wybranym interwale czasowym (np. co minute)
- {
- public void run () //metoda realizowana przy wykonaniu timera
- {
- try //wychwytywanie wyjatkow - wszystkie wyjatki ktore pojawia sie przy wykonywaniu kodu w nawiasach klamrowych w otwierajacych i zamykajaych "try"
- {
- ReadData RD = new ReadData(); //utworzenie obiektu klasy ReadData (odczytujacej biezaca wartosc notowania ze strony internetowej
- for(int i=N-1; i>0; i--)//rejestr przesuwny notowań w tablicy
- {
- vecNotowan[i]=vecNotowan[i-1];
- }
- vecNotowan[0] = RD.getQuotation(2)/1000; //wywolanie metody realizujacej odczyt danych
- vecNotowan[1]=10.00;
- vecNotowan[2]=12.50;
- vecNotowan[3]=13.50;
- vecNotowan[4]=11.00;
- vecNotowan[5]=10.50;
- vecNotowan[6]=14.00;
- vecNotowan[7]=14.00;
- vecNotowan[8]=12.50;
- /* System.out.println(vecNotowan[0]);
- System.out.println(vecNotowan[1]);
- System.out.println(vecNotowan[2]);
- System.out.println(vecNotowan[3]);
- System.out.println(vecNotowan[4]);
- System.out.println(vecNotowan[5]);
- System.out.println(vecNotowan[6]);
- System.out.println(vecNotowan[7]);
- System.out.println(vecNotowan[8]);
- System.out.println(vecNotowan[9]); */
- double wzrosty=0.0; //średnia wartość wzrostu cen zamknięcia z N sesji
- double spadki=0.0; //średnia wartość spadku cen zamknięcia z N sesji
- int licz_wzrosty=0;
- int licz_spadki=0;
- for(int i=0; i<N-1; i++)
- {
- if((vecNotowan[i]>vecNotowan[i+1]) )//warunek wzrostów
- {
- wzrosty=wzrosty+(vecNotowan[i]-vecNotowan[i+1]); //obliczanie sumy wzrostów
- licz_wzrosty++; //liczenie wzrostów
- }
- if((vecNotowan[i]<vecNotowan[i+1]))//warunek spadków
- {
- spadki=spadki-(vecNotowan[i]-vecNotowan[i+1]); //obliczanie sumy spadków
- licz_spadki++; //liczenie spadków
- }
- }
- System.out.println(wzrosty);
- System.out.println(spadki);
- System.out.println("-----------");
- wzrosty=wzrosty/licz_wzrosty; //obliczanie średniej wzrostów
- spadki=spadki/licz_spadki; //obliczanie sredniej spadków
- }
- catch(Exception e) {} //obsluga wyjatku
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement