Thursday 21 December 2017

Trading strategie python


Python Algorithmic Trading Library PyAlgoTrade jest Python Algorithmic Trading Library z naciskiem na backtesting i wsparcie dla handlu papierami i live-trading. Powiedzmy, że masz pomysł na strategię handlową i chcesz ją ocenić za pomocą danych historycznych i zobaczyć, jak się zachowuje. PyAlgoTrade pozwala to zrobić przy minimalnym wysiłku. Główne cechy W pełni udokumentowane. Wydarzenie napędzane. Obsługuje zlecenia typu Market, Limit, Stop i StopLimit. Obsługuje pliki CSV Yahoo Finance, Google Finance i NinjaTrader. Obsługuje dowolny typ danych szeregów czasowych w formacie CSV, na przykład Quandl. Obsługa handlu bitcoinem za pośrednictwem Bitstamp. Wskaźniki techniczne i filtry, takie jak SMA, WMA, EMA, RSI, Bollinger Bands, Hurst exponent i inne. Wskaźniki wydajności, takie jak współczynnik Sharpe'a i analiza wyników. Obsługa wydarzeń na Twitterze w czasie rzeczywistym. Profiler zdarzeń. Integracja TA-Lib. Bardzo łatwo skalować w poziomie, czyli za pomocą jednego lub więcej komputerów w celu weryfikacji strategii. PyAlgoTrade jest darmowy, open source i jest licencjonowany na podstawie licencji Apache, wersja 2.0.Best testowanie ruchomej średniej crossover w Pythonie z pandami W poprzednim artykule o środowiskach analizy historycznej w Pythonie Z pandami stworzyliśmy oparte na obiektach oparte na badaniach backtesting środowiska i przetestował go na losowej strategii prognozowania. W tym artykule wykorzystamy wprowadzone przez nas maszyny do przeprowadzania badań dotyczących rzeczywistej strategii, a mianowicie średniej ruchomej crossover w AAPL. Średnia ruchoma strategia Crossovera Technika Crossover z ruchomą średnią to niezwykle znana uproszczona strategia momentum. Często jest uważany za przykład dla handlu ilościowego w Hello World. Przedstawiona tutaj strategia jest długa. Tworzone są dwa oddzielne proste filtry ruchome o różnych okresach ważności dla poszczególnych szeregów czasowych. Sygnały do ​​zakupu zasobu występują, gdy krótsza średnia krocząca z wyprzedzeniem przekracza dłuższą średnią zrewidowania. Jeśli dłuższa średnia przekroczy później krótszą średnią, składnik aktywów zostaje odsprzedany. Strategia działa dobrze, gdy szeregi czasowe wchodzą w okres silnego trendu, a następnie powoli odwracają trend. W tym przykładzie wybrałem Apple, Inc. (AAPL) jako serię czasową, z krótkim podsumowaniem 100 dni i długim okresem ważności wynoszącym 400 dni. Jest to przykład udostępniany przez zipline algorytmiczną bibliotekę handlową. Dlatego jeśli chcemy wdrożyć naszą własną analizę historyczną, musimy upewnić się, że jest ona zgodna z wynikami w zipline, jako podstawowym środkiem walidacji. Wdrożenie Pamiętaj, aby postępować zgodnie z poprzednim tutorialem tutaj. który opisuje, w jaki sposób konstruowana jest hierarchia obiektu początkowego dla backtestera, w przeciwnym razie poniższy kod nie zadziała. Do tej konkretnej implementacji wykorzystałem następujące biblioteki: Implementacja macross. py wymaga backtest. py z poprzedniego samouczka. Pierwszym krokiem jest zaimportowanie niezbędnych modułów i obiektów: tak jak w poprzednim tutorialu zamierzamy dokonać podklasy abstrakcyjnej klasy bazowej strategii w celu stworzenia MovingAverageCrossStrategy. który zawiera wszystkie szczegóły dotyczące generowania sygnałów, gdy średnie ruchome AAPL krzyżują się ze sobą. Obiekt wymaga krótkiego okna i długiego okna do obsługi. Wartości zostały ustawione na wartości domyślne odpowiednio 100 dni i 400 dni, które są tymi samymi parametrami, które są używane w głównym przykładzie zipline. Średnie ruchome są tworzone za pomocą funkcji pandas rollingmean na barsClose cena zamknięcia akcji AAPL. Po skonstruowaniu indywidualnych średnich ruchomych, seria sygnałów jest generowana przez ustawienie kolumny równej 1,0, gdy krótka średnia ruchoma jest większa niż długa średnia ruchoma, lub 0,0 w przeciwnym razie. Na tej podstawie można generować zlecenia pozycji w celu przedstawienia sygnałów handlowych. MarketOnClosePortfolio jest podklasą z Portfolio. który znajduje się w backtest. py. Jest prawie identyczna z implementacją opisaną w poprzednim samouczku, z tym wyjątkiem, że transakcje są teraz przeprowadzane w trybie Close-to-Close, a nie Open-to-Open. Aby uzyskać szczegółowe informacje na temat definiowania obiektu Portfolio, zobacz poprzedni samouczek. Zostawiłem kod pod kątem kompletności i utrzymania tego samouczka w formie niezależnej: Teraz, gdy zdefiniowano klasy MovingAverageCrossStrategy i MarketOnClosePortfolio, zostanie wywołana główna funkcja, aby powiązać wszystkie funkcje. Ponadto wyniki strategii zostaną zbadane za pomocą wykresu krzywej kapitału własnego. Obiekt Pandas DataReader pobiera ceny ALCL dla cen AAPL za okres od 1 stycznia 1990 r. Do 1 stycznia 2002 r., W którym to momencie tworzone są sygnały DataFrame w celu generowania sygnałów długookresowych. Następnie portfel jest generowany z początkową bazą kapitałową 100 000 USD, a zwroty są obliczane na krzywej kapitału. Ostatnim krokiem jest użycie matplotlib do wykreślenia dwucyfrowego wykresu obu cen AAPL, nałożonego na ruchome średnie i sygnały kupna, a także krzywej kapitału z tymi samymi sygnałami kupna. Kod kreślenia jest pobierany (i modyfikowany) z przykładu realizacji zip. Graficzne dane wyjściowe kodu są następujące. Użyłem polecenia wklejania IPython, aby umieścić go bezpośrednio w konsoli IPython w systemie Ubuntu, aby graficzne wyjście pozostało w widoku. Różowe uptyki oznaczają kupowanie akcji, a czarne wyprzedaże oznaczają ich sprzedaż. Jak widać, strategia traci pieniądze w tym okresie, z pięcioma transakcjami w obie strony. Nie jest to zaskakujące, biorąc pod uwagę zachowanie się AAPL w tym okresie, które cechuje niewielka tendencja spadkowa, po którym nastąpił znaczny wzrost od 1998 r. Okres zwrotu sygnałów średniej ruchomej jest dość duży, co wpłynęło na zysk z ostatniej transakcji. , które w przeciwnym razie mogło uczynić strategię opłacalną. W kolejnych artykułach stworzymy bardziej wyrafinowany sposób analizowania wydajności, a także opis sposobu optymalizacji okresów ważności poszczególnych sygnałów średniej ruchomej. Pierwsze kroki z Quantitative TradingTrading z Pythonem Ostatnio przeczytałem świetny post przez turinginance blog o tym, jak być kwantem. W skrócie, opisuje naukowe podejście do opracowywania strategii handlowych. Dla mnie osobiście obserwowanie danych, myślenie za pomocą modeli i formułowanie hipotezy jest drugą naturą, tak jak powinno być dla każdego dobrego inżyniera. W tym poście zamierzam zilustrować to podejście, wyraźnie przechodząc przez szereg kroków (tylko para, nie wszystkie) zaangażowanych w opracowanie strategii handlowej. Przyjrzyjmy się najbardziej typowemu instrumentowi inwestycyjnemu, SampP 500 ETF SPY. Zaczynam od obserwacji. Obserwacje Przyszło mi do głowy, że przez większość czasu, gdy w mediach mówi się dużo o załamaniu rynku (po dużych stratach w ciągu kilku dni), czasami następuje znaczące odbicie. W przeszłości Ive popełniłem kilka błędów, zamykając moje pozycje, aby ograniczyć straty, tak aby w ciągu kolejnych dni stracić równowagę. Ogólna teoria Po okresie kolejnych strat, wielu handlowców zlikwiduje swoje pozycje ze strachu o jeszcze większe straty. Wiele z tych zachowań reguluje strach, a nie obliczone ryzyko. W tym czasie pojawiają się mądrzejsi kupcy. Hipoteza: Zyski SPY następnego dnia wykazują tendencję zwyżkową po kilku kolejnych stratach. Aby przetestować hipotezę, przeliczyłem liczbę kolejnych dni w dół. Wszystko poniżej -0,1 dnia codziennego powrotu kwalifikuje się jako dzień wolny. Seria zwrotów jest prawie losowa, więc można się spodziewać, że szanse na 5 kolejnych lub więcej kolejnych dni są niskie, co powoduje bardzo ograniczoną liczbę wystąpień. Mała liczba wystąpień spowoduje niewiarygodne statystyczne oszacowania, więc ja zatrzymam się na 5. Poniżej znajduje się wizualizacja zwrotów nex-tday w funkcji liczby dni w dół. Sporządziłem też wykres 90 przedziałów ufności zwrotów między liniami. Okazuje się, że średni zwrot jest dodatnio skorelowany z liczbą dni w dół. Hipoteza potwierdzona. Jednak wyraźnie widać, że ta dodatkowa alfa jest bardzo mała w porównaniu do przedziału prawdopodobnych wyników powrotu. Ale nawet niewielką przewagę można wykorzystać (znaleźć przewagę statystyczną i powtarzać tak często, jak to możliwe). Kolejnym krokiem jest zbadanie, czy można obrócić tę krawędź w strategii handlowej. Biorąc pod uwagę powyższe dane, można sformułować strategię transakcyjną: po wykonaniu 3 lub więcej strat, idź długo. Wyjdź przy następnym zamknięciu. Poniżej znajduje się wynik tej strategii w porównaniu do czystego buy-and-hold. To wcale nie wygląda źle Patrząc na wskaźniki sharpe'a, strategia przyjmuje wynik 2.2 w porównaniu do 0.44 dla BampH. Jest to całkiem niezłe (nie podnieście się zbytnio, ponieważ nie uwzględniłem kosztów prowizji, poślizgu itp.). Chociaż powyższa strategia nie jest czymś, co chciałbym wymienić tylko ze względu na długi okres czasu, sama teoria prowokuje dalsze myśli, które mogłyby wytworzyć coś użytecznego. Jeśli ta sama zasada odnosi się do danych śróddziennych, można stworzyć strategię scalping. W powyższym przykładzie nieco uproszczono świat, licząc tylko liczbę dni w dół, bez zwracania uwagi na głębokość wypłaty. Zjazd z pozycji to tylko podstawowe zamknięcie następnego dnia. Jest wiele do poprawienia, ale moim zdaniem jest to istotna kwestia: przyszłe zyski SPY zostaną uwzględnione w wyniku wypłat i wypłat w ciągu poprzednich 3 do 5 dni. Doświadczony przedsiębiorca wie, jakie zachowanie można oczekiwać od rynku w oparciu o zestaw wskaźników i ich interpretację. Ten ostatni często odbywa się na podstawie jego pamięci lub jakiegoś modelu. Znalezienie dobrego zestawu wskaźników i przetwarzanie ich informacji stanowi duże wyzwanie. Po pierwsze, trzeba zrozumieć, jakie czynniki są skorelowane z przyszłymi cenami. Dane, które nie mają żadnej jakości prognostycznej, intonują tylko szum i złożoność, zmniejszając wydajność strategii. Znalezienie dobrych wskaźników jest nauką samą w sobie, często wymagającą głębokiego zrozumienia dynamiki rynku. Ta część projektu strategii nie może być łatwo zautomatyzowana. Na szczęście, po znalezieniu dobrego zestawu wskaźników, pamięć i intuicja handlowców można łatwo zastąpić modelem statystycznym, który prawdopodobnie będzie działał znacznie lepiej, ponieważ komputery mają bezbłędną pamięć i mogą dokonać doskonałych oszacowań statystycznych. Jeśli chodzi o handel wahaniami, zajęło mi trochę czasu, aby zrozumieć, co wpływa na jego ruchy. W szczególności interesowałem się zmiennymi, które przewidują przyszłe zwroty VXX i XIV. Nie będę tutaj tłumaczył całej długości, ale po prostu przedstawię wniosek. moimi dwoma najcenniejszymi wskaźnikami zmienności są określenie nachylenia struktury i aktualna premia zmienności. Moją definicją tych dwóch elementów jest: premia zmienności VIX-zrealizowana delta Vol (nachylenie struktury termicznej) VIX-VXV VIX wzmacniacz VXV to zmienne implikowane 1 i 3 miesiące SampP 500. zrealizowane tutaj jest 10-dniowa zmienność realizowana przez SPY, obliczone za pomocą wzoru Yang-Zhanga. Delta była często omawiana na blogu VixAndMore, a premium jest dobrze znana z handlu opcjami. To ma sens, aby uzyskać krótką zmienność, gdy składka jest wysoka, a kontrakty terminowe są contango (delta 0). Spowoduje to wygenerowanie wiatru tylnego zarówno z premii, jak i dziennego rzutu wzdłuż struktury terminów w VXX. Ale to tylko przybliżona ocena. Dobra strategia handlowa łączyłaby informacje zarówno z segmentu premium, jak i delty, z prognozą dotyczącą kierunku obrotu w VXX. Przez bardzo długi czas starałem się wymyślić dobry sposób na połączenie hałaśliwych danych z obu wskaźników. Spróbowałem już większości standardowych podejść, takich jak regresja liniowa, pisząc paczkę if-thens. ale wszystkie z bardzo niewielkimi poprawkami w porównaniu do używania tylko jednego wskaźnika. Dobrym przykładem takiej strategii pojedynczego wskaźnika z prostymi zasadami można znaleźć na blogu TradingTheOdds. Nie wygląda źle, ale co można zrobić za pomocą wielu wskaźników Zaczynam z niektórymi nieprzydatnymi danymi VXX, które dostałem od MarketSci. Zauważ, że są to dane symulowane, zanim VXX został utworzony. Wskaźniki dla tego samego okresu są przedstawione poniżej: Jeśli weźmiemy jeden ze wskaźników (w tym przypadku premia) i wykreślemy go na podstawie przyszłych zwrotów VXX, można zauważyć pewną korelację, ale dane są bardzo głośne: Mimo to jest jasne ta ujemna składka prawdopodobnie będzie miała pozytywne zyski VXX następnego dnia. Połączenie premii i delta w jeden model było dla mnie wyzwaniem, ale zawsze chciałem dokonać przybliżenia statystycznego. W istocie, dla kombinacji (delta, premium), Id lubi znaleźć wszystkie historyczne wartości, które są najbliższe aktualnym wartościom i dokonać oszacowania przyszłych zysków na ich podstawie. Kilka razy zacząłem pisać algorytmy interpolacji najbliższego sąsiada, ale za każdym razem musiałem się poddawać. dopóki nie natknąłem się na regresję najbliższego sąsiada scikit. Pozwoliło mi to szybko zbudować predykator na podstawie dwóch danych wejściowych, a wyniki są tak dobre, że jestem trochę zaniepokojony, że gdzieś popełniłem błąd. Oto, co zrobiłem: utworzyć zestaw danych delty, premium - gt VXX następnego dnia powrotu (w próbie) stworzyć predyktor najbliższego sąsiada na podstawie zbioru danych powyżej strategii handlowej (poza próbą) z zasadami: idź długo, jeśli przewidywany zwrot gt 0 jest krótki, jeśli przewidywany zwrot lt0 Strategia nie może być prostsza. Wyniki wydają się bardzo dobre i stają się lepsze, gdy do oceny wykorzystuje się więcej neigborów. Po pierwsze, z 10 punktami, strategia jest znakomita w próbce, ale jest spłaszczona z powodu braku próbki (czerwona linia na poniższym rysunku jest ostatnim punktem w próbie). Następnie wydajność poprawia się z 40 i 80 punktami: W ostatnim dwóch działek, strategia wydaje się wykonywać tę samą próbkę poza próbą. Współczynnik Sharpe wynosi około 2,3. Jestem bardzo zadowolony z wyników i mam wrażenie, że tylko drapiąłem powierzchnię tego, co jest możliwe dzięki tej technice. Moje poszukiwanie idealnego narzędzia analizy historycznej (moja definicja ideału jest opisana we wcześniejszych postach dotyczących dylematów Backtesting) nie doprowadziło do czegoś, co mógłbym wykorzystać od razu. Jednak przegląd dostępnych opcji pomógł mi lepiej zrozumieć, czego naprawdę chcę. Spośród opcji, na które spojrzałam, pybacktest był tym, który najbardziej lubiłem ze względu na jego prostotę i szybkość. Po przejściu przez kod źródłowy, mam kilka pomysłów, aby uczynić go prostszym i nieco bardziej eleganckim. Odtąd był tylko mały krok do napisania własnego backtestera, który jest teraz dostępny w bibliotece TradingWithPython. Wybrałem podejście, w którym backtester zawiera funkcjonalność, którą dzielą wszystkie strategie handlowe i które często są kopiowane. Rzeczy takie jak obliczanie pozycji i pnl, wskaźniki wydajności i tworzenie wykresów. Funkcje specyficzne dla strategii, takie jak określanie punktów wejścia i wyjścia, powinny być wykonywane poza testem. Typowy przepływ pracy to: znajdowanie wejścia i wyjścia - gt obliczanie pnl i tworzenie działek z danymi backtestera - gt strategii post-process W tym momencie moduł jest bardzo minimalny (spójrz na źródło tutaj), ale w przyszłości planuję na dodawanie wyjść z zysków i stop-loss oraz portfeli multi-asset. Użycie modułu analizy historycznej jest pokazane w tym przykładowym notesie, w którym organizuję moje notesy IPython, zapisując je w różnych katalogach. Przynosi to jednak pewne niedogodności, ponieważ aby uzyskać dostęp do notebooków, potrzebuję otworzyć terminal i pisać za każdym razem przy użyciu notebooka ipython. Jestem pewien, że zespół ipython rozwiąże to na dłuższą metę, ale w międzyczasie istnieje dość łatwy sposób szybkiego dostępu do notebooków z eksploratora plików. Wszystko, co musisz zrobić, to dodać menu kontekstowe, które uruchamia serwer ipython w żądanym katalogu: Szybki sposób dodania elementu kontekstowego polega na uruchomieniu tej poprawki rejestru. (Uwaga: łatka zakłada, że ​​twoja instalacja pytona znajduje się w C: Anaconda, jeśli nie, musisz otworzyć plik. reg w edytorze tekstu i ustawić prawą ścieżkę w ostatnim wierszu). Instrukcje dotyczące ręcznego dodawania kluczy rejestru można znaleźć na blogu Frolians. Wiele osób uważa, że ​​dźwignia etfów w dłuższej perspektywie nie osiąga dobrych wyników. Dotyczy to niepewnych rynków, ale nie w przypadku trendów - w górę lub w dół. Dźwignia wpływa tylko na najbardziej prawdopodobny wynik, a nie na oczekiwany rezultat. Aby uzyskać więcej informacji, przeczytaj ten post. Rok 2017 był bardzo dobrym rokiem dla akcji, które zyskały popularność przez większą część roku. Zobaczmy, co by się stało, gdybyśmy skrócili niektóre z dźwigni etf dokładnie rok temu i zabezpieczyliśmy je swoim benchmarkiem. Znając lewarowane zachowanie etyczne, spodziewałbym się, że lewarowane etfy osiągną lepsze wyniki niż ich benchmark, więc strategia, która spróbuje skorzystać z rozkładu, straci pieniądze. Zastanowię się nad tymi parami: SPY 2 SSO -1 SPY -2 SDS -1 QQQ 2 QLD -1 QQQ -2 QID -1 IYF -2 SKF -1 Każdy dźwigniany etf jest trzymany nisko (-1) i zabezpieczony 1x etf. Zauważ, że aby uchronić się przed odwrotnym etfem, ujemna pozycja jest trzymana w 1x etf. Oto jeden przykład: SPY vs SSO. Kiedy normalizujemy ceny do 100 na początku okresu analizy historycznej (250 dni), oczywistym jest, że 2x etf przewyższa 1 etf. Teraz wyniki testu historycznego na powyższych parach: Wszystkie 2 etfy (łącznie z odwrotnością) przewyższyły benchmarku w ciągu 2017 roku. Zgodnie z oczekiwaniami strategia wykorzystująca rozpad beta nie byłaby opłacalna. Sądzę, że granie lewarowanych etfów przeciwko ich słabym odpowiednikom nie zapewnia żadnej przewagi, chyba że znasz wcześniej warunki rynkowe (trending lub range-bound). Ale jeśli znasz nadchodzący reżim rynkowy, istnieje wiele łatwiejszych sposobów na czerpanie z niego korzyści. Niestety, nikt jeszcze nie odniósł sukcesu w przewidywaniu reżimu rynkowego nawet w bardzo krótkim czasie. Pełny kod źródłowy obliczeń jest dostępny dla subskrybentów kursu Trading With Python. Notatnik 307 Oto moje ujęcie w wycenie Twittera. Chciałbym zacząć od zrzeczenia się: w tej chwili duża część mojego Portrolio składa się z krótkiej pozycji TWTR, więc moja opinia jest raczej wypaczona. Powodem, dla którego zrobiłem moją własną analizę, jest to, że mój zakład nie działał dobrze, a Twitter wykonał paraboliczny ruch w grudniu 2017 roku. Więc pytanie, na które próbuję tu odpowiedzieć, powinienem wziąć moją stratę lub trzymać się swoich szortów. W chwili pisania tego tekstu TWTR sprzedaje około 64 marek, przy kapitalizacji rynkowej 34,7 B. Do tej pory firma nie osiągnęła zysku, tracąc 142 mln w 3013 po osiągnięciu 534 mln przychodów. Ostatnie dwie liczby dają nam roczne wydatki firmy na poziomie 676M. Cena uzyskana z wartości użytkownika Twitter może być porównywana z Facebookiem, Google i LinkedIn, aby uzyskać pojęcie liczby użytkowników i ich wartości. Poniższa tabela zawiera podsumowanie liczby użytkowników na firmę oraz wartość na użytkownika wynikającą z ograniczenia rynku. (źródło dla wielu użytkowników: Wikipedia, liczba dla Google opiera się na liczbie unikalnych wyszukiwań) Staje się jasne, że wycena rynkowa na użytkownika jest bardzo podobna dla wszystkich firm, jednak moja osobista opinia jest taka: TWTR jest obecnie bardziej wartościowy na użytkownika w FB lub LNKD. Nie jest to logiczne, ponieważ obaj konkurenci dysponują bardziej wartościowymi osobistymi danymi użytkowników. GOOG doskonale radzi sobie z uzyskiwaniem przychodów z reklam od użytkowników. Aby to zrobić, ma zestaw bardzo zróżnicowanych ofert, od wyszukiwarki do Google. Dokumenty i Gmail. TWTR nie ma nic podobnego, podczas gdy jego wartość na użytkownika jest tylko o 35% niższa od Google. TWTR ma ograniczoną przestrzeń do powiększania swojej bazy użytkowników, ponieważ nie oferuje produktów porównywalnych z ofertami FB lub GOOG. TWTR istnieje już od siedmiu lat, a większość ludzi, którzy chcą mieć akredytację, ma szansę. Reszta po prostu nie obchodzi. Baza użytkowników TWTR jest niestabilna i prawdopodobnie przejdzie do następnej gorącej rzeczy, gdy stanie się dostępna. Myślę, że najlepszym odniesieniem tutaj byłby LNKD, który ma stabilną niszę na rynku profesjonalnym. Dzięki temu metryka TWTR byłaby zawyżona. Ustawienie wartości użytkownika na poziomie 100 dla TWTR dałoby uczciwą cenę TWTR równą 46. Cena uzyskana z przyszłych zysków Istnieje wystarczająca ilość danych na temat przyszłych szacunków zysków. Jednym z najbardziej użytecznych, które znalazłem, jest tutaj. Używanie tych liczb podczas odejmowania wydatków firmy, co do których zakładam, że pozostaną stałe. produkuje te liczby: Wniosek W oparciu o dostępne informacje, optymistyczna wycena TWTR powinna być w zakresie 46-48. Nie ma wyraźnych powodów, dla których handel powinien być wyższy, a ryzyko operacyjne niższe. Przypuszczam, że podczas IPO wystarczyło, aby profesjonaliści ocenili cenę, ustalając ją na uczciwym poziomie cenowym. To, co wydarzyło się później, było irracjonalnym ruchem rynkowym, nieuzasadnionym nowymi informacjami. Wystarczy rzucić okiem na uparty szał na strojach. z ludźmi, którzy twierdzą, że takie ptaki latają do 100. Czyste emocje, które nigdy nie działają dobrze. Jedyne, co mnie teraz spoczywa, to położyć moje pieniądze tam, gdzie są moje usta i trzymać się moich szortów. Czas pokaże. Skrócenie krótkoterminowej niestabilności etn VXX może wydawać się świetnym pomysłem, gdy spojrzysz na wykres z dużej odległości. Ze względu na contango w futures zmienności, etn przeważa przez większość czasu i często traci na wartości. Dzieje się tak z powodu codziennego przywracania równowagi, aby uzyskać więcej informacji, proszę spojrzeć na potencjalnego klienta. W idealnym świecie, jeśli utrzymasz go wystarczająco długo, zysk wygenerowany przez rozpad czasu w kontraktach futures i równoważenie etn jest gwarantowany, ale w krótkim okresie będziesz musiał przejść przez całkiem spore wypłaty. Spójrzmy wstecz na lato 2017 roku. Byłem niefortunny (lub głupi) na tyle, aby utrzymać krótką pozycję VXX tuż przed pojawieniem się VIX. Do tego czasu prawie straciłem rachunki: 80 wypłat w ciągu zaledwie kilku dni, co grozi wezwaniem do uzupełnienia depozytu przez mojego brokera. Wywołanie marży oznaczałoby zarobienie straty. To nie jest sytuacja, w której kiedykolwiek chciałbym być ponownie. Wiedziałem, że nie będzie łatwo utrzymywać chłód przez cały czas, ale doświadczanie stresu i presji sytuacji było czymś innym. Na szczęście wiedziałem, jak zachowuje się VXX, więc nie wpadłem w panikę, ale zmieniłem stronę na XIV, aby uniknąć wezwania do uzupełnienia depozytu. Historia kończy się dobrze, 8 miesięcy później moje portfolio znów nabrało sił i nauczyłem się bardzo wartościowej lekcji. Na początek ostrzeżenie: nie wahaj się, jeśli nie wiesz dokładnie, ile ryzykujesz. Powiedziawszy to, przyjrzyjmy się strategii, która minimalizuje niektóre ryzyko, zwierając VXX tylko wtedy, gdy jest to właściwe. Teza strategiczna: VXX przeżywa największy opór, gdy krzywa kontraktów terminowych jest w stromym contango. Krzywa futures jest przybliżona przez relację VIX-VXV. Skrócimy VXX, gdy VXV ma niezwykle wysoką premię w stosunku do VIX. Najpierw przyjrzyjmy się relacji VIX-VXV: Powyższy wykres pokazuje dane VIX-VXV od stycznia 2017 r. Punkty danych z ubiegłego roku są wyświetlane na czerwono. Wybrałem zastosowanie dopasowania kwadratowego między tymi dwoma, zbliżając VXV f (VIX). F (VIX) jest wykreślany jako niebieska linia. Wartości powyżej linii oznaczają sytuację, gdy futures są silniejsze niż normalne contango. Teraz definiuję wskaźnik delta, który jest odchyleniem od dopasowania: delta VXV-f (VIX). Teraz spójrzmy na cenę VXX wraz z deltą: Powyżej: cena VXX na skali logarytmicznej. Poniżej: delta. Zielone znaczniki oznaczają delta gt 0. czerwone znaczniki deltalt0. Oczywiste jest, że zielone obszary odpowiadają ujemnym zwrotom w VXX. Symulacja strategii z tymi założeniami: Krótkie VXX przy delta gt 0 Stały kapitał (stawka za każdy dzień to 100) Brak poślizgu lub kosztów transakcji Strategia ta jest porównywana z tą, która jest handlowana krótko każdego dnia, ale nie uwzględnia delty . Zielona linia reprezentuje naszą krótką strategię VXX, niebieska linia jest głupia. Sharpe z 1,9 za prostą strategię końca dnia nie jest wcale taki zły. Ale jeszcze ważniejsze jest to, że w dużej mierze unika się wyładowań w jelitach, zwracając uwagę na krzywą przyszłych kontraktów futures. Budowanie tej strategii krok po kroku zostanie omówione podczas nadchodzącego kursu Trading With Python. Cena aktywów lub ETF jest oczywiście najlepszym wskaźnikiem, ale niestety zawiera tylko tyle informacji. Niektórzy ludzie myślą, że im więcej wskaźników (rsi, macd, średnia ruchoma crossover itp.). tym lepiej, ale jeśli wszystkie z nich są oparte na tej samej podstawowej serii cen, wszystkie będą zawierać podzbiór tych samych ograniczonych informacji zawartych w cenie. Potrzebujemy więcej informacji, oprócz tego, co zawiera cena, aby lepiej poznać domysły dotyczące tego, co wydarzy się w najbliższej przyszłości. Doskonały przykład łączenia różnego rodzaju informacji z inteligentną analizą można znaleźć na blogu Krótki bok długiego. Produkcja tego rodzaju analizy wymaga ogromnej ilości pracy, do której po prostu nie mam czasu, ponieważ handluję tylko w niepełnym wymiarze godzin. Zbudowałem więc własny pulpit rynku, który automatycznie zbiera informacje dla mnie i przedstawia je w łatwo przyswajalnej formie. W tym poście zamierzam pokazać, jak zbudować wskaźnik na podstawie danych o krótkim czasie. Ten post ilustruje proces gromadzenia i przetwarzania danych. Krok 1: Znajdź źródło danych. Wymiana BATS zapewnia dzienne dane woluminu za darmo na ich stronie. Krok 2: Uzyskaj dane ręcznie kontrolowane przez wzmacniacz Krótkie dane głośności wymiany BATS znajdują się w pliku tekstowym, który jest spakowany. Każdy dzień ma swój własny plik zip. Po pobraniu i rozpakowaniu pliku txt, to jest to, co jest w środku (pierwsze kilka linii): W sumie plik zawiera około 6000 symboli. Te dane wymagają sporo pracy, zanim można je przedstawić w znaczący sposób. Krok 3: Automatycznie pobieraj dane To, czego naprawdę chcę, to nie tylko dane na jeden dzień, ale stosunek krótkiego tomu do całkowitej objętości w ciągu ostatnich kilku lat, i naprawdę nie mam ochoty pobierać 500 plików zip i kopiować - wklejając je excel ręcznie. Na szczęście pełna automatyzacja to tylko kilka linii kodu: Najpierw musimy dynamicznie utworzyć adres URL, z którego pobierany będzie plik: Teraz możemy pobrać wiele plików naraz: Krok 4. Analizowanie pobranych plików Możemy użyć zip i pand biblioteki do analizy pojedynczego pliku: Zwraca stosunek krótkiej objętości woluminu ogólnego dla wszystkich symboli w pliku zip: Krok 5: Utwórz wykres: Teraz pozostaje tylko przeanalizować wszystkie pobrane pliki i połączyć je w jedną tabelę i wykres Wynik: Na powyższym rysunku wykreślono średni wskaźnik krótkiego wolumenu z ostatnich dwóch lat. Mogłem też użyć podzbioru symboli, gdybym chciał rzucić okiem na konkretny sektor lub magazyn. Szybkie spojrzenie na dane daje mi wrażenie, że wysokie wskaźniki krótkich wolumenów zwykle odpowiadają dnem rynkowym, a niskie wskaźniki wydają się być dobrym punktem wejścia dla długiej pozycji. Zaczynając od tego, ten krótki stosunek objętości może być wykorzystany jako podstawa do opracowania strategii. Handel kursami Python Jeśli jesteś przedsiębiorcą lub inwestorem i chciałbyś nabyć zestaw ilościowych umiejętności handlowych, możesz rozważyć wzięcie handlu z pythonem. Kurs online dostarczy Ci najlepszych narzędzi i praktyk do ilościowych badań handlowych, w tym funkcji i skryptów napisanych przez ekspertów handlowych ilościowych. Nauczysz się, jak zdobywać i przetwarzać niesamowite ilości danych, projektów i strategii historycznych oraz analizować wyniki handlowe. Pomoże Ci to w podejmowaniu świadomych decyzji, które są kluczowe dla sukcesu handlowców. Kliknij tutaj, aby przejść do strony kursu Trading With Python Nazywam się Jev Kuznetsov, w ciągu dnia jestem pracownikiem naukowym w firmie, która zajmuje się drukiem. Przez resztę czasu jestem przedsiębiorcą. Studiowałem fizykę stosowaną ze specjalizacją w rozpoznawaniu wzorów i sztucznej inteligencji. Moja codzienna praca obejmuje wszystko od szybkiego prototypowania algorytmów w Matlab i innych językach po programowanie wzmacniacza sprzętowego. Od 2009 roku wykorzystuję swoje umiejętności techniczne na rynkach finansowych. Zanim doszedłem do wniosku, że Python jest najlepszym dostępnym narzędziem, pracowałem intensywnie w Matlab, który jest omówiony na moim drugim blogu. Top 5 popularnych strategii handlowych Ten artykuł pokaże Ci niektóre z najbardziej popularnych strategii handlowych, a także, jak możesz przeanalizuj plusy i minusy każdego z nich, aby wybrać najlepszy dla Twojego osobistego stylu handlu. Pięć najważniejszych strategii, które omówimy, to: Breakouts to jedna z najpopularniejszych technik stosowanych na rynku w handlu. Polegają one na określeniu kluczowego poziomu cen, a następnie kupowaniu lub sprzedawaniu w postaci przedziałów cenowych na ustalonym wcześniej poziomie. Oczekuje się, że jeśli cena ma wystarczającą siłę, aby przełamać poziom, to nadal będzie zmierzać w tym kierunku. Koncepcja przełamania jest stosunkowo prosta i wymaga umiarkowanego zrozumienia wsparcia i oporu. Kiedy rynek zaczyna trendować i poruszać się silnie w jednym kierunku, handel breakout zapewnia, że ​​nigdy nie przegapisz ruchu. Ogólnie rzecz biorąc, wypady są stosowane, gdy rynek znajduje się już na skrajnych wysokich minusach minionej przeszłości. Oczekuje się, że cena będzie nadal rosnąć wraz z trendem i rzeczywiście przełamać ekstremalne wartości i kontynuować. Mając to na uwadze, aby skutecznie wziąć udział w wymianie handlowej, musimy po prostu złożyć zamówienie tuż nad wysokim lub tuż poniżej niskiego poziomu, aby handel został automatycznie wprowadzony po zmianie ceny. Są to tak zwane zamówienia limitów. Bardzo ważne jest unikanie wyprysków, gdy rynek nie jest trendy, ponieważ spowoduje to fałszywych transakcji, które powodują straty. Powodem tych strat jest to, że rynek nie ma impetu, aby kontynuować ruch poza skrajnymi wzlotami i upadkami. Kiedy cena uderza w te obszary, zwykle spada z powrotem do poprzedniego przedziału, powodując straty dla handlarzy próbujących utrzymać kierunek ruchu. Retracements Retracements wymagają nieco innego zestawu umiejętności i obracają się wokół przedsiębiorcy identyfikując jasny kierunek, w którym cena ma się wprowadzić, i zyskują pewność, że cena będzie nadal rosnąć. Ta strategia opiera się na fakcie, że po każdym ruchu w oczekiwanym kierunku, cena zostanie tymczasowo odwrócona, gdy inwestorzy zaczną czerpać zyski, a nowicjusze będą próbować handlować w przeciwnym kierunku. Te wycofania lub retracements faktycznie oferują profesjonalnych handlowców o znacznie lepszej cenie, do której można wejść w oryginalnym kierunku tuż przed kontynuacją ruchu. Przy handlu zwrotnym wsparcie i opór jest również używany, tak jak w przypadku przerw. Analiza fundamentalna ma również kluczowe znaczenie dla tego rodzaju transakcji. Kiedy nastąpi pierwszy ruch, inwestorzy będą świadomi różnych poziomów cen, które zostały już naruszone w pierwotnym ruchu. Zwracają szczególną uwagę na kluczowe poziomy wsparcia i ruchu oporu oraz obszary na wykresie cenowym, takie jak poziomy 00. Są to poziomy, na które będą kupować lub sprzedawać od później. Retracements są wykorzystywane wyłącznie przez traderów w czasach, gdy krótkoterminowe nastroje są zmieniane przez wydarzenia gospodarcze i wiadomości. Ta wiadomość może spowodować tymczasowe wstrząsy na rynku, które powodują te retracements w stosunku do kierunku pierwotnego ruchu. Początkowe powody tego ruchu mogą nadal obowiązywać, ale krótkoterminowe zdarzenie może wywołać u inwestorów nerwowość i przynieść zyski, co z kolei spowoduje zniesienie. Ponieważ warunki początkowe pozostają takie, oferują innym inwestorom branżowym możliwość powrotu do ruchu po lepszej cenie, co bardzo często robią. Handel wymianami handlowymi jest generalnie nieskuteczny, gdy nie ma wyraźnych zasadniczych powodów takiego przeniesienia. Dlatego jeśli widzisz duży ruch, ale nie potrafisz zidentyfikować wyraźnego podstawowego powodu tego ruchu, kierunek może się szybko zmienić, a to, co wydaje się być zrekompensowaniem, może faktycznie okazać się nowym ruchem w przeciwnym kierunku. Spowoduje to straty dla każdego, kto próbuje handlować zgodnie z pierwotnym posunięciem.

No comments:

Post a Comment