Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdMarleen Willemsen Laatst gewijzigd meer dan 10 jaar geleden
1
Dag van de Trader - Een casus in TA-script
TA-script is programmeertaal voor Wall Street & Alex Pro Parabolic SAR systeem als voorbeeld voor structuur Parameters definiëren Indicator berekenen Signalen bepalen Lijnen tekenen script staat vanavond op Dames en heren welkom bi deze duo-presentatie van Tim Struijs en mij. Mijn naam is Eric Jansen, ik ben de maker van de Wall Street software, en ik zal laten zien hoe het systeem dat Tim Struijs zometeen zal presenteren in TA-script kan worden gebouwd. Onze samenwerking in deze presentatie komt ook voort uit de praktijk - Tim gebruikt Wall Street al een aantal jaren bij het traden, en ik heb ook in werkelijkheid een aantal van zijn systemen in TA-script voor hem gebouwd. Het doel van deze presentatie is om u een beeld te geven van zijn aanpak om tot een handelssysteem te komen, en ik wil graag Tim het woord geven om hier wat meer over te vertellen. Het Parabolic SAR systeem dat Tim zojuist heeft laten zien is zeer goed te programmeren in TA-script, en ik laat u vanochtend in het kort zien hoe dat systeem is opgebouwd. Zoals u waarschijnlijk weet is TA-script een programmeertaal waarmee u indicatoren en handelssystemen kunt maken voor Wall Street en Alex Pro. Zo’n TA-script is opgebouwd uit verschillende onderdelen, die ik kort met u zal doornemen. De tijd ontbreekt ons om er echt diep op in te gaan, maar als u geinteresseerd bent in het volledige script dan kunt u dat vanavond vinden op de TA-script website.
2
Dag van de Trader - Parabolic SAR systeem
Parameters definiëren Indicator berekenen Signalen bepalen Lijnen tekenen nAcc := CreateParameterReal('ParSar acc.factor', 0, 1, 0.01, true); nADX := CreateParameterInteger('ADX periode', 1, 999, 14, true); function CreateParameterReal(Name: string; // parameternaam MinValue, // min.waarde MaxValue, // max.waarde DefaultValue: real; // standaardwaarde CanOptimize: boolean): real; // optimaliseerbaar? De eerste stap is het definieren van de indicatorparameters. Dit zijn de parameters die u dus zelf nog kunt wijzigen bij het toevoegen van de indicator in de grafiek. TA-script heeft hiervoor diverse functies, zoals CreateParameterReal. Hiermee wordt een parameter van het type real, een gebroken getal dus, aangemaakt, die hier wordt gebruikt voor de acceleratiefactor van de Parabolic. Aan die CreateParameterReal functie geeft u een aantal parameters mee, zoals de naam van de parameter, de minimale en maximale waarde en de default waarde. Naast de Real variant is er ook een CreateParameterInteger voor het kiezen van een geheel getal, en nog diverse andere parameters zijn mogelijk.
3
Dag van de Trader - Parabolic SAR systeem
Parameters definiëren Indicator berekenen Signalen bepalen Lijnen tekenen sPAR := Parabolic(High, Low, nAcc, nMaxAcc, Tomorrow); sADX := ADX(High, Low, Close, nADX); DMI(High, Low, Close, nDMI, sDIPlus, sDIMinus); De volgende stap is het eigenlijke berekenen van de indicator. In dit geval wordt gebruik gemaakt van een Parabolic SAR, een ADX en een DMI, die in TA-script met een enkele funtie-aanroep kunnen worden berekend. Als we als voorbeeld even DMI berekening nemen, dan zit er in TA-script een DMI functie die een aantal parameters verwacht. In de eerste plaats de High, Low en Close, de koersgegevens, en de DMI periode. Het resultaat van de DMI functie is de positie en negatieve DMI, de DIPlus en DIMinus. Let op dat de DMI functie met Tseries werkt - er wordt dus niet 1 koers meegegeven, maar een complete reeks koersen. Omdat we hier volledig met standaard indicatoren werken is de berekening eenvoudig - het bepalen van de signalen van het script is iets ingewikkelder. procedure DMI(High, Low, Close: TSeries; Period: integer; var DIPlus, DIMinus: TSeries);
4
Dag van de Trader - Parabolic SAR systeem
Parameters definiëren Indicator berekenen Signalen bepalen Lijnen tekenen xPar := Crossings(Close, sPAR); for i:=0 to BarCount-1 do begin case xPar[i] of lc1Over2: // Parabolic slaat om, koers boven Parabolic if (sADX[i]>=nADXMin) and (sDIPlus[i]>=sDIMinus[i]) then EnterLong(i) else ExitShort(i); end; lc2Over1: ... Wat we hier doen is de aan/verkoopsignalen bepalen. Hiervoor moeten we vaak een for-loop gebruiken, waarmee we de koersen een voor een aflopen. Voordat we dat doen berekenen we eerst de omslagen van de Parabolic (kruisingen van de Parabolic en de koers), en in een de for-lus kijken we of er sprake is van een kruising. Als de koers boven de Parabolic is gekomen, dan zouden we in principe long kunnen gaan, maar alleen wanneer de ADX voldoet, en te tweede moet de DMI ook voldoen, de DIPlus moet boven de DIMin staan. Alleen dan gaan we long, en als er een Parabolic omslag is waarbij niet aan de ADX en DMI condities wordt voldaan dan sluiten we een wel een eventuele short positie, maar we gaan niet long.
5
Dag van de Trader - Parabolic SAR systeem
Parameters definiëren Indicator berekenen Signalen bepalen Lijnen tekenen with CreateLine(sPAR) do begin Name := 'ParSar'; Color := clYellow; LineType := ltDot; end; Als laatste gelukkig iets eenvoudigs - hier gaan we de lijnen van de indicator tekenen. Een indicator kan net zoveel lijnen hebben als u wilt, en deze krijgt er maar 1 namelijk de Parabolic SAR. We kunnen nog een aantal lijneigenschappen opgeven zoals de kleur van de lijn, de lijndikte, enzovoort. Tot zover de beschrijving van het Parabolic SAR systeem in TA-script, ik geef nu graag het woord weer aan Tim die het systeem verder zal fine tunen. type TIndicatorLine = record Name: string; // naam van de lijn Color: TColor; // kleur LineType: TLineType; // lijntype (lijn, candlestick.. Width: integer; // lijndikte ...
6
Dag van de Trader - Parabolic SAR systeem
Parameters definiëren Indicator berekenen Signalen bepalen Lijnen tekenen xPar := Crossings(Close, sPAR); for i:=0 to BarCount-1 do begin case xPar[i] of lc1Over2: // Parabolic slaat om, koers boven Parabolic if (sADX[i]>=nADXMin) and (sDIPlus[i]>=sDIMinus[i]) then EnterLong(i) else ExitShort(i); end; lc2Over1: ... De stoploss en take profit aanvullingen op het systeem gaan we nu aan het TA-script toevoegen, en dat doen we in het stuk code waarin we de signalen bepaalden. Dit was de oude code, waarbij we eenvoudigweg een long positie innamen, maar in de nieuwe situatie moeten we hier iets meer doen.
7
Dag van de Trader - Parabolic SAR systeem
Exitstrategieën entry informatie bewaren stoploss bewaken profitbars stop bewaken takeprofit bewaken for i:=0 to BarCount-1 do ... if EnterLong(i) then begin xEntryBar := i; // entrybar onthouden xEntryPrice := Close[i]; // entrykoers onthouden xStopLevel := Close[i] * (1 - nMSL/100); xProfitLevel := Close[i] * (1 + nTakeProfit/100); end; Omdat de stoploss en takeprofits te kunnen bewaken, moeten we bij het innemen van de long positie een aantal variabelen zetten, zoals de bar waarop we de positie innemen, de koers en we berekenen hier ook de stoploss en takeprofit nieaus.
8
Dag van de Trader - Parabolic SAR systeem
Exitstrategieën entry informatie bewaren stoploss bewaken profitbars stop bewaken takeprofit bewaken for i:=0 to BarCount-1 do ... if MarketPosition(i) > 0 then begin { moving stoploss berekenen - long positie } xStopLevel := Max(xStopLevel, Close[i] * (1 - nMSL/100)); if Close[i] < xStopLevel then ExitLong(i); Binnen de for-lus die we voor iedere bar doorlopen, komt er nu een stuk bij waarin we de diverse stops gaan bewaken. Als eerste nemen we de moving stoploss die we moeten bewaken. Deze ziet er in code als volgt uit - we passen het stoploss nivo zonodig aan, en controleren of het doorbroken is.
9
Dag van de Trader - Parabolic SAR systeem
Exitstrategieën entry informatie bewaren stoploss bewaken profitbars stop bewaken takeprofit bewaken for i:=0 to BarCount-1 do ... if MarketPosition(i) > 0 then begin { profitbars stop trigger - long positie } if (i <= xEntryBar + nSLBars) and ((Close[i]-xEntryPrice)/xEntryPrice >= nSLProfit/100) then bEntryStop := true; if bEntryStop and (Close[i] < xEntryPrice) then ExitLong(i); Daarnaast hadden we een profitbars stop - hierbij keken we eerst of we binnen een aantal bars een bepaald winstniveau bereikten, en als dat het geval is dan hanteren we een stoploss op de entrykoers. In de code zien we hoe dit gebeurt...
10
Dag van de Trader - Parabolic SAR systeem
Exitstrategieën entry informatie bewaren stoploss bewaken profitbars stop bewaken takeprofit bewaken for i:=0 to BarCount-1 do ... if MarketPosition(i) > 0 then begin { take profit bewaken - long positie } if Close[i] > xProfitLevel then ExitLong(i); Tenslotte controleren we de ingestelde takeprofit - dit is eigenlijk de eenvoudigste van de exits. Tot zover het TA-script gedeelte - ik geef nu graag weer het woord aan Tim, die wat meer zal vertellen over de methoden en technieken die hij gebruikt voor het ontwikkelen van een handelssysteem.
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.