•  cahya untoreh

Optimization bolongan terwelu ing python

Nyepetake backtesting kanggo bot dagang crypto freqtrade.

Freqtrade Apa bot dagang crypto ing python. Aku biyen muter-muter karo garpu, ndandani sawetara kewan omo lan sawetara prilaku sing aku ora seneng. Ndhaptar kewan omo ing kene bakal mboseni, mula aku bakal ngomong babagan perkara sing dakanggep menarik.

Carane freqtrade (FQT) dianggo, ing tingkat dhuwur

FQT ora adhedhasar acara, adhedhasar loop. Apa tegese iki? Kita bisa ngomong babagan eksekutor (operasi langsung) utawa backtester. Ing kasus iki, loro-lorone adhedhasar loop.

Detour singkat kene. Apa aku luwih seneng? Loop utawa Acara?

... bali menyang FQT, ing mode urip, proses pesenan ing daur ulang. Saben X detik takon ijol-ijolan kanggo nganyari. Iku nglacak:

Ruh-roh

Eksekusi langsung adhedhasar loop duwe masalah sing jelas. Iku sinkron. Yen sampeyan proses kanggo akeh pasangan eksekusi bakal kurang responsif, lan iterate kurang asring, lagging konco unfolding saka tumindak rega. Dadi, sanajan aku luwih seneng puteran kanggo backtesting, aku luwih seneng acara kanggo eksekusi langsung.

Kakurangan? Yen sampeyan nggunakake acara kanggo siji bab lan daur ulang kanggo liyane, iku luwih gampang kanggo model utawa paramèter saka strategi kanggo diverge lan ora cocog karo kasunyatan.

Argumentasi pertahananku nglawan iki yaiku terus-terusan ngevaluasi diri (backtesting) lan eksekusi langsung ngilangi masalah iki amarga bakal pungkasanipun nyelarasake.

FQT duwe akeh parameter konfigurasi lan akeh wektu bedane antarane bot lan strategi bakal dadi abu-abu amarga strategi kasebut ora bisa ngontrol carane pesenan ditindakake dening bot. Bot nangani "roi" yaiku kothak watesan rega bathi lan "stoploss trailing" sing padha, nanging ana kekurangane. Strategi kasebut mung nyedhiyakake parameter lan bot nindakake liyane. Aku ora penggemar iki.

Callbacks kanggo sinyal tuku lan adol. Dagang bakal kedadeyan adhedhasar sinyal sing dibalekake dening callback sing bakal ngitung sinyal ing kerangka data. Masalah karo iki sinyal sing statis; sampeyan mung bisa mbosenke ngetung dataframe 1 baris, lan feed sing kanggo bot, nanging ora bakal backtestable. Iki apik yen sampeyan ora ngormati backtesting sing akeh, kanggo saben dhewe.

Patchworks

Apa aku diowahi ing FQT kanggo nyoba kanggo nindakake kanggo likning sandi.

Ana Bunch saka njiwet liyane, kaya evaluasi sinyal podo aku pungkasanipun gutted metu nalika aku luwih fokus ing mbangun sinyal cepet, lan njiwet kanggo ngrancang lan config opsi, nanging padha ora ngremenaken.

Nggoleki kanggo vectorized backtest

Aku nyoba akeh versi backtesting kanggo nyepetake. Iku kabeh, ora kabeh, worth iku. Logika komputasi antarane operasi tuku lan jual nggunakake array numpy. Iku kaya muter tetris karo otak. Maksudku ngendi pamblokiran digawe saka materi werna abu-abu Panjenengan, lan sampeyan nyoba kanggo sijine bebarengan. Kene kita dhaptar

We ditambahaké uga sawetara fitur tambahan kanggo backtest, kaya panyebaran lan likuiditas pitungan, lan wektu kasebut sadurunge bobot roi.

Nggoleki kanggo sejajar optimasi

Apa aku pengin backtester cepet? Amarga aku pengin mbukak akeh mau supaya aku bisa nemokake sing paling apik saka config parameter paling apik ... mesthi, disregarding sembarang konsep over-fitting, over-parametrization, lack-of-fokus, etc ... Ayo dhaptar apa sing dakgarap:

Kesimpulan

We cranked FQT backtesting kanggo 11 . Nanging kita ora tau nggunakake ing produksi :).

Rada sawise mati rasasaka backtester, callbacks tambahan ditambahake menyang strategi sing nyuwil pamisahan antarane backtesting lan evaluasi strategi, kang tegese supaya bab cepet, sampeyan kudu uga nulis strategi ing numba! Nanging aku kesel karo campuran goyang python / numpy / numba gotchas lan amarga aku ora seneng eksekusi langsung saka FQT, Aku dropped kabeh iku tho, kanggo greener (utawa aku bakal ngomong pinker! ) pangonan.

Oalah...optimasi iku crack.

Tag Pos: