Show/Hide Toolbars

Hitta kursvinnare - Hjälpmanual

Navigation: HkScript

FA-analys i HkScript

Scroll Föregående Topp Nästa Fler

I det här avsnittet beskriver vi hur HkScript kan använda fundamental analys och bolagens rapportinformation. Att kombinera fundamental och teknisk analys kan vara ett värdefullt sätt att hitta långsiktiga kursvinnare. Se komplett lista med funktionerna här: FA-Nyckeltal.

 

Bakgrund: Dataserier för vanlig kurs- och indikatordata
I HkScript körs scriptet en gång för varje bar. För ett diagram på 1 år så blir det ca 250 värden (bars) i ett vanligt dagschart.

Dataserier för Close eller t ex RSI och all annan indikatordata har samma längd 250.

 * Vid varje tillfälle kommer Close[0] visa aktuell slutkurs för den dagen.
 * Medan t ex föregående dag skrivs Close[-1].
 

För att visa en graf med stängningskursen skriver du: plot1[0] = Close[0];

 
FA-dataserier: Särskilda dataserier för Rapportdata

Dataserien för Rapportdata (FA-dataserie) har till skillnad från kurs- och indikatordata istället samma längd som antalet rapporter tillgängliga.
För ett diagram på 1 år är det normalt endast 4 st värden, dvs 4 rapporter. Obs ett rapportvärde visar alltid 12 månader med rullande kvartal.
Så när det finns 16 kvartalsrapporter är längden 16, och funktionen "get(0)" ger alltid det senaste rapportvärdet (t ex "Fa.Sales().get(0)").
* Vid varje tillfälle kommer Fa.Sales().get(0)visa senaste rapports Omsättning per aktie. (försäljning)
* För korrekt historisk backtesting och i enlighet med verkligheten finns historiska rapportvärden först samma dag som bolaget presenterat sin rapport - dvs inte sista dagen i respektive kvartal.
* All rapportdata anges som 12 månader rullande kvartal. Dvs 1 helt år, med ny info varje kvartal.
* Föregående rapports värde skrivs Fa.Sales().get(-1). (dvs den föregående rapportens 12 månader rullande kvartal)

 

För att visa en graf med aktuell Försäljning per aktie skriver du: plot1[0] = Fa.Sales().get(0);
 

Innehåll i FA-dataserier

Varje värde i en FA-dataserie innehåller ett helt rapportår, baserat på 4 kvartals sammanslagna data. Efter ett bokslut (Q4) så innehåller Fa.Sales().get(0)hela fjolårets omsättning per aktie. Dvs Q4+Q3+Q2+Q1.
Men ifall tidpunkten istället är efter Q1 (se tabell nedan) så innehåller Fa.Sales().get(0)i det fallet Q1 innevarande år plus Q4+Q3+Q2 föregående år.
Det här gör att alla värden blir jämförbara och att eventuella säsongsvariationer inte påverkar resultaten.
Se exempel nedan.

 
Exempel: Dagens datum är 30 april 2025 och bolagets Q1-rapport släpptes nyligen, den 20 april:

Funktion:

 Sales().get(0)

 Sales.get(-1)

 Sales.get(-4)

Slutkvartal (rullande 12m)

Q1-2025

Q4-2024

Q1-2024

Tillgänglig från (exempel)

2025-04-10

2025-02-10

2024-04-10

Startkvartal (rullande 12m)

Q2-2024

Q1-2024

Q2-2023

 

 

Matematiska funktioner

Du kan bearbeta dina dataserier enkelt med addition, division etc. genom att använda plustecken (+), divisionstecken (-) osv. Exempelvis så här: " plot1[0] = Fa.Sales().get(0) * 2" för att visa rapportvärde gånger två. (observera att decimaltal skrivs med punkt: '.')

 

Programmet innehåller även mer avancerade matematiska funktioner. Du kan hitta alla funktioner i Referensbiblioteket. Vill du exempelvis använda en funktion för att se årsvis snitt-tillväxt (%) under 5 år (för exemplet Sales), så anges: Fa.Sales().growthAvg(5 , "Y")

 

Exempel funktioner
Några ytterligare exempel:
if (Fa.PE().get(0) < 10)
 plot1[0] = 1; // Köp om PE är under 10
 
if (Fa.Sales().growth(1 , "Y") > 25)
 plot1[0] = 1; // Köp om Försäljningstillväxt senaste året > 25% ("1 Year")
 
if (Fa.Sales().growth(1 , "Q") > 20)
 plot1[0] = 1; // Köp om Försäljningstillväxt senaste kvartalet > 20% ("1 Quarter") - baserat på rullande 4 kvartal.
 
if ((Fa.PE().get(0) < 10) && (Close[0] > MA3(200)[0]))
 plot1[0] = 1; // Köp om PE är under 10 OCH Close är över MA200