Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nowe tokeny #119

Open
turbaszek opened this issue May 19, 2019 · 9 comments
Open

Nowe tokeny #119

turbaszek opened this issue May 19, 2019 · 9 comments

Comments

@turbaszek
Copy link
Member

turbaszek commented May 19, 2019

Po każdym uzupełnieniu danych przechodzimy po wszystkich wskaźnikach, rysunkach i patternach i generujemy log zdarzeń.

Pojedynczy wpis powinien mieć formę:

date | timeframe | pair | type | name | sentiment | signal |  event | priority | params
  • date - data wykrycia
  • type - wskaźnik (może rozbić na wskaźniki i oscylatory?) / pattern / charting
  • name - nazwa obiektu np. BB, Ascending Triangle
  • sentiment - bull / bear
  • signal - informacje o potencjalnym ruchu, nie obowiązkowa
  • event - opis eventu / token
  • priority - znaczenie sygnału np. SMA cross = 1, ujemna dywergencja = 3
  • params - ewentualne parametry np. parametry prostej kanału

W momencie zapytania o daną parę:

  • wybieramy top 5 najmocniejszych ostatnich sygnałów
  • jeśli wszystkie mają ten sam stopień to wybieramy preferowane (Preferowane patterny #120)
@turbaszek
Copy link
Member Author

Związane z :
#111
#113
#121

@glowacki-dev
Copy link
Collaborator

glowacki-dev commented May 28, 2019

top 5 najmocniejszych

To jest to priority?

@turbaszek
Copy link
Member Author

top 5 najmocniejszych

To jest to priority?

Tak. Możemy na początek zrobić 0/1 i wtedy jeśli wszystkie eventy są 0 to wybieramy te które sa preferowane. Jesli jest jakis 1 - czyli ważny - to najpierw go bierzemy, a potem dorzucamy preferowane.

@turbaszek
Copy link
Member Author

Plus warto by dodać dla każdego timeframe ile ostatnich okresów nas interesuje, np. dla 1h, 48 świec, a dla 24h - 30 świec.

@turbaszek
Copy link
Member Author

turbaszek commented May 31, 2019

Można też rozważyć "event-driven charting".

Zaczynamy od zdefiniowania zdarzeń atomicznych:

  • local_top
  • local_bottom
  • big_move_up
  • big_move_down

Następnie patterny definiujemy przez konieczne eventy + pewne reguły. Na przykład

pattern Triangle:
    type: wrapping
    structure:
        - bands: 2
    events:
        - local_top: 2
        - local_bottom: 2
    rules:
        - is_converging

pattern Channel:
    type: wrapping
    structure:
        - bands: 2
    events:
        - local_top: 2
        - local_bottom: 2
    rules:
        - is_parallel

patter DoubleTop:
    type: pattern
    structure:
        - points: 3
    events:
        - big_move_up: 1
        - local_top: 2
        - local_bottom: 1
    rules:
        - top_bottom_top
        - peaks_at_same_height

Wtedy w pewnym momencie czasu, gdy dostajemy nowe dane (obserwujemy pewien strumień):

class Setup:
    wrapper: Wrapping
    pattern: Pattern
    ...

def generate(pair, data):
    # historical data
    last_setup = check_last_setup(pair)
    actual_setup = select_actual_setup(last_setup, data)

    # new setup
    new_setup = detect_new_patterns(data)

    # Update info about situation

    # Wrappers
    if wrapper in actual_setup and
         wrapper in new_setup:
        # Check which one is more meaningful / well-adjusted
        # and return a message if there was update
        best_wrapper, msg = compare_wrappers(actual_setup.wrapper, new_setup.wrapper)
    else:
        best_wrapper = new_setup.wrapper

    # Patterns
    best_pattern = ()

    # More patterns / candlestick patterns?
    best_candles = ()

    setup = Setup(wrapper=best_wrapper, pattern=best_pattern, **kwargs)

    info = {
        'setup': Setup,
        'indicators': indicators_info(data)
        'info': generate_info_using_messages
    }

    return info

To sugeruje, że w danym momenice może być tylko jedno rysowanie, jeden pattern (np. DT), jedno coś...
Dodatkowo generują się informacje o tym co się zmieniło między rysunkami więc można użyć tego w opisach. Pozostałe, rzeczy w stylu tokeny są gdzieś tam w Setupie.

Tutaj w ładny sposób można by definiować nowe patterny i dodawać heurystyki.

@Bombasarkadian co myślisz? Jak już robimy coś w kierunku tokenów / ciągu eventów to warto to przemyśleć na dłużej 🤯

@glowacki-dev
Copy link
Collaborator

pattern Triangle:
    type: wrapping
    structure:
        - bands: 2
    events:
        - local_top: 2
        - local_bottom: 2
    rules:
        - is_converging

Interesujące podejście - takie książkowe. Będzie można kiedyś spróbować i porównać efekty

@turbaszek
Copy link
Member Author

Może że wrzućmy na produkcję to co jest, piszmy tweety i pójdźmy w tym kierunku?

Mając takie eventy można zrobić powiadomienia, maile, cokolwiek co będzie działo się na bieżąco i pozwoli na szybsze poprawki i obserwacje :D

@turbaszek
Copy link
Member Author

Plus mielibyśmy również połowiczne patterny np. tylko górną linię od trójkąta.

@turbaszek
Copy link
Member Author

turbaszek commented Jun 6, 2019

Jako atomiczne eventy widzę:

  • peak - lokalne maximum / minimum, wykrywane z opóźnieniem
  • trend - zauważalny trend, pozwalałby wyciągnąć informacje o całkowitym ruchu (wielkośc, daty, etc)
  • reversal - podobny do peak ale oparty na dużej różnicy w cenie, tym samym wykrywany wcześniej
  • dildo - tłumaczyć nie trzeba 👀

Na pikach / trendach budujemy patterny, pozostałe dwa jako źródło informacji.

@Bombasarkadian przychodzi Ci coś jeszcze do głowy?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

2 participants