Předchozí článek Hard-Core Information - Details and Thoughts on Automated Real Offering of Quantitative Trading System (I. Problems and Difficults) hovořil o některých základních problémech reálného obchodování v měnovém kruhu. Tento článek hovoří o hlavním účelu firemní nabídky.
Myslím, že jsou čtyři hlavní:
1. Implementujte zavedenou logiku strategie
O tom není pochyb. Když je signál, musí být provedeny odpovídající operace, otevření a zavření polohy. Tento bod vyžaduje, abyste se pokusili nepoužívat limitní příkazy. V opačném případě, pokud nebude možné transakci dokončit, budete muset pokračovat v cestě za příkazem otázka.
Z dlouhodobého hlediska je skluz způsobený používáním tržních příkazů zhruba podobný skluzu způsobenému občasným chybějícím limitním příkazem, ale pronásledováním příkazů, takže je lepší vstupovat a opouštět trh přímo, pokud vaše strategie není příliš speciální.
Pokud navíc používáte limitní příkazy, váš kód bude složitější, protože musíte spravovat nevyplněné limitní příkazy a následně příkazy stíhat. A co když je naplněna pouze část limitního příkazu? Zbývající limitní příkazy vždy visí? Nebo bych měl díl minout a vydat další tržní příkaz? Tento druh jednokrokové operace generuje více transakčních příkazů a následná kontrola je také problematická a snadno se zmást. Proto je lepší použít jen tržní příkaz Dokud bude odeslání úspěšné, bude transakce v podstatě zaručena. Pokud se skutečně jedná o strategii citlivou na skluz, pak obchodujte pouze s cíli s dobrou likviditou.
Také u kontraktů by se finanční páka neměla libovolně měnit. Nejlepší je využít ideální páku pro zpětné testování a poté slevit o 20 %. Nepředvídejte trh subjektivně a upravte páku ručně. Změna pozic je také tabu v automatizovaném obchodování.
Nejlepší je automaticky vyhrát nebo prohrát a snížit pozici, když retracement dosáhne určité úrovně, nedělejte opak, protože si myslíte, že brzy přijde vítr, a zvyšte páku jistina a snížit pákový efekt). Nejdůležitější je udržet svůj účet naživu, takže buďte nejprve neporažení. Před přidáním zpětné páky můžete počkat, až kapitálová křivka projde obdobím retracementu. Pokud se však použije model složeného úročení, jedná se již o jednoduchý automatický výherní a prohraný kontrakt.
2. Minimalizujte prokluz
To bylo zmíněno v předchozím článku. Skluz nelze odstranit, lze jej pouze zmírnit. To vyžaduje, abyste co nejdříve získali informace o tržní ceně a také různé informace o finančních prostředcích a pozicích na burzovním účtu, abyste mohli rychle reagovat.
Z hlediska celkové struktury reálné nabídky existuje mnoho dílčích strategií a vyžaduje včasné získávání různých informací, pro sdílení úkolů je proto potřeba specializované websocket market centrum. Vybaveno tržištěm Restful Plan B pro zálohování. Tímto způsobem, pokud je websocket odpojen a nelze jej připojit, bude stále existovat relativně nová cena pro posouzení, zda je nutné opustit trh. Při běhu musíte být rychlí Je lepší běžet špatným směrem, než uvíznout v dopravní zácpě a nevědět, co přinese budoucnost.
3. Dlouhodobý provoz
To bylo zmíněno v předchozím článku. Měnový kruh běží 7*24 a váš kód nelze vypnout. To vyžaduje, aby kód nebyl přerušován různými vyvolanými výjimkami a aby existoval kód pro řešení různých neočekávaných situací. Neměly by se také vyskytovat žádné chyby, jako jsou úniky paměti, jinak se program časem zhroutí a dokonce se zhroutí celý server. Naštěstí Python není náchylný k takovým problémům, má mechanismus automatické recyklace paměti. Pokud to nefunguje, můžete ručně restartovat obchodní program každý den nebo několik dní. Každopádně je to středně a nízkofrekvenční obchodování. Toto jsou základní požadavky na vývoj back-end kódu a lze je snadno splnit.
Obecně platí, že kvantitativní obchodování používá Python. Hlavním rysem skriptovacího jazyka Python je dynamická kompilace, která má mírně nižší efektivitu běhu, protože není snadné jej ladit, protože se kompiluje a spouští současně (neovlivní však středně a nízkofrekvenční transakce při Všechno). Pokud je v logice kódu implicitní problém, nemusí být snadné jej odhalit. Pokud je například 100 řádků kódu a na řádku 99 je problém, ale pokaždé běží pouze na řádek 95, problém nebude odhalen, protože chyba musí být nalezena po spuštění na řádek 99 a spuštění Může být příliš pozdě a program se přímo zhroutí, pokud nezkusíte zachytit výjimku.
Ve výše uvedeném problému je ve skutečnosti zahrnuta další funkce. Protože Python je silně typovaný, implicitní převody jsou vzácné. Pokud příliš důvěřujete datovému typu odesílanému serverem, zejména těmto číslům, pravděpodobně utrpíte ztrátu, protože se z čísel někdy stanou řetězce. Různé měny na burze, různé verze API a stejná návratová data z websocketu a zbytku mohou být různých typů. Proto v zásadě musíte transformaci pokaždé vynutit, nebo nejprve určit, zda je transformace nutná.
Také nezaměňujte otevírací a uzavírací pozice mezi různými strategiemi, zejména strategiemi stejné měny, a dobře je izolujte. Jinak v některých extrémních tržních podmínkách strategie A uzavře pozici strategie B, což nakonec povede k nesouladu. Možná budete muset zastavit skutečnou nabídku a začít znovu, což bude nekoherentní a můžete minout klíčové trendy na trhu.
Stručně řečeno, vše je pro dlouhodobý plně automatizovaný a bezzásahový provoz skutečného obchodu.
Pokud je však strategie příliš složitá, nemusí být snadné dosáhnout zcela bezzásahového přístupu. Zjednodušení strategie je také výchozím bodem, nedělejte to příliš komplikované. Například signály jako OBV by se měly používat střídmě, protože OBV potřebuje sledovat dlouhodobé informace o ceně a objemu a skutečné obchodování potřebuje udržovat příliš mnoho dat. Každé přerušení a restart je problematická záležitost. Jako poslední možnost se takovým faktorům vyhněte.
4. Kontrola rizik
Toto je nejvyšší priorita požadavků firemní nabídky.
Nejnebezpečnější věcí je neschopnost uzavřít pozici. Trh šel opačným směrem a pokračoval v divokém běhu. Výsledkem bylo, že váš výstupní kód byl mimo kontrolu, bez ohledu na to, jaký byl důvod, pozice byla uzavřena se ztrátami. V měnovém kruhu mohou altcoiny během krátké doby několikrát vzrůst. Proto v případě krátkého prodeje, i když nevyužíváte páku a stále máte poloviční pozici v domnění, že se nemusíte ničeho obávat, může být pozice ráno vymazána.
Proto je nutné zajistit, aby se odchodový mechanismus projevil. Pokud propásnete příležitost otevřít pozici, alespoň to nebude fatální Pokud příležitost promeškáte, bude to nanejvýš škoda, ale pokud promeškáte příležitost pozici uzavřít, způsobí to velké problémy.
Zde jsou stručně dvě řešení a podrobně o nich budu mluvit později, až budu mít čas.
Prvním bodem je, že nejlepší je mít pevný stop loss, který je podobný stop lossu s fixním ztrátovým poměrem. Pokud například velká měna ztratí více než 10 % a malá měna ztratí 15 %, pozice se okamžitě uzavře a uteče.
U metody hard stop loss by měla být cena stop loss nastavena v okamžiku otevření pozice. Algoritmické příkazy stop-loss (některé také nazývané podmíněné příkazy) by proto měly být zadány co nejdříve po otevření pozice a není třeba měnit cenu uprostřed. Tímto způsobem vám burza pomůže sledovat cenu v reálném čase a poté vám pomůže odeslat tržní příkaz k odchodu z trhu po jeho spuštění. V tomto přístupu může docházet k velkému prokluzu, ale je pravděpodobnější, že bude stabilnější a spolehlivější než stop loss, který si sami nastavíte, a i když se něco pokazí a nespustí se, stále můžete přejít na burzu nárokovat práva (musíte tedy přejít na top burzu) .
Tento druh stop lossu se samozřejmě používá k pokrytí dna a měl by se spouštět jen zřídka. Nejlepší je řídit načasování výstupu podle vlastní strategie, aby byl retracement pravděpodobně menší.
Druhým bodem je, že program nebude otevírat pozice náhodně. Neotevírejte pozice nepřetržitě, ale nemyslete si, že nejsou, a nakonec otevřete velkou expozici. Je to v pořádku, pokud se cena v krátké době nehýbe, je možné ji ručně zasáhnout. Pokud dojde k náhlému obratu, může být vaše pozice zlikvidována. Záleží na tom, kolik pozic jste otevřeli. Toto je samozřejmě chyba nízké úrovně, ale stává se to. Zejména po iteraci a upgradu kódu uprostřed, nemusí být pečlivě zvažován.
V tomto případě musíte nejprve zpomalit tempo otevírání pozice a musíte počkat na návrat výsledků otevírání pozice. Před otevřením pozice také musíte zkontrolovat a potvrdit informace o účtu v té době. Neotevírat pozice samozřejmě můžete také lokálně zaznamenávat, což ušetří počet API požadavků a čas na dotazování burzy. Stav účtu.
Efektivněji je také možné předem omezit maximální pákový efekt burzy. To lze upravit sami. Výchozí hodnota Binance je 20krát, ale můžete ji změnit na 3krát nebo dokonce 2krát (samozřejmě to vyžaduje, aby vaše strategie sama o sobě nevyužívala vysokou páku, jinak nebudete moci otevřít vysokou páku, když byste měli). Takže bez ohledu na to, jak šílený je kód, je nemožné vytvořit velkou expozici, když spíte. To je bezpečnější.
Stručně řečeno, někdy není skutečnou nabídkou pouze kód transakce, ale potřebuje také vytyčit další obranné linie, aby do nich nepronikly události černé labutě. Nikdy to neberte na lehkou váhu a nesnažte se zalepit slepá místa.