Om du följer mig på Medium är du förmodligen medveten om att jag är mycket intresserad av kryptohandel och maskininlärning. Jag läste att linjära regressionskanaler kan vara mycket effektiva i varuhandel. Eftersom Bitcoin och andra kryptovalutor inte betraktas som värdepapper kan de fritt handlas på traditionella tillgångsmarknader, liksom kryptovalutabörser.
Så som vanligt försökte jag göra lite research into vad linjära regressionskanaler är, hur man använder dem och hur man kodar dem. Jag slog tomt. Jag hittade bara några grundläggande förklaringar till vad linjära regressionskanaler är på en hög nivå men inte tillräckligt för att faktiskt utveckla något praktiskt.
Vad är en linjär regressionskanal?
På en grundläggande nivå kan linjära regressionskanaler identifiera trender och trendriktningen. Användningen av standardavvikelse ger handlare en indikation på när marknaderna blir överköpta eller översålda i förhållande till den långsiktiga trenden. Vanligtvis skulle jag använda Moving Average Convergence Divergence (MACD) för att identifiera trender och Relative Strength Index (RSI) för att avgöra om en marknad är överköpt eller undersåld. För en trend på längre sikt skulle jag normalt använda ”Golden Cross"Och"Death Cross" mönster. Om du inte känner till dessa villkor är det när SMA50 är över eller under SMA200. Detta används fortfarande mycket i institutioner men linjära regressionskanaler kan erbjuda ett alternativ eller bekräftelse.
En linjär regressionskanal består av tre komponenter:
- Linjär regressionslinje - En rad som bäst passar alla datapunkter av intresse. Om du är bekant med maskininlärning är detta en standard linjär regressionsmodell med en linje med bästa passform.
- Övre kanallinje - En linje som går parallellt med den linjära regressionslinjen och är vanligtvis en till två standardavvikelser ovanför den linjära regressionslinjen. I det här exemplet har jag precis ritat en standardavvikelse ovan men den kan enkelt justeras till två om du vill.
- Nedre kanallinjen - Denna linje går parallellt med den linjära regressionslinjen och är vanligtvis en till två standardavvikelser under den linjära regressionslinjen. I det här exemplet har jag precis ritat en standardavvikelse nedan men den kan enkelt justeras till två om du vill.
Tolkning av en linjär regressionskanal
En standardavvikelse från "Linjär regressionslinje”Betyder att 68% av alla priser ingår inom dessa rader. Två standardavvikelser innebär att 95% av alla priser ingår mellan dessa rader. Jag använder en standardavvikelse.
- Köp Signal - Priset sjunker under "Nedre kanallinjen ” och en trend fortsätter.
- Sälj signal - Priset höjer sig över "Övre kanallinje ” och en trend fortsätter.
Om priset tillbringar en betydande tid utanför kanalen är det en tidig varning att a betydande trendomvändning kan vara nära.
Python -kod genomgång
Det första steget är att ladda de nödvändiga biblioteken och konfigurera din miljö.
importera datetime
importförfrågningar
importtidimportera numpy som np
importera pandor som pd
importera sjöfödda som sns
importera matplotlib.pyplot som pltfrån sklearn importdatauppsättningar, linear_model
från sklearn.metrics importera mean_squared_error, r2_score%matplotlib inline
Du behöver lite data att arbeta med. Jag skapade en funktion för att hämta marknadsdata från Coinbase Pro -börsen och returnera en Pandas -dataram.
def get_market_data (marknad, granularitet):
resp = requests.get ('https://api.pro.coinbase.com/products/' + market + '/candles? granularity =' + str (granularity))
om resp.status_code! = 200:
raise Exception (format (resp.json () ['meddelande']))
annan:
df = pd.DataFrame (resp.json (), kolumner = ['epok', 'låg', 'hög', 'öppen', 'stäng', 'volym'])
df = df.iloc [::-1] .reset_index ()
retur df
Hämtar de senaste 300 dagarna med Bitcoin -data från Coinbase Pro -utbytet.
df = get_market_data ('BTC-GBP', 86400)
Tar en topp på de första fem raderna av vår data ...
df.head ()
Visualisera våra data med en Seaborn regressionsplan.
sns.set (font_scale = 1.5)
plt.figur (figsize = (12,10))
sns.regplot (x = df.index, y = 'close', data = df, ci = None, color = 'r')
Låt oss nu lägga till vår linjära regressionskanal med en standardavvikelse.
sns.set (font_scale = 1.5)
plt.figur (figsize = (12,10))
rp = sns.regplot (x = df.index, y = 'close', data = df, ci = None, color = 'r')y_rp = rp.get_lines () [0] .get_ydata ()
x_rp = rp.get_lines () [0] .get_xdata ()
sns.lineplot (x = x_rp, y = y_rp + np.std (y_rp), färg = 'b')
sns.lineplot (x = x_rp, y = y_rp - np.std (y_rp), color = 'b')tsidx = pd.DatetimeIndex (pd.to_datetime (df ['epoch'], unit = 's'), dtype = 'datetime64 [ns]', freq = 'D')
rp.set_xticklabels (tsidx, rotation = 45)plt.xlabel ('')
plt.ylabel ('Pris')
plt.show ()
Vad säger detta oss?
Som du kan se och du förmodligen är medveten om har Bitcoin och kryptomarknaderna kraschat igen. Den här gången var det för att Elon sa att Tesla inte kommer att acceptera Bitcoin som betalningsmetod på grund av att den inte är miljövänlig! Jag menar att det inte är den enda anledningen till kraschen men det är det som satte igång saker. Ganska ansvarslöst men så här går det bara.
Baserat på grafen ovan med priserna stängande under "Nedre kanallinjen ” detta kan vara en köpsignal eller en tidig varning om en betydande trendomvändning. Allt beror verkligen på hur länge priserna ligger under gränsen. Det ser inte fruktansvärt lovande ut och jag tror att vi kanske kommer att ha några tuffa månader. Min personliga åsikt är att det kan bli mycket värre innan det blir bättre. Trenden kommer att fortsätta ner i kanske 6 månader eller så och sedan får vi se nästa tjur springa.
Allt är inte dåligt ...
Jag har handlat kryptor i över fyra år nu och har varit med om minst tre av fyra av dessa kraschar redan. Det verkar vara en årlig händelse efter ett långt tjurlopp. Varje gång studsar det ännu högre tillbaka. Jag är övertygad om att kryptovalutor och kryptohandel är här för att stanna. Vi behöver bara ha tålamod och klara stormen. Det finns dock några altmynt som går riktigt bra trots kraschen. Cardano (ADA) är till exempel riktigt bra alternativ och under £ 1 nu. Detta är definitivt ett att hålla i framtiden eftersom det potentiellt måste gå med i en toppvaluta.
Den kostnadsfria kryptobutiken för öppen källkod (“PyCryptoBot”) Som jag utvecklat går fortfarande bra trots marknadsförhållandena. Jag inrättade en Telegram -gruppchatt som är mycket aktiv med över 300 personer som chattar om boten och strategier. Du är välkommen att gå med och engagera dig.
Inbjudningslänken till gruppchatten är:
https://t.me/joinchat/09hYKfelbRY2MDNk
Google Colab
Jag har angett all koden för dig redan ovan men om du vill ha källkoden har jag skapat en anteckningsbok som enkelt kan köras i Google Colab.
- Gå till "https://colab.research.google.com"
- Klicka på fliken GitHub
- För "Ange en GitHub -URL eller sök efter organisation eller användare" ange "https://github.com/whittlem/colabnotebooks”Och tryck på enter
- Förråd: ”whittlem/colabnotebooks”, Gren:”huvudsakliga"
- Klicka på "LinearRegressionChannel.ipynp"
- Klicka på "Runtime"Från menyn, sedan"Kör alla"
Lycka till och jag hoppas att du har funnit detta användbart.
- '
- "
- aktiv
- ADA
- Alla
- tillgång
- BÄST
- Bitcoin
- Bot
- Tjurkörning
- Köp
- Cardano
- Cardano (ADA)
- kanaler
- koda
- coinbase
- Coinbase Pro
- Mynt
- råvara
- fortsätta
- Crash
- crypto
- Crypto Markets
- kryptohandel
- kryptovaluta
- Cryptocurrency-utbyten
- valutor
- CZ
- datum
- utveckla
- Tidig
- Effektiv
- Miljö
- utbyta
- Utbyten
- Firm
- Förnamn
- passa
- följer
- Fri
- FS
- fungera
- framtida
- GitHub
- Grupp
- GV
- här.
- Hög
- hålla
- Hur ser din drömresa ut
- How To
- HTTPS
- identifiera
- index
- institutioner
- intresse
- involverade
- IP
- IT
- delta
- inlärning
- Nivå
- LG
- linje
- LINK
- läsa in
- Lång
- maskininlärning
- marknad
- Marknader
- Medium
- Metrics
- modell
- månader
- erbjudanden
- öppet
- Yttrande
- Alternativet
- Övriga
- betalning
- Personer
- tryck
- pris
- Pro
- höjer
- forskning
- Körning
- Sök
- Värdepapper
- in
- So
- bo
- Storm
- Telegram
- Tesla
- källan
- tid
- topp
- handlare
- Handel
- Trender
- us
- volym
- inom
- Arbete
- år