Dag van de Trader - Een casus in TA-script

Slides:



Advertisements
Verwante presentaties
Let me tell you about... (De Voltooid Tegenwoordige Tijd)
Advertisements

PSD Basisstructuren programmeren.
The stock market will go up De beurswaarden zullen stijgen YESNO JA NEEN Is Jefken a good person ? Is Jefken een goed mens ? YES NO JA NEEN Is Lonny a.
Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
HM-ES-th1 Les 9 Hardware/Software Codesign with SystemC.
Requirements -People are able to make their own memorial page, called a memori -The website will be build first in Dutch for extension.nl, then copied.
Een alternatief voorstel Naar aanleiding van bestudering van de IAASB voorstellen denkt de NBA na over een alternatief. Dit alternatief zal 26 september.
Gamedevelopment, een blik in de keuken en in de toekomst
SAP ABAP A short introduction. SAP ABAP • Selectie: – IF …… ENDIF. – IF …. ELSE … ENDIF. – IF …. ELSEIF …. ELSEIF …. ELSE …. ENDIF. – IF condition_1.
Digitale filters voor traders
Stateful web, developments, trends 1 Webtechnologie Lennart Herlaar.
HCC PC gebruikersgroep: Practical Electronics, Maarssenbroek I2CI2CI2CI2C Wat kun je ermee?
WTO en douane in de Russische Federatie Van vandaag naar morgen.
Inleiding Software Engineering Universiteit AntwerpenBetrouwbaarheid 2.1 Ontdek de 7 verschillen.
Programmeren in Java met BlueJ
Arduino project.
Datastructuren Analyse van Algoritmen en O
AAHA (voor intern gebruik)
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Hoofdstuk 6: Controle structuren
Informatica Universiteit AntwerpenScripting 5.1 Informatica 1rste BAC Biologie Hoofdstuk 5 Scripting.
Complexe Interacties Universiteit Antwerpen Aanpasbaarheid.
Programming for Linguists An Introduction to Python 29/11/2012.
VHDL Peter Slaets KHLim Functies en procedures Functies –type conversie functies »bit vector to integer en omgekeerd –verkorte componenten met maar 1 output.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
ERIC Combine search terms with Boolean operators Next = click.
Monday, 28 July 2014 maandag 28 juli 2014 RADIOJEFKEN82RADIOJEFKEN82 Lord Help Me Please 3’25’’ Do Not Hate You Anymore 4’41’’ Farewell Song 3’13’’ One.
Frank Stalpers en Ad Baars
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
Algoritmen en Datastructuren (ALDAT) EVMINX4 Week 6.
Netwerk Algorithms: Shortest paths1 Shortest paths II Network Algorithms 2004.
Opgave 1a: afronden int n=5; double a, b, c, d; a = n * 1.5; b = n * 3 / 2; c = n / 2 * 3; d = 3 / 2 * n; a b c d
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
1 OMI XML schema’s. 2 XML schema - betekenissen 1. eng : W3C XML schema 2. ruim : DTD en W3C schema Literatuur: Bradley, ch. 14 (& 15)
Eerste deeltoets Uitwerking. Resultaten Gemiddeld: 6,01 Tips voor de volgende keer: – Werk in klad uit, schrijf duidelijk – Oefenen met loops en tellertjes.
Visual Basic.
ALBRECHT DÜRER'S MAGIC SQUARE ALBRECHT DÜRERS MAGISCH VIERKANT
Wolter Kaper - AJAX en Javascript via Rails Deel 1 en 2.
in de eerste 2 weken na een herseninfarct ?
Algoritmiek Strings & Stringmanipulaties; Controle Structuren; Floating-point notation. Hoorcollege 4 - Ma. 25 sept L.M. Bosveld-de Smet.
DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Hoofdstuk 5 – Object Based Programmeren
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
Nationale Officedag6 maart 2008 VBA voor Excel door Lenny Hoeks.
Hoofdstuk 9 Objecten en klassen.
<HTML> <HEAD> <TITLE>Eerste script </TITLE>
Deltion College Engels B2 Schrijven [Edu/004] thema: (No) skeleton in the cupboard can-do: kan een samenhangend verhaal schrijven © Anne Beeker Alle rechten.
Lange Termijn Jeugdwerkloosheid en Mismatch Inleiding Debat Prof. Dr. J. Konings KULeuven Workshop Jeugdwerkloosheid 21 mei 2013.
Shortest path with negative arc-costs allowed. Dijkstra?
HAN-University Inleiding tot VHDL, 2010 Bron: Fraunhofer for Integrated Circuits.
TOPIC O: Pointers | pag. 1 Pointer = adres in het geheugen, is zelf geen geheugen! Expliciet geheugen aanvragen vóór gebruik.
Russische roulette Live or die. 7 delen Startmenu Inzet Aantal kogels Het schot While - functie Opnieuw ja/nee High score.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Taaltheorie en Taalverwerking Parsing Continued. Totnutoe: Top-Down-Parser.
Hoorcollege 5 Herhaling, game object interactie. Ball class class Ball { Texture2D colorRed, colorGreen, colorBlue; Texture2D currentColor; Vector2 position,
Plan Coordination by Revision in Collective Agent Based Systems Adriaan ter Mors en Gijsbert Deelder Plan Coordination by Revision in Collective.
Validatie en kwalificatie van een temperatuur gecontroleerde Supply Chain Gert-Jan van Diest IGZ Congres - De Nieuwe GDP Guideline Nieuwegein, 2 september.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
< < 01.
Hoofdstuk 3 - Conditionele logica
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Thursday, 02 April 2015 donderdag 2 april 2015 The Song of the Rain 4’51’’ Dans La Nuit 3’52’’ If You Go Away 3’52’’ RADIO JEFKEN 84 STOP CLICK = START.
Loops en errors Array's Random try catch for loop while loop do while loop.
Informatie beoordelen If else Switch En Wiskunde.
Programmeren woensdag 4 oktober 2017.
SQL Les February 2019.
Transcript van de presentatie:

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 www.ta-script.com 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.

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.

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);

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.

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 ...

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.

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.

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.

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...

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.