Show/Hide Toolbars

Hitta kursvinnare - Hjälpmanual

Navigation: HkScript

Strategier i HkScript

Scroll Föregående Topp Nästa Fler

Strategi-skript i HkScript är ett nytt och mer flexibelt sätt att skapa, testa och utveckla handelsstrategier direkt med kod.
Funktionen kompletterar det befintliga, och enklare, verktyget i dialogen Skapa egna strategier och signaler i Hitta kursvinnare, men ger betydligt större frihet och kontroll för den som vill arbeta mer avancerat.
 

Med strategi-skript kan du på ett tydligt sätt beskriva dina regler för köp och sälj, kombinera indikatorer, införa egna stoppar och filter, samt skapa anpassad logik som annars inte är möjlig via den grafiska dialogen. Resultaten av strategi-skript används på exakt samma sätt som övriga strategier i programmet – de visas i listan över strategier, kan köras i tester, backtestas/optimeras och användas för signalgenerering på grafer eller i Urval/sök.

 

Grundprincip
Ett strategi-skript består normalt av logik för tre delar:

1.Köp- och säljsignaler – kan styra när strategin ska gå lång eller kort (ofta baserat på indikatorer). Det finns dock inget krav att använda "signaler" eftersom strategivillkor även kan anges på andra sätt.

2.Positioner och avslut – hanteras via funktioner i Strategy-objektet, t.ex. Strategy.EntryLong(), Strategy.CloseAll(), m.fl.

3.Hantering av stoppar och exits – t.ex. med Strategy.SetPriceStop() eller liknande.

Det går att skapa en fungerande strategi enbart med t ex Strategy.EntryLong() och Strategy.CloseAll(), dvs (2) och (3) ovan, men Hitta kursvinnare behåller även stödet för objektet Signal för tydlighet och för programmets övriga kompatibilitet. Det innebär att du kan kombinera signalbaserad logik med strategi-anrop i samma skript – t.ex. för signalgenerering på grafer eller i Urval/sök, eller för att behålla logik från konverterade strategier.
 
Skillnad mot grafiskt skapade strategier

Enklare strategier i Hitta kursvinnare kan skapas via dialogen Skapa egna strategier och signaler, där villkor, indikatorer och nivåer anges via ett användargränssnitt.
Samma logik kan nu uttryckas direkt i kod, vilket öppnar för fler möjligheter, till exempel:

oEgna beräkningar och variabler.

oVillkor som kombinerar flera indikatorer.

oAnpassade utträdesregler.

oDynamiska stoppar eller målnivåer.

Strategi-skript fungerar i programmet på samma sätt som strategierna skapade i grafiska gränssnittet.

Tips!

Gamla strategier och signaler kan enkelt konverteras till HkScript genom att högerklicka på dem i listan över strategier/signaler och välja Konvertera till script.

Köpa och sälja i strategi-skript
För att en strategi ska kunna genomföra affärer används funktionerna i objektet Strategy.

De mest grundläggande är:

Strategy.EntryLong() – öppnar en lång position (köp)

Strategy.EntryShort() – öppnar en kort position (sälj)

Strategy.CloseAll() – stänger alla öppna positioner
 

Dessa anrop kan placeras direkt i skriptets logik, vanligtvis styrda av villkor (eller "signaler").
 

Finns inte behov av signal-skript så behöver inte Signal användas – det räcker att anropa Strategy.EntryLong och Strategy.CloseAll vid rätt tillfälle.

 

Ett enkelt flöde kan dock se ut så här:

1.En köpsignal identifieras i logiken, t.ex. Signal.IsBuy().

2.När signalen ändras till köp (Signal.ChangedToBuy()) öppnas en position med Strategy.EntryLong().

3.När en sälj-signal uppstår (Signal.IsSell()), stängs positionen med Strategy.CloseAll().
 

Detta ger en tydlig struktur där signaler står för logiken (när något bör ske), medan strategin utför själva handeln.

I mer avancerade strategier kan du lägga till villkor för delavslut, korta positioner eller dynamiska stoppar.

För att kontrollera aktuell status används hjälpfunktioner som:

Strategy.IsClosed() – ingen öppen position

Strategy.IsLong() – en lång position är öppen

Strategy.IsShort() – en kort position är öppen

Dessa gör det enkelt att bygga sekventiell logik där strategin endast tar en ny position när den föregående har stängts, eller där olika exits kan hanteras beroende på positionstyp.
 
Exempelkod
Nedanstående exempel visar en enkel Stochastic-baserad strategi i HkScript, som köper/säljer vid vändning från översålda resp överköpta nivåer, och med en ATR-baserad stoppnivå:
 
if (StoS(14).crossAbove(20))
  Signal.SetBuy();
else if (StoS(14).crossBelow(80))
  Signal.SetSell();
// --- Entry ---
if (Strategy.IsClosed() && Signal.ChangedToBuy())
{
Strategy.EntryLong();
}
// --- Exit ---
if (Strategy.IsLong() && Signal.IsSell())
{
Strategy.CloseAll();
}
// ATR Stop
if (!Strategy.IsClosed())
{
local new_atr_stop = 2.5 * ATR(10)[0];
Strategy.SetPriceStop(High[0] - new_atr_stop);
}

Detta exempel illustrerar samspelet mellan signaler (Signal.SetBuy(), Signal.SetSell()) och strategi-funktioner (Strategy.EntryLong(), Strategy.CloseAll(), Strategy.SetPriceStop()). Genom att kombinera dessa kan du stegvis bygga mer avancerade och realistiska handelsmodeller.

Sammanfattning
Strategi-skript har fördelen att logik kan uttryckas fritt i kod och på så sätt flexibelt utveckla, testa och finjustera strategier.
För den som är van vid att skriva indikatorer och villkor i HkScript är övergången enkel – strategi-skript använder samma syntax och struktur, med tillägg av Strategy-funktionerna för att hantera positioner, avslut och stoppar.
 
Se alla funktioner i referensbiblioteket: Referenslista Strategi.