Hallo,
Om te beginnen. Ik ben een keer gebanned van het forum omdat ik mijn vragen te weinig uitlegde. Ik heb dit nooit expres gedaan, mijn redenatie was eerder om mijn vragen compact te houden zonder zaken erbij die mij niet relevant leken. Gezien dit dus echter niet op prijs wordt gesteld zal ik proberen mijn vraag zo duidelijk mogelijk uit te leggen.
Op dit moment ben ik bezig om met behulp van een PostgreSQL database een aantal patronen op de futures-markten te bewijzen. Hiervoor heb ik een database van alle historische future-prijzen per minuut waarvan ik een afgeleide table heb gemaakt waar alle procentuele stijgingen en dalingen van minuut tot minuut in staan. Van daaruit heb ik weer een nieuwe table gemaakt waarin ik de gemiddelde winsten per minuut en per “aanhoudtijd” heb berekend.
Ik heb nu dus de gemiddelde winst voor wanneer je elke dag om 09:00:00 kocht, 1 minuut aanhield en toen weer om 09:01:00 verkocht. Hetzelfde voor 09:00:00 kopen, 2 minuten aanhouden, en weer om 09:02:00 verkopen. Het ziet er dus zo uit:
Ik heb dit vervolgens schematisch weergegeven in een grafiek waarin de x-as de tijd is, de y-as de aanhoudtijd, en de kleur van de pixel de winst weer geeft; wit is winst, zwart is verlies.
Nou zie je in de grafiek witte vlekken (ik heb er twee aangestreept) waarin dus gemiddeld gezien winst wordt behaald over de volledige historie van de future. Wat ik nou wil is een soort van “robuustheid” berekenen voor alle witte punten. Robuustheid wil hier zeggen: "hoe afhankelijk is de winst van kleine verschillen in de onderliggende variabelen (x-as en y-as)". Hiervoor wil ik dus voor elk wit punt berekenen wat de afstand is tot het dichtstbijzijnde zwarte punt. Dit wilde ik doen mbv de stelling van Pythagoras:
(verschil op de x-as)² x (verschil op de y-as)² = afstand tussen twee punten²
Ik heb er een tijdje mee lopen stoeien maar ik kom er maar niet uit. Wat ik zelf had bedacht was een query die er ongeveer zo uit zou moeten zien:
Ik begrijp alleen niet waarop ik die JOIN nou zou moeten doen zodat elk (witte) winst-punt met elk (zwarte) verlies-punt wordt vergeleken.
Heeft iemand enig idee hoe ik dit op zou kunnen lossen? Alle tips zijn welkom!
Om te beginnen. Ik ben een keer gebanned van het forum omdat ik mijn vragen te weinig uitlegde. Ik heb dit nooit expres gedaan, mijn redenatie was eerder om mijn vragen compact te houden zonder zaken erbij die mij niet relevant leken. Gezien dit dus echter niet op prijs wordt gesteld zal ik proberen mijn vraag zo duidelijk mogelijk uit te leggen.
Op dit moment ben ik bezig om met behulp van een PostgreSQL database een aantal patronen op de futures-markten te bewijzen. Hiervoor heb ik een database van alle historische future-prijzen per minuut waarvan ik een afgeleide table heb gemaakt waar alle procentuele stijgingen en dalingen van minuut tot minuut in staan. Van daaruit heb ik weer een nieuwe table gemaakt waarin ik de gemiddelde winsten per minuut en per “aanhoudtijd” heb berekend.
Ik heb nu dus de gemiddelde winst voor wanneer je elke dag om 09:00:00 kocht, 1 minuut aanhield en toen weer om 09:01:00 verkocht. Hetzelfde voor 09:00:00 kopen, 2 minuten aanhouden, en weer om 09:02:00 verkopen. Het ziet er dus zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| koop_tijdstip | aanhoudtijd | winst --------------------------------------------- 09:01:00 | 1 | 4 09:02:00 | 1 | -3 09:03:00 | 1 | 8 09:04:00 | 1 | -1 etc. 09:01:00 | 2 | 2 09:02:00 | 2 | -1 09:03:00 | 2 | 0 09:04:00 | 2 | 12 etc. 09:01:00 | 3 | -6 09:02:00 | 3 | 2 09:03:00 | 3 | 6 etc.. |
Ik heb dit vervolgens schematisch weergegeven in een grafiek waarin de x-as de tijd is, de y-as de aanhoudtijd, en de kleur van de pixel de winst weer geeft; wit is winst, zwart is verlies.
Nou zie je in de grafiek witte vlekken (ik heb er twee aangestreept) waarin dus gemiddeld gezien winst wordt behaald over de volledige historie van de future. Wat ik nou wil is een soort van “robuustheid” berekenen voor alle witte punten. Robuustheid wil hier zeggen: "hoe afhankelijk is de winst van kleine verschillen in de onderliggende variabelen (x-as en y-as)". Hiervoor wil ik dus voor elk wit punt berekenen wat de afstand is tot het dichtstbijzijnde zwarte punt. Dit wilde ik doen mbv de stelling van Pythagoras:
(verschil op de x-as)² x (verschil op de y-as)² = afstand tussen twee punten²
Ik heb er een tijdje mee lopen stoeien maar ik kom er maar niet uit. Wat ik zelf had bedacht was een query die er ongeveer zo uit zou moeten zien:
SQL:
1
2
3
4
5
6
7
| SELECT MIN(SQRT(((n2.koop_tijdstip - n1.koop_tijdstip)^2 + (n2.aanhoudtijd - n1.aanhoudtijd)^2)) as afstand FROM winst_table n1 JOIN winst_table n2 ON ...............? WHERE n1.winst > 0 AND n2.winst < 0 ORDER BY afstand DESC |
Ik begrijp alleen niet waarop ik die JOIN nou zou moeten doen zodat elk (witte) winst-punt met elk (zwarte) verlies-punt wordt vergeleken.
Heeft iemand enig idee hoe ik dit op zou kunnen lossen? Alle tips zijn welkom!