Indicatoren bouwen? Doe het zelf met TA-script!
TA-script is een jonge programmeertaal (begin 2006) om zelf indicatoren en handelssystemen te programmeren. Op dit moment is deze programmeertaal standaard aanwezig in de softwareprogramma’s: Wall Street Professional, Alex Pro en de TA-module van Alex Advanced Plus. TA-script is een programmeertaal voor het maken van indicatoren en handelssystemen en is vooral bedoeld voor hen die zelf systemen willen ontwikkelen. Hebt u die ambitie niet, maar bent u wel geïnteresseerd in handelssystemen, dan kunt u van de TA-script website www.ta-script.com ook heel eenvoudig kant-en-klare systemen overnemen.
Qua mogelijkheden is TA-script vergelijkbaar met EasyLanguage, de programmeertaal van het bekende Amerikaanse pakket TradeStation; TA-script en EasyLanguage zijn echter niet compatibel. TA-script onderscheidt zich van andere TA-ontwikkeltalen door zijn snelheid en doelgerichte structuur. Hierdoor kunnen ook gecompliceerde systemen geoptimaliseerd worden zonder extreem lange wachttijden. In 2007 is TA-script uitgebreid met de speciale ColorBars functie om de kleur van een koersbar te kunnen koppelen aan bijv. bepaalde trading-condities. Tevens zijn de grafische mogelijkheden nog uitgebreider en zijn nu ook stop- en limietorders te backtesten.
Begin eenvoudig
Laten we eens beginnen met een eenvoudige opgave. We willen een indicator die de volatiliteit bepaalt door het verschil tussen hoog en laag te nemen. Verder willen we van dit verschil nog een 30-daags MA (Voortschrijdend Gemiddelde) berekenen.
{- Filename: High-Low volatility -}
var
sBarSize: TSeries;
begin
sBarSize := SubtractSeries(High, Low);
CreateLine(sBarSize).Color := clLime;
CreateLine(MA(sBarSize, maSimple,
30)).Color := clRed;
end. >
In dit script wordt eerst een variabele sBarSize gedeclareerd. Deze is van het type TSeries, waarmee een reeks waarden wordt aangeduid. De functie SubtractSeries berekent het verschil tussen High en Low (hoog en laag, ook van het type TSeries), waarna de CreateLine-functie ervoor zorgt dat het verschil als indicatorlijn wordt getekend. Tenslotte wordt ook het 30-daags Moving Average van het verschil getekend. In de grafiek ziet dit er als volgt uit:
Combinaties van indicatoren
Het volgende TA-script is gemaakt naar aanleiding van een vraag op website van TA-script. Het systeem moet een signaal geven als aan twee voorwaarden wordt voldaan:
1. De lijn DI+ moet boven de lijn DI- staan.
2. De MRI moet boven de MA-lijn staan.
Dit systeem is in TA-script als volgt te maken:
{- Filename: DMI, MA, MRI -}
var
MAPeriode, DMIPeriode, i: integer;
sMA, sMRI, sDMIPlus, sDMIMinus: TSeries;
begin
{ Indicator parameters }
MAPeriode := CreateParameterInteger(‘MA periode’, 1, 999, 30, true);
DMIPeriode := CreateParameterInteger(‘DMI periode’, 1, 999, 14, true);
{ Indicator eigenschappen }
with Indicator do
begin
{ korte naam in grafiek }
ShortName := ‘DMI/MRI/MA’;
{ Aantal benodigde koersen om eerste indicatorwaarde te berekenen }
RequiredBars := MaxInt(MAPeriode, DMIPeriode);
{ geen indicatorlijn, dus geen nieuwe grafieksectie maken }
NewBand := false;
{ geen indicatorlijn, dus signalen bij de koersgrafiek laten zien }
SignalView := svShowInMain;
end;
{ bereken alle benodigde indicatorwaarden }
sMA := MA(Close, maSimple, MAPeriode);
sMRI := MovingRegression(Close, MAPeriode);
sDMIPlus := DIPlus(High, Low, Close, DMIPeriode);
sDMIMinus := DIMinus(High, Low, Close, DMIPeriode);
for i:=0 to BarCount-1 do
begin
{ controleer of alle indicatorwaarden geldig zijn }
if IsValid(sMA[i]) and IsValid(sMRI[i]) and IsValid(sDMIPlus[i]) then
begin
{ bepaal aan/verkoopsignalen }
if (sDMIPlus[i] > sDMIMinus[i]) and
(sMRI[i] > sMA[i]) then EnterLong(i);
if (sDMIPlus[i] < sDMIMinus[i]) and
(sMRI[i] < sMA[i]) then EnterShort(i);
end;
end;
end.
Wanneer u bovenstaande code voor het eerst ziet, denkt u wellicht: Dit is niets voor mij. Maar wanneer u eenmaal een basisindicator hebt, dan is het relatief eenvoudig om bijvoorbeeld de aan- en verkoopmomenten iets anders te kiezen. Om dit systeem in Bijv. Excel te maken zou een flinke klus zijn, terwijl dit met TA-script veel sneller en handiger gaat.
De aan- en verkoopsignalen van dit systeem zien er in de grafiek als volgt uit:
Dit is trouwens een voorbeeld van een indicator zonder lijnen. Op de website van TA-script vindt u een scala van indicatoren, waarmee regressielijnen worden getekend, waarmee een moving stop-loss op diverse manieren kan worden bewaakt en waarmee visueel fraaie oplossingen kunnen worden gecreëerd, zoals de implementatie van de Darvas boxes:
Als u de nieuwste tradingsystemen wilt bekijken, raden wij u aan om te surfen naar www.ta-script.com en eens een systeem uit te proberen. En loopt u al tijden rond met een idee voor een handelssysteem, en wilt u dat systeem zelf eens proberen te maken? Start dan in bijv. Wall Street of Alex pro de TA-script developer, bekijk de online help of de apart te bestellen gebruikershandleiding (te bestellen op de site van www.keyword.nl) en ga aan de slag. Wie weet slaagt ook ú erin om uw eigen systeem te bouwen met een gezond rendement!