Files
mmd/__pycache__/signals.cpython-314.pyc

130 lines
23 KiB
Plaintext
Raw Normal View History

2026-05-26 22:21:27 +02:00
+
<16>j<>7<00><00>6a<02>R&t%0tRt^RIt^RIt^RIt^RIt^RIt^RIHtHt^RI H
t
^RI t ^RI HtHt]
!]4P"R, t]P&!]P)44t]P-4UUu/uF wrVP/R4'dKWbK" uppt]^k/t]^kRRltR R
ltR R R RRR/tRRRRRRRR/tR'RRlltR(RRlltR'RRllt R(RR llt!R'R!R"llt"R#R$lt#]$R%8Xd
]#!4R#R#uuppi))u<>
signals.py — C25 Signal Board & Reporting
Usage:
python3 signals.py # full signal board (last 7 days)
python3 signals.py top [--days 14] # top companies by mentions
python3 signals.py company NOVO-B # detail view for one company
python3 signals.py summary # quick one-liner per company
python3 signals.py buy # only budget/accessible + leveraged ETPs
N)<02>datetime<6D>timezone)<01>Path)<02>get_conn<6E>DBConnzc25.json<6F>_c<00>$<00>V^8<>dQhR\/#)<02><00>return)r)<01>formats"<22>*/home/hjess/Projects/MoneyMaker/signals.py<70> __annotate__r s<00><00><16><16><06><16>c<04><00>\4#)z4Return a DBConn wrapper. Schema is managed by db.py.)r<00>rr <00>get_dbrs
<00><00> <13>:<3A>rc<00>0<00>V^8<>dQhR\R\/#)r <00>tickerr
)<02>str<74>dict)r s"r r r #s<00><00><12><12><03><12><04>rc<04><00>V\9d\V,#\PV/4PRVR,4p\P!V4P
pVPR4pVPR^4pVf
RRRRR ^/pMIVR
8:d
RR RVR V/pM9VR 8:d
RR RVR V/pM)VR8:d
RRRVR V/pMVR8:d
RRRVR V/pM RRRVR V/pV\V&V# \ d RRRRR ^/pL i;i)uDHent analytikernes konsensus fra Yahoo Finance (cachet pr. kørsel).<2E> ticker_yahooz.CO<43>recommendationMean<61>numberOfAnalystOpinionsN<73>label<65>Ukendt<64>mean<61>countg<00>?uSTÆRK KØB 🟢<>@u KØB 🟢<> @u HOLD 🟡g@u
SÆLG 🔴uSTÆRK SÆLG 🔴)<07>_analyst_cache<68>C25<32>get<65>yf<79>Ticker<65>info<66> Exception)r<00> yf_tickerr%rr<00>results& r <00> analyst_recr)#s5<00><00> <0A><1E><1F><1D>f<EFBFBD>%<25>%<25><13><07><07><06><02>#<23>'<27>'<27><0E><06><15><0E>G<>I<EFBFBD> ?<3F><12> <09> <09>)<29>$<24>)<29>)<29><04><14><08><08>-<2D>.<2E><04><14><08><08>2<>A<EFBFBD>6<><05> <0F><<3C><1D>x<EFBFBD><16><14>w<EFBFBD><01>B<>F<EFBFBD> <11>S<EFBFBD>[<5B>G<EFBFBD>-?<3F>&<26>$<24>PW<50>Y^<5E>#_<>&<26> <11>S<EFBFBD>[<5B>G<EFBFBD>[<5B><16><14>w<EFBFBD>X]<5D>#^<5E>&<26> <11>S<EFBFBD>[<5B>G<EFBFBD>[<5B><06><04>g<EFBFBD>W\<5C>#]<5D>&<26> <11>S<EFBFBD>[<5B>G<EFBFBD>\<5C><16><14>w<EFBFBD>X]<5D>#^<5E>&<26>$+<2B>-@<40>&<26>$<24>PW<50>Y^<5E>#_<>&<26>$<24>N<EFBFBD>6<EFBFBD><1A> <11>M<EFBFBD><4D> <15>?<3F><19>8<EFBFBD>V<EFBFBD>T<EFBFBD>7<EFBFBD>A<EFBFBD>><3E><06>?<3F>s1<00>AC+<00>C+<00>'C+<00>7C+<00>C+<00>C+<00>+D<03>D<03>positiveu POSITIV ↑<>negativeu NEGATIV ↓<>neutral<61> NEUTRAL →<>budgetu#under 200 kr — kan købes direkte<74>
accessibleu#200-500 kr — kan købes direkte<74> expensiveu500-2000 kr — overvej ETP<54> inaccessibleuover 2000 kr — brug ETPc<00>R<00>V^8<>dQhR\R\R\\,/#)r <00>db<64>daysr
)r<00>int<6E>listr)r s"r r r Fs%<00><00>#<23>#<23>f<EFBFBD>#<23>C<EFBFBD>#<23><04>T<EFBFBD>
<EFBFBD>#rc<04><><00>\\P!44VR,,
pVPRV34P4pVUu.uFp\ V4NK up#uupi)z?Return per-company aggregated signal stats for the last N days.<2E><>QaMSELECT
s.ticker,
COUNT(*) AS mention_articles,
SUM(s.mention_count) AS total_mentions,
AVG(CASE WHEN s.sentiment='positive' THEN s.sentiment_score
WHEN s.sentiment='negative' THEN -s.sentiment_score
ELSE 0 END) AS avg_sentiment,
SUM(CASE WHEN s.sentiment='positive' THEN 1 ELSE 0 END) AS pos_count,
SUM(CASE WHEN s.sentiment='negative' THEN 1 ELSE 0 END) AS neg_count,
SUM(CASE WHEN s.sentiment='neutral' THEN 1 ELSE 0 END) AS neu_count,
AVG(a.source_count) AS avg_sources,
MAX(COALESCE(s.signal_score, 0)) AS max_signal,
SUM(COALESCE(s.alert, 0)) AS alert_count
FROM article_signals s
JOIN articles a ON a.slug = s.article_slug
WHERE s.analyzed_at >= ?
GROUP BY s.ticker
ORDER BY max_signal DESC, mention_articles DESC<53>r5<00>time<6D>execute<74>fetchallr)r3r4<00>cutoff<66>rows<77>rs&& r <00> company_statsr@Fs_<00><00> <10><14><19><19><1B> <1D><04>u<EFBFBD> <0C> ,<2C>F<EFBFBD> <0A>:<3A>:<3A> ><3E>$
<10> <09>' <06>(<0F>h<EFBFBD>j<EFBFBD>) <09>*"<22> "<22>T<EFBFBD><01>D<EFBFBD><11>G<EFBFBD>T<EFBFBD> "<22>"<22><> "<22><00>A)c <00>^<00>V^8<>dQhR\R\R\R\\,/#)r r3rr4r
)rrr5r6r)r s"r r r as,<00><00>#<23>#<23><16>#<23><13>#<23>C<EFBFBD>#<23><14>d<EFBFBD><1A>#rc<04><><00>\\P!44VR,,
pVPRW34P4pVUu.uFp\ V4NK up#uupi)z0Return individual articles mentioning a company.r8a<>SELECT
a.title, a.slug, a.start_date, a.source_count,
s.sentiment, s.sentiment_score, s.mention_count,
s.signal_score, s.alert, s.claude_reasoning,
s.momentum_dir, s.momentum_pct_5d, s.coverage_spread
FROM article_signals s
JOIN articles a ON a.slug = s.article_slug
WHERE s.ticker = ? AND s.analyzed_at >= ?
ORDER BY COALESCE(s.signal_score,0) DESC, a.source_count DESCr9)r3rr4r=r>r?s&&& r <00>company_articlesrDasa<00><00> <10><14><19><19><1B> <1D><04>u<EFBFBD> <0C> ,<2C>F<EFBFBD> <0A>:<3A>:<3A> L<01>
<10><18> <06><0F>h<EFBFBD>j<EFBFBD> <09>"<22> "<22>T<EFBFBD><01>D<EFBFBD><11>G<EFBFBD>T<EFBFBD> "<22>"<22><> "rAc<00>(<00>V^8<>dQhR\RR/#<00>r r4r
N<>r5)r s"r r r ys<00><00>Q <0C>Q <0C>S<EFBFBD>Q <0C><14>Q rc<00><><00>\4p\W4pVP4V'g\RV R24R#\P
!\ P4PR4p^Bp\RRV, 24\RV 24\RV, 4\RV R24VEF@pVR ,p\PV/4pVPR
V4pVPR R 4p VPR R 4p
VPR.4p VR,;'g^p \PV R8<>dRM
V RG8dRMRR4p VR,p\VR,;'g^4pVPR4;'g^pVPR4;'g^p\V4pV R8<>pV RG8pVR,RJ;'d VR,R8*pVR,RJ;'d VR,R8<>pV'd V'gV'd V'dRpM%V'd V'gV'd V'dRpMRpV^8dRMR pVR!8<>d R"VR# R$2pM%VR%8<>d R&VR# R$2pMV^8<>d R'VR# R$2pMR(VR# R$2pR pV 'df\V 4^8<>dV\R)V 4V ^,4p\R*V 4V ^,4pR+VR , R,VR , R-VR., R$2pV'dR/V R02MR p\R1V R-V R2R3\!^V^,
\V4,
\V4,
4, 24\R4V R5\"PW<>4 24\R6VR7,R8 R9VR:, 24\R;V R<V R=V R>V 24\R?V 24\R@V V V 24\RAR3V, 24\4EKC \RB4\RC4\RD4\RE4\RF4\4R#)HzIngen signaler de seneste u dage. Kør: makeNz%d %b %Y %H:%M<>
<EFBFBD>═u: MONEYMAKER · Hvad sker der med dine C25 aktier? · u (baseret på de seneste z dage med nyheder)
r<00>name<6D>price_dkk_approx<6F>?<3F>tier<65> leveraged<65> avg_sentiment皙<74><E79A99><EFBFBD><EFBFBD><EFBFBD>?r*r+r,r-<00>mention_articles<65> avg_sources<65>
max_signal<EFBFBD> alert_countrrru!✅ Nyheder og eksperter er ENIGEu&⚠️ Nyheder og eksperter er UENIGEu 〰️ Intet klart signal endnuu* ⚠️ Kun få mediekilder — usikkert<72><00><00>?u🔥 STÆRKT (<28>.2f<EFBFBD>)皙<><E79A99><EFBFBD><EFBFBD><EFBFBD>?u📊 Moderat (u🔍 Svagt (u⬜ Ingen (c3<00>D"<00>TFqR,R8XgKVx<00>K R#5i)<03> direction<6F>longNr<00><02>.0<EFBFBD>es& r <00> <genexpr><3E>%print_signal_board.<locals>.<genexpr><3E>s<00><00><00>H<>t<EFBFBD>!<21><1B>~<7E><16>/G<>A<EFBFBD>A<EFBFBD>t<EFBFBD><74><00> <01>
c3<00>D"<00>TFqR,R8XgKVx<00>K R#5i)r\<00>shortNrr^s& r rarb<00>s<00><00><00>I<>t<EFBFBD>!<21><1B>~<7E><17>/H<>A<EFBFBD>A<EFBFBD>t<EFBFBD>rcu
│ ETP (gearing 3x): KØB=u SÆLG=<3D> (<28>exchangeu
│ ⚡ u alert(s) udløst!u ┌─ z) <20>─u │ Pris: ca. <20> kr · u │ Eksperter (rz>2z): ru │ Nyheder (z art): u · gnsn. z mediekilderu │ Samlet vurdering: u │ Signalstyrke: u └z Forklaring:uC Eksperter = finansanalytikere der følger aktien (Yahoo Finance)zJ Nyheder = hvad medierne skriver, analyseret med AI (FinBERT + Claude)uQ Signal = kombineret score: nyhedssentiment × kildedækning × kursmomentumuR ETP = børshandlet certifikat — du køber 3x gearing uden at eje aktien皙<6E><E79A99><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)rr@<00>close<73>printr<00>nowr<00>utc<74>strftimer!r"<00> SENTIMENT_DAr5r)<00>len<65>next<78>max<61>TIER_DA)r4r3r><00>now_str<74>Wr?r<00>companyrK<00>pricerN<00>etps<70>avg_s<5F>sent_da<64>n_art<72>n_src<72>sig<69>alerts<74>rec<65> news_bull<6C> news_bear<61>ana_bull<6C>ana_bear<61> agreement<6E> coverage_warn<72>sig_txt<78>etp_info<66>long_e<5F>short_e<5F>
alerts_strs& r <00>print_signal_boardr<64>ys<00><00> <11>8<EFBFBD>B<EFBFBD> <18><12> "<22>D<EFBFBD><06>H<EFBFBD>H<EFBFBD>J<EFBFBD> <0F> <0A>*<2A>4<EFBFBD>&<26>0A<30>B<>C<><0E><16>l<EFBFBD>l<EFBFBD>8<EFBFBD><<3C><<3C>(<28>1<>1<>2C<32>D<>G<EFBFBD>
<EFBFBD>A<EFBFBD> <09>B<EFBFBD>u<EFBFBD>Q<EFBFBD>w<EFBFBD>i<EFBFBD>.<2E><19> <09> F<>w<EFBFBD>i<EFBFBD>
P<EFBFBD>Q<> <09>U<EFBFBD>1<EFBFBD>W<EFBFBD>I<EFBFBD><17> <09> &<26>t<EFBFBD>f<EFBFBD>,@<40>
A<EFBFBD>B<> <11><01><13>H<EFBFBD>+<2B><06><15>'<27>'<27>&<26>"<22>%<25><07><19>+<2B>+<2B>f<EFBFBD>f<EFBFBD>-<2D><04><19>+<2B>+<2B>0<>#<23>6<><05><19>+<2B>+<2B>f<EFBFBD>c<EFBFBD>*<2A><04><19>+<2B>+<2B>k<EFBFBD>2<EFBFBD>.<2E><04><13>O<EFBFBD>$<24>)<29>)<29><01><05><1E>"<22>"<22><1F>#<23>+<2B>J<EFBFBD>%<25>$<24>,<2C>J<EFBFBD>I<EFBFBD> <19>
<EFBFBD><07><14>&<26>'<27><05><15>a<EFBFBD> <0A>&<26>+<2B>+<2B>!<21>,<2C><05><13>%<25>%<25> <0C>%<25>*<2A>*<2A><11><03><13>%<25>%<25> <0A>&<26>+<2B>+<2B>!<21><06><1A>&<26>!<21><03><1A>C<EFBFBD>K<EFBFBD> <09><19>D<EFBFBD>L<EFBFBD> <09><17><06>K<EFBFBD>t<EFBFBD>+<2B>B<>B<><03>F<EFBFBD> <0B>s<EFBFBD>0B<30><08><17><06>K<EFBFBD>t<EFBFBD>+<2B>B<>B<><03>F<EFBFBD> <0B>s<EFBFBD>0B<30><08> <15>(<28> <09>h<EFBFBD>;<3B>I<EFBFBD><17>H<EFBFBD>)<29><08>@<40>I<EFBFBD>:<3A>I<EFBFBD>IN<01>PQ<50> <09>D<>WY<57> <0A> <0F>#<23>:<3A>^<5E>C<EFBFBD><03>9<EFBFBD>A<EFBFBD>#><3E><17> <10>C<EFBFBD>Z<EFBFBD>^<5E>C<EFBFBD><03>9<EFBFBD>A<EFBFBD>#><3E><17> <10>1<EFBFBD>W<EFBFBD>^<5E>C<EFBFBD><03>9<EFBFBD>A<EFBFBD>#><3E><17>%3<>C<EFBFBD><03>9<EFBFBD>A<EFBFBD>#><3E><17><16><08> <0F>C<EFBFBD><04>I<EFBFBD><11>N<EFBFBD><1A>H<>t<EFBFBD>H<>4<EFBFBD>PQ<50>7<EFBFBD>S<>F<EFBFBD><1A>I<>t<EFBFBD>I<>4<EFBFBD>PQ<50>7<EFBFBD>S<>G<EFBFBD>:<3A>6<EFBFBD>(<28>;K<>:L<>H<EFBFBD>U\<5C>]e<>Uf<55>Tg<54>gj<67>kq<6B>r|<7C>k}<7D>j~<7E>~<>A<02>H<EFBFBD>CI<43>}<7D>V<EFBFBD>H<EFBFBD>,><3E>?<3F>r<EFBFBD>
<EFBFBD> <0A> <09>$<24><16>s<EFBFBD>6<EFBFBD>(<28>"<22>U<EFBFBD>3<EFBFBD>q<EFBFBD>!<21>A<EFBFBD>#<23>c<EFBFBD>$<24>i<EFBFBD>-<2D><03>F<EFBFBD> <0B>:S<>3T<33>-T<>,U<>V<>W<> <0A>.<2E>u<EFBFBD>g<EFBFBD>Y<EFBFBD>w<EFBFBD>{<7B>{<7B>4<EFBFBD>?V<>>W<>X<>Y<> <0A>"<22>3<EFBFBD>w<EFBFBD><<3C><02>"3<>6<EFBFBD>#<23>g<EFBFBD>,<2C><1E>H<>I<> <0A> <20><15><07>y<EFBFBD><17> <09><1C>e<EFBFBD>W<EFBFBD>L<EFBFBD>Yf<59>Xg<58>h<>i<> <0A>*<2A>9<EFBFBD>+<2B>6<>7<> <0A>*<2A>7<EFBFBD>)<29>H<EFBFBD>:<3A>j<EFBFBD>\<5C>J<>K<> <0A><05>e<EFBFBD>A<EFBFBD>g<EFBFBD>Y<EFBFBD><1F> <20> <0A><07>u<12>x
<EFBFBD>M<EFBFBD><1B> <09> O<>Q<> <09> V<>X<> <09> ]<5D>_<> <09> ^<5E>`<60> <09>Grc<00>4<00>V^8<>dQhR\R\RR/#)r rr4r
N)rr5)r s"r r r <00>s!<00><00>50<>50<><13>50<>C<EFBFBD>50<><14>50rc <00>.a<00>SP4oS\9d>\RS RRP\ \P 444 24R#\ 4p\S,p\V3Rl\W!44R4p\VSV4pVP4\S4pVPRR4pVPRR4pVPR.4p ^Bp
\R R
V
, 24\R VR , R S R24\RVR, RV R\PW<>4 24V 'dHV FAp V R,R8XdRMRp \RV RV R , RV R, RV R, 24KC \RV
, 4\R4\RVR , R!VR", R#24\R$V R%24V'g\R&4R#VR',;'g^p \PV R(8<>dR)M
V RK8dR*MR+R,4p\RV R!VR-, R.24\R/VR0, R1VR2, R3VR4, 24\R54\R RV
, 24VR6,F<>p\PVR7,R4pVPR84;'g^pVPR94;'g^pV^8dR:MR,pVR;8<>dR<VR= 2MVR>8<>dR?VR= 2MR@VR= 2p\RAVRB,RC, 24\RDVRE RFV RGV V 24VPRHR,4pV'gK<>VRL9gK<>\RIVRJ, 24K<> R#)MzUkendt ticker: u. Tilgængelige: z, Nc3<00>F<"<00>TFqR,S8XgKVx<00>K R#5i)rNr)r_r?rs& <20>r ra<00>'print_company_detail.<locals>.<genexpr><3E>s<00><><00><00>P<>6<>!<21>H<EFBFBD>+<2B><16>:O<>A<EFBFBD>A<EFBFBD>6<><36><00>!<01>
!rLrMrNrOrIrJ<00> rKrfrYz
Sektor: <20>sectoru
· ca. rir\r]u KØB (long)u SÆLG (short)z ETP z: <20> (ru) — rgrhz
Hvad siger eksperterne?<3F> ru · ru analytikere følger aktienz#
Hvad siger nyhederne de seneste z dage?z Ingen nyheder fundet endnu.rPrQr*r+r,rVrRz artiklerz Positiv: <20> pos_countu · Negativ: <20> neg_countu · Neutral: <20> neu_countz
Enkeltartikler::N<>N<> sentiment<6E> signal_score<72> source_countu ⚠️ få kilderrWu🔥rXrZu📊u⬜z
<20>title:N<>>Nz Sentiment: z<14z
Signal: z
Kilder: <20>claude_reasoningz Claude: :N<>PNrj)z (no API key)rV)<0F>upperr!rl<00>join<69>sorted<65>keysrrrr@rDrkr)r"rtrp)rr4r3rw<00>stats<74>artsr<73>rxrNryrvr`rrzr{<00>a<>sent_da2r~r}<00>low_covr<76><00>reasonsf& r <00>print_company_detailr<6C><00>sg<00><><00> <13>\<5C>\<5C>^<5E>F<EFBFBD> <0A>S<EFBFBD><18> <0A><0F><06>x<EFBFBD>'8<><14><19><19>6<EFBFBD>#<23>(<28>(<28>*<2A>CU<43>9V<39>8W<38>X<>Y<><0E><14>h<EFBFBD>B<EFBFBD><11>&<26>k<EFBFBD>G<EFBFBD><12>P<>}<7D>R<EFBFBD>6<>P<>RV<52>W<>E<EFBFBD><1E>r<EFBFBD>6<EFBFBD>4<EFBFBD>0<>D<EFBFBD><06>H<EFBFBD>H<EFBFBD>J<EFBFBD> <17><06> <1F>C<EFBFBD> <13>K<EFBFBD>K<EFBFBD>*<2A>C<EFBFBD> 0<>E<EFBFBD> <13>K<EFBFBD>K<EFBFBD><06><03> $<24>D<EFBFBD> <13>K<EFBFBD>K<EFBFBD> <0B>R<EFBFBD> (<28>D<EFBFBD>
<EFBFBD>A<EFBFBD> <09>B<EFBFBD>u<EFBFBD>Q<EFBFBD>w<EFBFBD>i<EFBFBD>.<2E><19> <09>B<EFBFBD>w<EFBFBD>v<EFBFBD><EFBFBD><1F>s<EFBFBD>6<EFBFBD>(<28>!<21>
,<2C>-<2D> <09>J<EFBFBD>w<EFBFBD>x<EFBFBD>(<28>)<29><1A>E<EFBFBD>7<EFBFBD>)<29>G<EFBFBD>K<EFBFBD>K<EFBFBD>PT<50>D[<5B>C\<5C>
]<5D>^<5E> <0B><15>A<EFBFBD>%&<26>{<7B>^<5E>v<EFBFBD>%=<3D>M<EFBFBD>?<3F>E<EFBFBD> <11>F<EFBFBD>5<EFBFBD>'<27><12>A<EFBFBD>f<EFBFBD>I<EFBFBD>;<3B>b<EFBFBD><11>8<EFBFBD><1B> <0A>V<EFBFBD>A<EFBFBD>j<EFBFBD>M<EFBFBD>?<3F>S<> T<><16>
<EFBFBD>U<EFBFBD>1<EFBFBD>W<EFBFBD>I<EFBFBD><17> <09> '<27>)<29> <09>D<EFBFBD><13>W<EFBFBD><1C><0E>f<EFBFBD>S<EFBFBD><17>\<5C>N<EFBFBD>2M<32>
N<EFBFBD>O<> <09> 0<><14><06>f<EFBFBD>
=<3D>><3E> <10> <0A>/<2F>1<><0E><13>O<EFBFBD>$<24>)<29>)<29><01>E<EFBFBD><1A><1E><1E><1B>c<EFBFBD>k<EFBFBD>
<EFBFBD>e<EFBFBD>d<EFBFBD>l<EFBFBD>
<EFBFBD> <09>TV<54><06>G<EFBFBD>
<EFBFBD>D<EFBFBD><17> <09><16><05>&8<> 9<>:<3A>)<29>
D<EFBFBD>E<> <09>M<EFBFBD>%<25> <0B>,<2C>-<2D>_<EFBFBD>U<EFBFBD>;<3B>=O<><P<>P_<50>`e<>fq<66>`r<>_s<5F>
t<EFBFBD>u<> <09> <1F>!<21> <09>B<EFBFBD>u<EFBFBD>Q<EFBFBD>w<EFBFBD>i<EFBFBD>.<2E><19> <11>#<23>Y<EFBFBD>Y<EFBFBD><01><1F>#<23>#<23>A<EFBFBD>k<EFBFBD>N<EFBFBD>C<EFBFBD>8<><08><14>5<EFBFBD>5<EFBFBD><1E>(<28>-<2D>-<2D>A<EFBFBD><03><14>5<EFBFBD>5<EFBFBD><1E>(<28>-<2D>-<2D>A<EFBFBD><05>,1<>A<EFBFBD>I<EFBFBD>(<28>2<EFBFBD><07>'*<2A>c<EFBFBD>z<EFBFBD>T<EFBFBD>#<23>c<EFBFBD><19>#<23>C<EFBFBD>SV<53>J<EFBFBD>$<24>s<EFBFBD>3<EFBFBD>i<EFBFBD>8H<38>^a<>be<62>fi<66>aj<61>\k<><07> <0A><04>Q<EFBFBD>w<EFBFBD>Z<EFBFBD><03>_<EFBFBD>%<25>&<26>'<27> <0A><0F><08><13>~<7E>Z<EFBFBD><07>y<EFBFBD>
<EFBFBD>5<EFBFBD>'<27>RY<52>QZ<51>[<5B>\<5C><12><15><15>)<29>2<EFBFBD>.<2E><06> <11>6<EFBFBD>f<EFBFBD>$8<>8<> <11>L<EFBFBD><16><03><1B> <0A>.<2E> /<2F>rc<00>(<00>V^8<>dQhR\RR/#rFrG)r s"r r r s<00><00>34<>34<>C<EFBFBD>34<><04>34rc <04>~a <0C>\4p\W4pVP4^Bp\RRV, 24\RV R24\RV, R24VUu.uF8p\P VR,/4P R4R9gK6VNK: ppVUu.uF9p\P VR,/4P R4'gK7VNK; ppRRR llpV'd?\R
4\R R V, 24\ VR RR7F pV!V4K V'd<>\R4\R R V, 24\ VRRR7F<>pVR,pVR,;'g^p \P V/4P R.4p
V
'dLV ^8<>dRMRo \V 3RlV
4V
^,4p V!VRV R, RS RV R, 2R7K<>V!V4K<> V'gV'g\R4R#R#R#uupiuupi)u?Vis kun aktier med positivt signal — direkte køb og via ETP.rIrJu+ HVAD KAN DET BETALE SIG? · de seneste z dagerrNrOc<00>4<00>V^8<>dQhR\R\RR/#)r r?<00>noter
N)rr)r s"r r <00>'print_buy_signals.<locals>.__annotate__s!<00><00><10><10>t<EFBFBD><10>3<EFBFBD><10><04>rc<00><00>VR,p\PV/4pVR,;'g^p\PVR8<>dRM
VR8dRMRR4p\V4pVPRR4pVPR 4;'g^p\ R
VPR R4R R VR R24\ RVR, 24\ RV RVR R24V'd\ RV 24\ 4R#)rrPrQr*r+r,rVrLrMrTr<>rKz<30<33> z>6z krz Eksperter: rz Nyheder: z (signal: rXrYr<>Nrj)r!r"rpr)rl) r?r<>r<00>crz<00>sentr<74>rxr~s && r <00>fmt<6D>print_buy_signals.<locals>.fmts<><00><00><12>8<EFBFBD><1B><06><14><17><17><16><12>$<24><01><12>?<3F>#<23>(<28>(<28>q<EFBFBD><05><1D>!<21>!<21><1F>#<23>+<2B>J<EFBFBD>%<25>$<24>,<2C>J<EFBFBD>I<EFBFBD>XZ<58>\<01><04><1C>V<EFBFBD>$<24><03><12><15><15>)<29>3<EFBFBD>/<2F><05><12><15><15>|<7C>$<24>)<29>)<29><01><03> <0A><02>1<EFBFBD>5<EFBFBD>5<EFBFBD><16><02>#<23>C<EFBFBD>(<28><01>%<25><02><1A>3<EFBFBD>7<>8<> <0A><0F><03>G<EFBFBD> <0C>~<7E>.<2E>/<2F> <0A><0F><04>v<EFBFBD>[<5B><13>S<EFBFBD> <09><11>;<3B><<3C> <0F> <11>D<EFBFBD><14><06>-<2D> <20> <0A>ru1 Du kan købe disse DIREKTE (overkommelig pris):r<>rhc<00>:<00>\VR,;'g^4#<00>rP<00><01>abs<62><01>xs&r <00><lambda><3E>#print_buy_signals.<locals>.<lambda>&s<00><00>c<EFBFBD>!<21>O<EFBFBD>2D<32>2I<32>2I<32><01>.JrT)<02>key<65>reverseu= Via WisdomTree ETP (3x gearing — højere risiko/gevinst):c<00>:<00>\VR,;'g^4#r<>r<>r<>s&r r<>r<>,s<00><00>s<EFBFBD>1<EFBFBD>_<EFBFBD>3E<33>3J<33>3J<33><11>/KrrPr]rec3<00>F<"<00>TFqR,S8XgKVx<00>K R#5i)r\Nr)r_r`r\s& <20>r ra<00>$print_buy_signals.<locals>.<genexpr>2s<00><><00><00>K<>t<EFBFBD>!<21><1B>~<7E><19>/J<>A<EFBFBD>A<EFBFBD>t<EFBFBD>r<EFBFBD>zETP: r<>u 3x) på rg)r<>u" Ingen signaler endnu. Kør: makeN)r.r/)rV)rr@rkrlr!r"r<>rr) r4r3r>rvr?<00>direct<63>via_etpr<70>rrzry<00>etpr\s & @r <00>print_buy_signalsr<73>s<><00><><00> <11>8<EFBFBD>B<EFBFBD> <18><12> "<22>D<EFBFBD><06>H<EFBFBD>H<EFBFBD>J<EFBFBD>
<EFBFBD>A<EFBFBD> <09>B<EFBFBD>u<EFBFBD>Q<EFBFBD>w<EFBFBD>i<EFBFBD>.<2E><19> <09> 7<><04>v<EFBFBD>U<EFBFBD>
C<EFBFBD>D<> <09>U<EFBFBD>1<EFBFBD>W<EFBFBD>I<EFBFBD>R<EFBFBD>.<2E><19><1D> b<><14>A<EFBFBD><13><17><17><11>8<EFBFBD><1B>b<EFBFBD>!9<>!=<3D>!=<3D>f<EFBFBD>!E<>Ia<49>!a<>a<EFBFBD>a<EFBFBD><14>F<EFBFBD> b<><1E>L<>$<24>Q<EFBFBD>#<23>'<27>'<27>!<21>H<EFBFBD>+<2B>r<EFBFBD>":<3A>"><3E>"><3E>{<7B>"K<>q<EFBFBD>q<EFBFBD>$<24>G<EFBFBD>L<><10> <0E> <0A>A<>B<> <0A><02>5<EFBFBD><11>7<EFBFBD>)<29>n<EFBFBD><1D><17><06>$J<>TX<54>Y<>A<EFBFBD> <0F><01>F<EFBFBD>Z<01><0F> <0A>M<>N<> <0A><02>5<EFBFBD><11>7<EFBFBD>)<29>n<EFBFBD><1D><17><07>%K<>UY<55>Z<>A<EFBFBD><16>x<EFBFBD>[<5B>F<EFBFBD><16><EFBFBD>'<27>,<2C>,<2C>1<EFBFBD>E<EFBFBD><18>W<EFBFBD>W<EFBFBD>V<EFBFBD>R<EFBFBD>(<28>,<2C>,<2C>[<5B>"<22>=<3D>D<EFBFBD><13>&+<2B>q<EFBFBD>j<EFBFBD>F<EFBFBD>g<EFBFBD> <09><1A>K<>t<EFBFBD>K<>T<EFBFBD>RS<52>W<EFBFBD>U<><03><13>A<EFBFBD>e<EFBFBD>C<EFBFBD><08>M<EFBFBD>?<3F>"<22>Y<EFBFBD>K<EFBFBD>y<EFBFBD><13>Z<EFBFBD><1F>HY<48>Z<>[<5B><13>A<EFBFBD><06>[<01> <12>'<27> <0A>2<>3<>"<22>6<EFBFBD><36>Oc<01><>Ls<00>&3H5<04>H5<04>*4H:<04>#H:c<00><00>V^8<>dQhRR/#)r r
Nr)r s"r r r ?s<00><00><1E><1E>d<EFBFBD>rc<00><><00>\P!RR7pVPRR7pVPRRR7pVP R\
^R7VPR R
R7pVP R 4VP R\
^R7VPR R R7VPRRR7pVP R\
^R7VPRRR7pVP R\
^R7VP 4pVPR9d\VR^4p\V4R#VPR8Xd\VP4R#VPR 8Xd$\VP\VR^44R#VPR8Xd\VP4R#VPR 8Xd\^4R#R#)zC25 signal board)<01> description<6F>cmd)<01>dest<73>topzTop companies by mention count)<01>helpz--days)<02>type<70>defaultrwzDetail view for one companyr<00>summaryzOne-liner per company<6E>buyz%Affordable + leveraged ETP candidates<65>boardzFull signal boardNr4)Nr<4E>)<0E>argparse<73>ArgumentParser<65>add_subparsers<72>
add_parser<EFBFBD> add_argumentr5<00>
parse_argsr<EFBFBD><00>getattrr<72>r4r<>rr<>)<08>parser<65>sub<75>p_top<6F>p_co<63>p_buy<75>p_board<72>argsr4s r <00>mainr<6E>?s<><00><00> <15> $<24> $<24>1C<31> D<>F<EFBFBD> <13> "<22> "<22><05> "<22> .<2E>C<EFBFBD> <0F>N<EFBFBD>N<EFBFBD>5<EFBFBD>'G<>N<EFBFBD> H<>E<EFBFBD> <09><16><16>x<EFBFBD>c<EFBFBD>1<EFBFBD><16>5<> <0E>><3E>><3E>)<29>*G<>><3E> H<>D<EFBFBD><08><15><15>h<EFBFBD><1F><08><15><15>h<EFBFBD>S<EFBFBD>"<22><15>5<><07>N<EFBFBD>N<EFBFBD>9<EFBFBD>#:<3A>N<EFBFBD>;<3B> <0F>N<EFBFBD>N<EFBFBD>5<EFBFBD>'N<>N<EFBFBD> O<>E<EFBFBD> <09><16><16>x<EFBFBD>c<EFBFBD>1<EFBFBD><16>5<><11>n<EFBFBD>n<EFBFBD>W<EFBFBD>+><3E>n<EFBFBD>?<3F>G<EFBFBD> <0B><18><18><18><03>Q<EFBFBD><18>7<> <11> <1C> <1C> <1E>D<EFBFBD> <0B>x<EFBFBD>x<EFBFBD>?<3F>"<22><16>t<EFBFBD>V<EFBFBD>Q<EFBFBD>'<27><04><1A>4<EFBFBD> <20> <0A><18><18>U<EFBFBD> <1A><1A>4<EFBFBD>9<EFBFBD>9<EFBFBD>%<25> <0A><18><18>Y<EFBFBD> <1E><1C>T<EFBFBD>[<5B>[<5B>'<27>$<24><06><02>*C<>D<> <0A><18><18>U<EFBFBD> <1A><19>$<24>)<29>)<29>$<24> <0A><18><18>Y<EFBFBD> <1E><1A>1<EFBFBD><1D>
r<00>__main__c<00><><00>V^8<>dQh/^\9d\\\3,;R&^\9d\\\3,;R&#)r r!r )<03>__conditional_annotations__rr)r s"r r r sA<00><00> <04> <04>0T<01>S<>T<EFBFBD>#<23>t<EFBFBD>)<29>_<EFBFBD>S<>1 <04>4%<25>$<24><04>S<EFBFBD>$<24>Y<EFBFBD><0F>$<24>5 r)<01>)<01>)&r<><00>__doc__<5F>sys<79>jsonr:r<><00>sqlite3rr<00>pathlibr<00>yfinancer#r3rr<00>__file__<5F>parent<6E>C25_PATH<54>loads<64> read_text<78>_c25_raw<61>items<6D>
startswithr!r rr)rprtr@rDr<>r<>r<>r<><00>__name__r )<03>k<>vr<76>s00@r <00><module>r<>s<00><><01> <04> <0B> <0B> <0B><0F><0E>'<27><18><15><1F> <0F><08>><3E> <20> <20>:<3A> -<2D><08> <0F>:<3A>:<3A>h<EFBFBD>(<28>(<28>*<2A> +<2B><08>)1<><1E><1E>)9<>S<>)9<><14><11><11><1C><1C>c<EFBFBD>AR<41><04><01><04>)9<>S<><03>S<>"$<24><0E>$<24><16>
<12>,<1C>]<5D>J<EFBFBD> <0A>y<EFBFBD>R_<52>`<60> <0C> <0C>9<><10>9<><0F>2<><12>/<2F>  <02><07>#<23>6#<23>0Q <0C>h50<>p34<>t<1E>D <0C>z<EFBFBD><19><08>F<EFBFBD><1A><>Q
Ts <00>D<06>#D