wtorek, 30 października 2018

Giełda - pBuySell - dodanie funkcjonalności cz1

Procedura pBuyStock
Zmniejszenie ilości parametrów  wersji dotychczasowej były:

  • @stockName varchar(10) - nazwa akcji która wystąpi w zleceniu kupna i sprzedaży,
  • @user_id int - interesujemy się portfelem użytkownika,
  • @mark_id int - rekord na rynku akcji,
  • @stockCountBuy int - ilość akcji do kupienia

Po zmianie procedury chcę otrzymać globalną procedurę która pozwoli mi "przejechać" po rynku i wykonać zlecenia kupno/sprzedaż.
Rozwiązania:

  1. Pozostawiam w parametrze tylko nazwę akcji, przy wywołaniu procedury korzystam z  kursora którym wyszukuje tylko aktywne zlecenia sprzedaży, aktywne to takie, których termin ważności się nie skończył, zakładam, że procedura sprawdzania daty ważności zleceń wykonała się wcześniej (aczkolwiek powinienem mieć dodatkową table z etapami, w których wpisuje rozpoczęcie -> zakończenie procedury sprzątania rynku ??-> bonowato, w takiej tabeli info o stanie wykonania procedury powinno się znaleźć). Na początku biorę zlecenia po każdej cenie gdyż nie muszę sprawdzać ceny akcji w rekordach na rynku, a jedynie cenę  ostatniej transakcji  w tabeli Stock. Owszem istnieje opcja, że wyszukam  na początku zlecenia, które mają taką samą cenę jaka jest w tabeli Stock, tu mam dylemat nie wiem, która opcja jest lepsza. Na początek kPKC czyli kupno po każdej cenie. Wyszukuje zlecenia odnoszące się do danej akcji oraz w statusie kPKC oraz bs_id = 2 lub 4. Tu jest jeszcze jedna uwaga jeżeli cenę kupna sprzedaży ustalam to muszę ją wziąć nie z globalnej tabeli Stock,a ze zleceń sprzedaży gdyż cena sprzedaży również jest ustalana.
Pytania do powyższego:
  • Czy najpierw zlecenie kPKC czu kCU?
  • Jeżeli mam zlecenia kPKC to jaka jest kolejność ich realizacji?
  • Po jakiej cenie ma być kupno?
  • Czy cena ma być brana z zleceń sprzedaży lub emisji, czy z tabeli stock?
  • Jaka jest kolejność zleceń sprzedaży branych pod uwagę przy realizacji zleceń kupna, chodzi o cenę akcji?
  • Czy cena akcji w tabeli stock powinna być wyznacznikiem (odniesieniem) dla kursu (kupna sprzedaży) danej akcji?
Stwierdzenia:
  • Zlecenia należy grupować według daty ich utworzenia,
  • Minimalny okres "życia" akcji mogę ustalić na jeden dzień, w moim przypadku na godzinę (np),
  • Wartość akcji minimalna i maksymalna ustawiana na podstawie bieżącego kursu z uwzględnieniem +20% dla maksymalnej wartości i -20% dla minimalnej wartości.
Wyzwania:
  • ustalenie ceny po jakiej ma być dokonana transakcja dla zleceń kPKC oraz sPKC, jak się okazuje transakcje  kupno po każdej cenie są trudniejsze do zrobienia,
Transakcje z ceną ustaloną:
  1. Sprawdzam czy na rynku są zlecenia kupna danej akcji, opcja druga to nie sprawdzam rynku pod kątem nazw akcji tylko daty emisji zlecenia kupna, a jeżeli są dwa lub więcej zleceń o tej samej dacie to wybieram te które jest na wyższą ilość akcji do kupienia.Opcja druga lepsza.
  2. Mam już zlecenie uchwycone, sprawdzam czy cena w zleceniu jest taka sama jak cena akcji w tabeli stock - czyli cena ostatniej udanej transakcji. Tu jest uwaga co z ceną która jest wpisana w zleceniu sprzedaży czy mam ją brać pod uwagę? Można by patrzeć pod kątem, Pobieram zlecenia tylko te w któych cena kupna jest taka sam po stronie kupna sprzedaży, kPKC to patrze jeszcze dodatkowo na cenę w tabeli stock.
  3. Co do transakcji kPKC (wczoraj wieczorem wpadłem na pomysł) nie mam ustawionej ceny akcji w zleceniu biorę wtedy cenę z ostatniej dokonanej transakcji czyli cenę z tabeli stock ale dziś mi się przypomniało po każdej cenie oznacza że muszę wziąśc również transakcje z ceną ustaloną i  stamtąd brać cenę więc jeżeli mam po każdej cenie to biorę pod uwagę wszystkie transakcje sprzedaży i te sCU i te sPKC, jeżeli nie ma ceny w zleceniu to biorę cenę z tabeli stock, a jeżeli jest to z zelecenia.

Brak komentarzy:

Prześlij komentarz

 Po wielu miesiącach przerwy Czteroletnim exodusie do bloga ismartdev, który zdechł w zeszłym roku w listopadzie, na powrót wstąpiłem w ten ...