poniedziałek, 5 listopada 2018

Giełda - pBuySell - dodanie funkcjonalności cz2

Dodanie nowej funkcjonalności do procedury pBuySell okazała się trudna, postanowiłem rozbić ją na kilka etapów, a samą procedurę zbudować jako nową, gdyż kod będzie różnił się znacząco od poprzedniej wersji. Oczywiście jak się uda to będzie aplikacja działać na nowej wersji procedury, a stara pozostanie jako historia zmian.
We wcześniejszym poście przedstawiłem ogólne założenia zmian w procedurze i pierwsze zarysy rozwiązania. Tutaj skupie się nad konkretnymi problemami i możliwymi rozwiązaniami.
  1. Zlecenie kupna, których status ceny ustawiony jest kCU - kupuj cena ustalona.
Zakładam, że mam wyszukany zbiór zleceń, które są aktywne (nie wygasły), będzie tę analizę robić dodatkowa procedura. 
Na tę chwile wielce prawdopodobne, że podzielę procedurę według statusu ceny (kCU, kPKC).
Dlaczego?
  • ponieważ jeżeli będę chciał to zrobić w jednej procedurze będzie bardzo dużo duplikacji kodu co najmniej dwa dodatkowe kursory,
  • czytelność procedury zmaleje
Przygotowanie danych do kursora
Z parametru otrzymuje  rekord tabeli MarketSquare w którym ma dane dotyczące:
  •  bs_id - typ zlecenia (zlecenie kupna),
  • stock_id,
  • wallet_id,
  • cena kupna akcji,
  • status ceny transakcji (kCU, kPKC),
  • ilość akcji do kupienia.
Sprawdzam czy status ceny transakcji jest kCU (@transactionPricesStatus == 1)
Wyszukuje zlecenia sprzedaży w które:
  • dotyczą tych samych akcji, 
  • mają taką samą cenę sprzedaży,
  • są aktywne,
  • cena akcji w tabeli stock jest taka sama.
Nie może być cena akcji taka sama jak w tabeli stock. Czemu? bo jeżeli tak będzie to ona nigdy się nie zmieni, a tu chodzi o to, że jeżeli zlecenie kupna i sprzedaży mają taką samo cenę to możliwe jest wykonanie transakcji czyli kupna i sprzedaży ale w tedy cena akcji na rynku spada.
Kolejny przykład.
Mam  dwa zlecenia kupna. Pierwsze na kwotę niższą drugie na wyższą dokonuje transakcji kupna wykonuje się kupno-sprzedaż cena akcji spada, procedura bierze teraz zlecenie o cenie wyższej, po drugiej stronie znajduje się zlecenie sprzedaży na taką samą kwotę znowu dochodzi do transakcji, cena sprzedaży akcji rośnie.
Tak w kółko, myślę że tak jest dobrze. Cena akcji jest płynna zależna od zleceń od strony kupna i od strony sprzedaży.

Jeżeli mam zlecenia sPKC - sprzedaj po każdej cenie gdzie w zleceniu nie ma ceny ustalonej jest równa zero
Mam dwa wyjścia:
  •  albo kojarzę zlecenia kCU z sCU,
  • albo kojarzę kCU z sPKC, w tym przypadku cena sprzedaży jest brana albo z tabeli stock albo z zlecenia kupna (tam jest cena zakupu). 
  • jeżeli miałbym kPKC i sPKC to wtedy mogę brać cenę z tabeli stock
Do przemyślenia, trzeba rozpisać na kartce.


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 ...