Fuzzy systems
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Fuzzy systems
Hallo,
alvast bedankt voor de moeite voor het lezen. Ik heb laatst een artikel gelezen dat zich concentreert op Fuzzy systems en in dit artikel werd het gebruikt voor het voorspellen van de beurs. Ik vond de manier waarop de auteur bepaalde “vage/fuzzy” regels om heeft gezet naar iets meetbaars zeer interessant. En zou dit graag eens wille reproduceren om te kijken of zijn resultaten ook in de buurt kunnen komen van mijn resultaten.
Ik heb daarom het artikel nog een keer gelezen en heb me voornamelijk geconcentreerd op de wiskunden die hiervoor nodig is. De auteur legt voor de professional waarschijnlijk alles duidelijk uit, maar voor mij zijn er toch een aantal onduidelijkheden waar ik hoop dat jullie mij verder kunnen helpen.
Allereerst zal ik kort uitleggen wat de auteur van plan is en welke aannames hij heeft getroffen:
De auteur is er vanuit gegaan dat Technical Analysis (een vage methode om de beurs te kunnen voorspellen) door de meeste mensen wordt gebruikt
Doordat veel mensen dit nog gebruiken, klopt het vaker ook (self fullfilling).
De auteur wil echter van de vage “regels” iets meetbaars maken.
Om de technical trading regels in een “single excess demand function” (edi (xt) om te zetten gebruikt hij de volgende formule (die hebben we op het einde weer nodig)
Vervolgens neemt hij 1 technical trading rule (2 moving averages) waar hij uitlegt wat in de meeste gevallen gaat gebeuren (ik zal dit nu even niet vertalen)
De moving averages worden als volgt berekend:
Echter weten we nu nog steeds niet meer behalve dat we dus iets weten over die moving averages. Daarom wil hij de uitkomst van deze formules aan een fuzzy set hangen. Hij gaat er 7 gebruiken:
Positive small (PS)
Positive medium (PM)
Positive large (PL)
Negative Small (NS)
Negative medium (NM)
Negative large (NL)
Around zero (AZ)
Die hij vervolgens zo indeelt:
De negative large function en de positive large function kan als volgt worden berekend:
W is een positive constant (hij neemt hiervoor 0.01 (1 %))
Vervolgens gaat hij deze fuzzy sets koppelen aan sell of buy signals van de mensen die deze technical analysis gebruiken. Daarvoor heeft hij ook 7 sets:
Buy small (BS)
Buy Medium (BM)
Buy Big (BB)
Sell Small (SS)
Sell Medium (SM)
Sell Big (SB)
Neutral (N)
Een voorbeeld van de membership functie voor BM (Buy Medium) ziet er zo uit:
Nu hij dit heeft gedaan, komt hij eigenlijk tot de kern van zijn fuzzy system (de IF THEN regels). De volgende 7 regels:
Het laatste dat er vervolgens moet gebeuren is om deze regels in een excess demand functie om te zetten. Het volgende fuzzy system wordt er dan gebruikt:
Nou, nu ik dit kort heb uitgelegd hoop ik dat iemand dit direct beter begrijpt.
Mijn eerste vraag gaat over Functie (4) en functie (5). Als we kijken naar de PL (positive large) functie. In Fig. 1 zie ik dat die correspondeert met 3w (of iig groter dan 3w).
Laat ik even een klein voorbeeldje gebruiken. Als we de moving average van 1 en 10 gaan berekenen (dat is, gemiddelde van vandaag (dus de prijs van vandaag) en de gemiddelde prijs van 10 dagen geleden.
Prijs vandaag: 100
Prijs over de laatste 10 dagen: 101,5
Als we dan fuctie 3 invullen krijgen we LN(100/101,5) = -0.0148886125
Als we dan functie 4 gaan invullen, dan loop ik een beetje vast. Ik krijg daar enorm hoge waardes uit, terwijl imo deze waardes kleiner moeten zijn. Waarschijnlijk vul ik in excel fout in.
Ik heb het volgende geproeerd voor functie (4)
w: 0.01 (positive constant, de auteur heeft 0.01 als basis genomen zodoende dat ik dat ook gebruik)
1 - (-0.0148886125 - 0,01) / 0,01
1 - 97,55 = -96,552
Ik heb geen idee waarom ik zo een vreemde waarde krijg. DIt is imo te hoog. Het kan goed zijn dat mijn voorbeeld geen goede getallen weergeeft voor PS (positive small) fuzzy set. Ik weet dus niet of ik hier fout zit.
Wellicht dat iemand mij verder kan helpen.
Alvast bedankt
alvast bedankt voor de moeite voor het lezen. Ik heb laatst een artikel gelezen dat zich concentreert op Fuzzy systems en in dit artikel werd het gebruikt voor het voorspellen van de beurs. Ik vond de manier waarop de auteur bepaalde “vage/fuzzy” regels om heeft gezet naar iets meetbaars zeer interessant. En zou dit graag eens wille reproduceren om te kijken of zijn resultaten ook in de buurt kunnen komen van mijn resultaten.
Ik heb daarom het artikel nog een keer gelezen en heb me voornamelijk geconcentreerd op de wiskunden die hiervoor nodig is. De auteur legt voor de professional waarschijnlijk alles duidelijk uit, maar voor mij zijn er toch een aantal onduidelijkheden waar ik hoop dat jullie mij verder kunnen helpen.
Allereerst zal ik kort uitleggen wat de auteur van plan is en welke aannames hij heeft getroffen:
De auteur is er vanuit gegaan dat Technical Analysis (een vage methode om de beurs te kunnen voorspellen) door de meeste mensen wordt gebruikt
Doordat veel mensen dit nog gebruiken, klopt het vaker ook (self fullfilling).
De auteur wil echter van de vage “regels” iets meetbaars maken.
Om de technical trading regels in een “single excess demand function” (edi (xt) om te zetten gebruikt hij de volgende formule (die hebben we op het einde weer nodig)
Vervolgens neemt hij 1 technical trading rule (2 moving averages) waar hij uitlegt wat in de meeste gevallen gaat gebeuren (ik zal dit nu even niet vertalen)
De moving averages worden als volgt berekend:
Echter weten we nu nog steeds niet meer behalve dat we dus iets weten over die moving averages. Daarom wil hij de uitkomst van deze formules aan een fuzzy set hangen. Hij gaat er 7 gebruiken:
Positive small (PS)
Positive medium (PM)
Positive large (PL)
Negative Small (NS)
Negative medium (NM)
Negative large (NL)
Around zero (AZ)
Die hij vervolgens zo indeelt:
De negative large function en de positive large function kan als volgt worden berekend:
W is een positive constant (hij neemt hiervoor 0.01 (1 %))
Vervolgens gaat hij deze fuzzy sets koppelen aan sell of buy signals van de mensen die deze technical analysis gebruiken. Daarvoor heeft hij ook 7 sets:
Buy small (BS)
Buy Medium (BM)
Buy Big (BB)
Sell Small (SS)
Sell Medium (SM)
Sell Big (SB)
Neutral (N)
Een voorbeeld van de membership functie voor BM (Buy Medium) ziet er zo uit:
Nu hij dit heeft gedaan, komt hij eigenlijk tot de kern van zijn fuzzy system (de IF THEN regels). De volgende 7 regels:
Het laatste dat er vervolgens moet gebeuren is om deze regels in een excess demand functie om te zetten. Het volgende fuzzy system wordt er dan gebruikt:
Nou, nu ik dit kort heb uitgelegd hoop ik dat iemand dit direct beter begrijpt.
Mijn eerste vraag gaat over Functie (4) en functie (5). Als we kijken naar de PL (positive large) functie. In Fig. 1 zie ik dat die correspondeert met 3w (of iig groter dan 3w).
Laat ik even een klein voorbeeldje gebruiken. Als we de moving average van 1 en 10 gaan berekenen (dat is, gemiddelde van vandaag (dus de prijs van vandaag) en de gemiddelde prijs van 10 dagen geleden.
Prijs vandaag: 100
Prijs over de laatste 10 dagen: 101,5
Als we dan fuctie 3 invullen krijgen we LN(100/101,5) = -0.0148886125
Als we dan functie 4 gaan invullen, dan loop ik een beetje vast. Ik krijg daar enorm hoge waardes uit, terwijl imo deze waardes kleiner moeten zijn. Waarschijnlijk vul ik in excel fout in.
Ik heb het volgende geproeerd voor functie (4)
w: 0.01 (positive constant, de auteur heeft 0.01 als basis genomen zodoende dat ik dat ook gebruik)
1 - (-0.0148886125 - 0,01) / 0,01
1 - 97,55 = -96,552
Ik heb geen idee waarom ik zo een vreemde waarde krijg. DIt is imo te hoog. Het kan goed zijn dat mijn voorbeeld geen goede getallen weergeeft voor PS (positive small) fuzzy set. Ik weet dus niet of ik hier fout zit.
Wellicht dat iemand mij verder kan helpen.
Alvast bedankt
Re: Fuzzy systems
Voor x(m,n) = LN(100/101,5) = -0.0148886125 is x(m,n) volgens figuur 1 member van NM en NS.stanexclusive schreef:Prijs vandaag: 100
Prijs over de laatste 10 dagen: 101,5
Als we dan fuctie 3 invullen krijgen we LN(100/101,5) = -0.0148886125
w: 0.01
De membership functies van NM en NS hebben beide een tentvorm.
De algemene formule voor zo'n functie is
Plot voor jezelf eens een dergelijke functie voor x_top = 6 en A = 2, dus:
Deze functie gaat voor x=4 tot x=6 van nul naar 1, en voor x=6 tot x=8 terug naar nul.
Beneden x=4 en boven x=8 is deze functie nul.
Als we in dit geval bv. x = 4.8 nemen, dan is de membership waarde:
Kan je nu de twee membershipwaarden van jouw voorbeeld (x = -0.0148886125) berekenen?
Dus en
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Re: Fuzzy systems
Hallo. Ik heb dit dus ook gemerkt, erg slordig van mij.arie schreef:Voor x(m,n) = LN(100/101,5) = -0.0148886125 is x(m,n) volgens figuur 1 member van NM en NS.stanexclusive schreef:Prijs vandaag: 100
Prijs over de laatste 10 dagen: 101,5
Als we dan fuctie 3 invullen krijgen we LN(100/101,5) = -0.0148886125
w: 0.01
De membership functies van NM en NS hebben beide een tentvorm.
In ieder geval heb ik de 7 sets nu even uitschreven zodat ik voormezelf een beetje duidelijkheid heb. Ik geloof dat ik het op deze manier correct geïnterpreteerd heb.
Jouw voorbeeld is in ieder geval duidelijk voor mij. Bij krijg ik de volgende uitkomst: 1,489 en bij heb ik 0,488De algemene formule voor zo'n functie is
Plot voor jezelf eens een dergelijke functie voor x_top = 6 en A = 2, dus:
Deze functie gaat voor x=4 tot x=6 van nul naar 1, en voor x=6 tot x=8 terug naar nul.
Beneden x=4 en boven x=8 is deze functie nul.
Als we in dit geval bv. x = 4.8 nemen, dan is de membership waarde:
Kan je nu de twee membershipwaarden van jouw voorbeeld (x = -0.0148886125) berekenen?
Dus en
Ik verwacht eigenlijk een waarde tussen de 0 en de 1, dus iets klopt niet helemaal.
Re: Fuzzy systems
Let op: in de definitie die ik gaf staan geen haakjes maar verticale streepjes.
Dit duidt de absolute waarde of modulus aan, dat wil zeggen, de waarde van het getal zonder het teken (plus of min):
| 2 | = 2
| -3 | = 3
zie zo nodig ook https://nl.wikipedia.org/wiki/Absolute_waarde
Dus:
en
Merk op:
1. de membershipwaarden van alle overige klassen zijn nul
2. de som van alle membershipwaarden = 1, en dit is gebruikelijk in fuzzy logic.
Om verder nog wat puntjes op de i te zetten:
(denk in de laatste 2 gevallen aan het teken: x > -2W betekent: voor x rechts van -2W op de getallen lijn)
Dit duidt de absolute waarde of modulus aan, dat wil zeggen, de waarde van het getal zonder het teken (plus of min):
| 2 | = 2
| -3 | = 3
zie zo nodig ook https://nl.wikipedia.org/wiki/Absolute_waarde
Dus:
en
Merk op:
1. de membershipwaarden van alle overige klassen zijn nul
2. de som van alle membershipwaarden = 1, en dit is gebruikelijk in fuzzy logic.
Om verder nog wat puntjes op de i te zetten:
(denk in de laatste 2 gevallen aan het teken: x > -2W betekent: voor x rechts van -2W op de getallen lijn)
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Re: Fuzzy systems
Bedankt. Zeker voor de tips mbt de functies. Ik zie nergens de mogelijkheid om een oudere post van mij aan te passen. Dan zou ik de functies kunnen verbeteren Is dit niet mogelijk op wiskundeforum?arie schreef:Let op: in de definitie die ik gaf staan geen haakjes maar verticale streepjes.
Dit duidt de absolute waarde of modulus aan, dat wil zeggen, de waarde van het getal zonder het teken (plus of min):
| 2 | = 2
| -3 | = 3
zie zo nodig ook https://nl.wikipedia.org/wiki/Absolute_waarde
Dus:
en
Merk op:
1. de membershipwaarden van alle overige klassen zijn nul
2. de som van alle membershipwaarden = 1, en dit is gebruikelijk in fuzzy logic.
Om verder nog wat puntjes op de i te zetten:
(denk in de laatste 2 gevallen aan het teken: x > -2W betekent: voor x rechts van -2W op de getallen lijn)
Ik ben nu ook een boek aan het lezen van dezelfde auteur mbt de Basis van fuzzy systems, maar tot nu toe ben ik nog niks tegen gekomen wat er gebeurt als een waarde in 2 sets valt.
We hebben nu dus 0.48886 en 0.51114 dat dus samen 1 is. Je geeft aan dat dit normaal is, maar ik had normaal een waarde verwacht die normaal tussen de 0 en de 1 ligt.
Bij formule 8 (zie mijn eerste post) hebben we toch een van deze waardes nodig? Ik verlies hier een beetje het overzicht, aangezien ik dacht dat ik met 1 waarde (die tussen de 0 en de 1 zou liggen) verder zou gaan naar de volgende stap.
Re: Fuzzy systems
Voor een gegeven x ligt de membershipwaarde per set (= per verzameling) tussen nul en een.
Dit is de logische waarheidswaarde die aangeeft in hoeverre het waar is dat x tot die set behoort.
Voorbeeld:
Stel we hebben 3 verzamelingen: R = rode voorwerpen, G = gele voorwerpen en B = blauwe voorwerpen.
Een rood potlood x behoort volledig tot de verzameling R, en helemaal niet tot de overige verzamelingen:
We kunnen ook zeggen:
is volledig waar
is volledig onwaar
is volledig onwaar
zoals in de tweewaardige logica van Boole.
Een oranje potlood y behoort een deel tot R, ook een deel tot G, en niet tot B.
Bijvoorbeeld:
Als de kleur y iets donkerder is, dus iets meer naar rood ligt, zou je deze situatie kunnen krijgen:
De bewering "y is element van R" is nu voor 60% waar, en de bewering "y behoort tot G" is 40% waar.
Voor meer voorbeelden zie bijvoorbeeld
https://nl.wikipedia.org/wiki/Fuzzy_logic
Terug naar jouw formule 8 voor gegeven :
en als we de gegeven waarden invullen:
Hierboven hadden we al berekend voor x = -0.0148886:
(dus x = -0.0148886 behoort ongeveer 49% tot NM en 51% tot NS)
Ook hadden we al opgemerkt dat
En nu heb je alle gegevens om ed_1(-0.0148886) te berekenen.
Dit is de logische waarheidswaarde die aangeeft in hoeverre het waar is dat x tot die set behoort.
Voorbeeld:
Stel we hebben 3 verzamelingen: R = rode voorwerpen, G = gele voorwerpen en B = blauwe voorwerpen.
Een rood potlood x behoort volledig tot de verzameling R, en helemaal niet tot de overige verzamelingen:
We kunnen ook zeggen:
is volledig waar
is volledig onwaar
is volledig onwaar
zoals in de tweewaardige logica van Boole.
Een oranje potlood y behoort een deel tot R, ook een deel tot G, en niet tot B.
Bijvoorbeeld:
Als de kleur y iets donkerder is, dus iets meer naar rood ligt, zou je deze situatie kunnen krijgen:
De bewering "y is element van R" is nu voor 60% waar, en de bewering "y behoort tot G" is 40% waar.
Voor meer voorbeelden zie bijvoorbeeld
https://nl.wikipedia.org/wiki/Fuzzy_logic
Terug naar jouw formule 8 voor gegeven :
en als we de gegeven waarden invullen:
Hierboven hadden we al berekend voor x = -0.0148886:
(dus x = -0.0148886 behoort ongeveer 49% tot NM en 51% tot NS)
Ook hadden we al opgemerkt dat
En nu heb je alle gegevens om ed_1(-0.0148886) te berekenen.
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Re: Fuzzy systems
Bedankt Dat was een fijne uitleg. Ik ga nu aan de slag om ed te berekenen.
(-0,1*0,51114 -0,1*0,51114) / 1 = - 0,246
De noemer van deze formule is toch altijd 1? Of zie ik dat verkeerd
(-0,1*0,51114 -0,1*0,51114) / 1 = - 0,246
De noemer van deze formule is toch altijd 1? Of zie ik dat verkeerd
Re: Fuzzy systems
Klopt, precies alle membershipwaarden van x staan in de noemer, en de som daarvan is 1 (zie ook figuur 1).stanexclusive schreef:... De noemer van deze formule is toch altijd 1? ...
En omdat c7 = 0, kunnen we de functie ed_1(x) ook schrijven als
PS: Je antwoord -0.246... klopt, maar links van het gelijkheidsteken is wsch een copy-paste fout.
Met bovenstaande formule vind ik ook:
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Re: Fuzzy systems
Klopt. Inderdaad een Copy-Paste foutje
Bedankt voor je hulp zover. Ik waardeer dat zeer! Mijn vragen zijn wellicht niet de beste, maar het is voor mij best wel een tijdje geleden sinds ik ben afgestudeerd en zo langszaam komt het weer een beetje terug. Dankzij jouw hulp heb ik veel ohja-zo-zat-dat-ook-alweer-momentjes
Bedankt voor je hulp zover. Ik waardeer dat zeer! Mijn vragen zijn wellicht niet de beste, maar het is voor mij best wel een tijdje geleden sinds ik ben afgestudeerd en zo langszaam komt het weer een beetje terug. Dankzij jouw hulp heb ik veel ohja-zo-zat-dat-ook-alweer-momentjes
Re: Fuzzy systems
Mooi dat een en ander weer boven komt.
Blijf gewoon vragen als je meer wilt weten (op dit forum mag je alle vragen stellen, ongeacht de kwaliteit van de vraag).
Blijf gewoon vragen als je meer wilt weten (op dit forum mag je alle vragen stellen, ongeacht de kwaliteit van de vraag).
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Re: Fuzzy systems
Gelukkig
We hebben nu echter formule 8 opgelost, maar functie 6 en de rules hebben we imo fuctie 6 en rules (7) niet bekeken. Als ik nu de andere formules bekijk, snap ik echter niet direct waarom we functie 6 nodig hebben? Of moet ik de uitkomst van functie 8 gaan gebruiken bij functie 6? Dan snap ik echter niet waarom de auteur deze volgorde neemt in het artikel?
Ik weet niet hoe jij dat ziet, maar ik vind dat nogal verwarrend. Buiten dat vind ik het verwarrend dat hij bij de Rules wordt gesproken over IF Then regels. We weten nl. dat ons voorbeeld tussen valt tussen NS en NM. Als we de IF Then regelt volgen, dan betekent het dat NS then SS en NM then SB.
Als we dan formule 6 bekijken, moet ik dan gaan rekenen met de waardes van de IF THen regels? Dat betekent dus bij SS = EB = -0,1 en SB = -0,4? Ik snap echter niet precies hoe ik hiermee moet omgaan?
We hebben nu echter formule 8 opgelost, maar functie 6 en de rules hebben we imo fuctie 6 en rules (7) niet bekeken. Als ik nu de andere formules bekijk, snap ik echter niet direct waarom we functie 6 nodig hebben? Of moet ik de uitkomst van functie 8 gaan gebruiken bij functie 6? Dan snap ik echter niet waarom de auteur deze volgorde neemt in het artikel?
Ik weet niet hoe jij dat ziet, maar ik vind dat nogal verwarrend. Buiten dat vind ik het verwarrend dat hij bij de Rules wordt gesproken over IF Then regels. We weten nl. dat ons voorbeeld tussen valt tussen NS en NM. Als we de IF Then regelt volgen, dan betekent het dat NS then SS en NM then SB.
Als we dan formule 6 bekijken, moet ik dan gaan rekenen met de waardes van de IF THen regels? Dat betekent dus bij SS = EB = -0,1 en SB = -0,4? Ik snap echter niet precies hoe ik hiermee moet omgaan?
Re: Fuzzy systems
De volgorde is:
[1] kort en lang gemiddelde => x => fuzzy classificering x
[2] definieer een fuzzy classificering sell/buy, afhankelijk van je excess demand ed.
[3] maak fuzzy regels die classificering [1] op classificering [2] afbeelden.
[4] vat deze afbeelding samen in 1 formule = formule 8.
Wat uitgebreider:
[1]
De waarde x = de natuurlijke logaritme van de verhouding kort/lang gemiddelde, zie formule 3.
In Figuur 1 lees je de membershipwaarden van x af voor elk van de 7 klassen NL t/m PL.
[2]
Voor de sell/buy classificering is gekozen voor deze ed waarden (zie Figuur 2):
buy small = 0.1
buy medium = 0.2
buy big = 0.4
sell small = -0.1
sell medium = -0.2
sell big = -0.4
Formule 6 geeft aan hoe je de membershipwaarden mu(ed) voor deze classificering bepaalt uit de waarde van ed, vergelijkbaar met wat we onder [1] gedaan hebben. Echter: dankzij de keuze van de membershipdefinities (lineair en mooi opeenvolgend) kunnen we deze formules straks omzeilen.
[3]
Heuristic 1 zegt: hoe groter positive x, hoe sterker het buy signaal ed, maar als x al te positief wordt, dan sell (negatieve ed). En omgekeerd voor negatieve x.
Dit leidt tot de regels van formules 7:
regel 1: ALS x in PS, DAN ed advies = buy small = 0.1
regel 2: ALS x in PM, DAN ed advies = buy big = 0.4
regel 3: ALS x in PL, DAN ed advies = sell medium = -0.2
etc.
Dit zijn fuzzy regels, dus met een waarheidswaarde tussen nul en 1.
Voorbeeld 1:
Als x voor 0.4 (=40%) in PS zit en voor 0.6 (=60%) in PM, dan is het sell/buy advies
volgens de combinatie van regel 1 en regel 2:
ed(x) = 0.4 * (buy small) + 0.6 * (buy big) = 0.4 * 0.1 + 0.6 * 0.4 = 0.28
Voorbeeld 2:
Als x voor 0.3 (=30%) in PM zit en voor 0.7 (=70%) in PL, dan is het sell/buy advies
volgens de combinatie van regel 2 en regel 3:
ed(x) = 0.3 * (buy big) + 0.7 * (sell medium) = 0.3 * 0.4 + 0.7 * (-0.2) = -0.02
[4]
Formule 8 vat bovenstaande samen:
De excess demand ed(x) wordt direct berekend uit:
1. de membershipfuncties van x (er zijn maximaal 2 niet-nul, de overige zijn nul en vallen weg)
2. de constanten Ci = de waarden van de ed-classificatie:
- - als x 100% in PS (dus x=w, mu_PS(x)=1 en alle andere mu(x)=0) dan is ed(x) = buy small = 0.1
- - als x 100% in PM (dus x=2w, mu_PM(x)=1 en alle andere mu(x)=0) dan is ed(x) = buy big = 0.4
etc.
Dankzij formule 8 kunnen we dus direct ed(x) berekenen uit x en de 7 membershipwaarden mu(x) van x (waarvan maximaal 2 niet-nul).
De regels (formule 7) en ed-classificatie (figuur 2 en formules 6) zitten volledig verwerkt in de 7 constanten Ci, daar hoeven we ons geen zorgen meer om te maken.
[1] kort en lang gemiddelde => x => fuzzy classificering x
[2] definieer een fuzzy classificering sell/buy, afhankelijk van je excess demand ed.
[3] maak fuzzy regels die classificering [1] op classificering [2] afbeelden.
[4] vat deze afbeelding samen in 1 formule = formule 8.
Wat uitgebreider:
[1]
De waarde x = de natuurlijke logaritme van de verhouding kort/lang gemiddelde, zie formule 3.
In Figuur 1 lees je de membershipwaarden van x af voor elk van de 7 klassen NL t/m PL.
[2]
Voor de sell/buy classificering is gekozen voor deze ed waarden (zie Figuur 2):
buy small = 0.1
buy medium = 0.2
buy big = 0.4
sell small = -0.1
sell medium = -0.2
sell big = -0.4
Formule 6 geeft aan hoe je de membershipwaarden mu(ed) voor deze classificering bepaalt uit de waarde van ed, vergelijkbaar met wat we onder [1] gedaan hebben. Echter: dankzij de keuze van de membershipdefinities (lineair en mooi opeenvolgend) kunnen we deze formules straks omzeilen.
[3]
Heuristic 1 zegt: hoe groter positive x, hoe sterker het buy signaal ed, maar als x al te positief wordt, dan sell (negatieve ed). En omgekeerd voor negatieve x.
Dit leidt tot de regels van formules 7:
regel 1: ALS x in PS, DAN ed advies = buy small = 0.1
regel 2: ALS x in PM, DAN ed advies = buy big = 0.4
regel 3: ALS x in PL, DAN ed advies = sell medium = -0.2
etc.
Dit zijn fuzzy regels, dus met een waarheidswaarde tussen nul en 1.
Voorbeeld 1:
Als x voor 0.4 (=40%) in PS zit en voor 0.6 (=60%) in PM, dan is het sell/buy advies
volgens de combinatie van regel 1 en regel 2:
ed(x) = 0.4 * (buy small) + 0.6 * (buy big) = 0.4 * 0.1 + 0.6 * 0.4 = 0.28
Voorbeeld 2:
Als x voor 0.3 (=30%) in PM zit en voor 0.7 (=70%) in PL, dan is het sell/buy advies
volgens de combinatie van regel 2 en regel 3:
ed(x) = 0.3 * (buy big) + 0.7 * (sell medium) = 0.3 * 0.4 + 0.7 * (-0.2) = -0.02
[4]
Formule 8 vat bovenstaande samen:
De excess demand ed(x) wordt direct berekend uit:
1. de membershipfuncties van x (er zijn maximaal 2 niet-nul, de overige zijn nul en vallen weg)
2. de constanten Ci = de waarden van de ed-classificatie:
- - als x 100% in PS (dus x=w, mu_PS(x)=1 en alle andere mu(x)=0) dan is ed(x) = buy small = 0.1
- - als x 100% in PM (dus x=2w, mu_PM(x)=1 en alle andere mu(x)=0) dan is ed(x) = buy big = 0.4
etc.
Dankzij formule 8 kunnen we dus direct ed(x) berekenen uit x en de 7 membershipwaarden mu(x) van x (waarvan maximaal 2 niet-nul).
De regels (formule 7) en ed-classificatie (figuur 2 en formules 6) zitten volledig verwerkt in de 7 constanten Ci, daar hoeven we ons geen zorgen meer om te maken.
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Re: Fuzzy systems
Hallo Arie,
Ik was op vakantie vandaar deze late reactie. Hartelijk bedankt voor je hulp
Ik was op vakantie vandaar deze late reactie. Hartelijk bedankt voor je hulp
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Re: Fuzzy systems
Hallo Arie,
Ik heb afgelopen week het bovenstaande geprogrammeerd en de resultaten waren inderdaad, zoals de auteur al aangaf, complex en niet echt voorspellend. Toch was het zeer leerzaam.
Ik ben nu bezig met een nieuwe heuristic die zich concencentreert op support & resistance rules
Ik moet dus allereerste support en resistance points in de data bepalen. Daarvoor worden de volgende formules gebruikt:
en
De auteur geeft de volgende informatie:
A “peak” is the price Pk such that Pk > Pk – 1 en Pk > Pk + 1, that is, a peak is a price point that is larger than its 2 neighbors.
Dit is ook begrijpelijk, want we moeten op zoek naar de hoogste punten in de data. In ieder geval om support/resistance levels te kunnen bepalen.
De auteur zegt ook dat:
The highest peak in the time interval (t – n, t – 1).
Als we kijken naar formule 11, dan willen we enkel weten of en zoja wat de resistance level is.
Als we nou voorbeeld data nemen:
Pk - 4 = 10
Pk – 3 = 10,25
Pk – 2 = 10,50
Pk – 1 = 10,50
Pk = 11
Pk + 1 = 10,75
Hoe ga ik hiermee om? Ik begrijp wat ze willen berekenen, maar door de manier van het opstellen van de formule vind ik het nogal verwarrend.
Ik heb afgelopen week het bovenstaande geprogrammeerd en de resultaten waren inderdaad, zoals de auteur al aangaf, complex en niet echt voorspellend. Toch was het zeer leerzaam.
Ik ben nu bezig met een nieuwe heuristic die zich concencentreert op support & resistance rules
Ik moet dus allereerste support en resistance points in de data bepalen. Daarvoor worden de volgende formules gebruikt:
en
De auteur geeft de volgende informatie:
A “peak” is the price Pk such that Pk > Pk – 1 en Pk > Pk + 1, that is, a peak is a price point that is larger than its 2 neighbors.
Dit is ook begrijpelijk, want we moeten op zoek naar de hoogste punten in de data. In ieder geval om support/resistance levels te kunnen bepalen.
De auteur zegt ook dat:
The highest peak in the time interval (t – n, t – 1).
Als we kijken naar formule 11, dan willen we enkel weten of en zoja wat de resistance level is.
Als we nou voorbeeld data nemen:
Pk - 4 = 10
Pk – 3 = 10,25
Pk – 2 = 10,50
Pk – 1 = 10,50
Pk = 11
Pk + 1 = 10,75
Hoe ga ik hiermee om? Ik begrijp wat ze willen berekenen, maar door de manier van het opstellen van de formule vind ik het nogal verwarrend.
-
- Nieuw lid
- Berichten: 18
- Lid geworden op: 03 aug 2016, 10:16
Re: Fuzzy systems
Hallo Arie,
Ik heb een andere vraag. Ik kon die van hierboven niet aanpassen/verwijderen, dus beschouw die aub als niet verstuurd Ik had verwacht dat ik deze Heuristic zelf kon toevoegen, omdat ik dacht dat het vrijwel hetzelfde was als hetgeen we al besproken hebben, Maar dat is niet het geval heb ik nu gemerkt.
--
De auteur heeft een ander artikel waar hij met een andere heuristic een test uitvoert.
Ik zou deze test graag willen reproduceren om te kijken of mijn resultaten ook met die van de auteur overeenkomen.
De auteur begint weer met een dynamisch prijsmodel (1 en 2)
Dit is in principe duidelijk. Bij 2 neem ik namelijk log (prijs / moving average n prijs) zoals we hierboven al gedaan hebben.
Vervolgens geeft de auteur de formules voor de ED6 en ED7.
Hij verwijst vervolgens naar de membership functies (hier heb ik een screenshot van geplaatst in mijn eerste post) en geeft vervolgens deze formule:
Hier verlies ik helaas een beetje het overzicht. Ik snap de formule 5 en 6, maar ik snap de gedachte erachter niet? Het komt waarschijnlijk, omdat hij een stap overslaat hier, geloof ik, en ik het daarom niet helemaal begrijp. Wellicht kun je dat uitleggen?
Bij de volgende stap komt voor mij wiskunde dat een stapje verder gaat dan mijn kennis. We willen hier namelijk de sterkte parameter A6 (t) en A6 (t) bepalen.
De auteur gaat vervolgens een “standard recursive least squares Algorithm with exponential forgetting” gebruiken. Hij gaat de error berekenen met deze formule:
Om een estimate van At te krijgen
De volgende formules gebruikt hij nog om een betere estimate voor At te krijgen, geloof ik:
Ik heb dus de volgende vragen:
1. Formule 5 en 6 begrijp ik, maar ik snap de gedachte erachter niet? Heeft de auteur hier een stap weggelaten?
2. Formule 7 t/m 13 worden gebruikt om At te berekenen. Ik snap echter niet hoe dit gebeurt? Er is nergens een “preciese” formule die A6(t) of A7(t) berekent
Ik hoop dat ik mijn vragen duidelijk geformuleerd hebt en dat het verhaal hierboven een beetje duidelijk is.
Alvast bedankt voor de moeite.
Ik heb een andere vraag. Ik kon die van hierboven niet aanpassen/verwijderen, dus beschouw die aub als niet verstuurd Ik had verwacht dat ik deze Heuristic zelf kon toevoegen, omdat ik dacht dat het vrijwel hetzelfde was als hetgeen we al besproken hebben, Maar dat is niet het geval heb ik nu gemerkt.
--
De auteur heeft een ander artikel waar hij met een andere heuristic een test uitvoert.
Ik zou deze test graag willen reproduceren om te kijken of mijn resultaten ook met die van de auteur overeenkomen.
De auteur begint weer met een dynamisch prijsmodel (1 en 2)
Dit is in principe duidelijk. Bij 2 neem ik namelijk log (prijs / moving average n prijs) zoals we hierboven al gedaan hebben.
Vervolgens geeft de auteur de formules voor de ED6 en ED7.
Hij verwijst vervolgens naar de membership functies (hier heb ik een screenshot van geplaatst in mijn eerste post) en geeft vervolgens deze formule:
Hier verlies ik helaas een beetje het overzicht. Ik snap de formule 5 en 6, maar ik snap de gedachte erachter niet? Het komt waarschijnlijk, omdat hij een stap overslaat hier, geloof ik, en ik het daarom niet helemaal begrijp. Wellicht kun je dat uitleggen?
Bij de volgende stap komt voor mij wiskunde dat een stapje verder gaat dan mijn kennis. We willen hier namelijk de sterkte parameter A6 (t) en A6 (t) bepalen.
De auteur gaat vervolgens een “standard recursive least squares Algorithm with exponential forgetting” gebruiken. Hij gaat de error berekenen met deze formule:
Om een estimate van At te krijgen
De volgende formules gebruikt hij nog om een betere estimate voor At te krijgen, geloof ik:
Ik heb dus de volgende vragen:
1. Formule 5 en 6 begrijp ik, maar ik snap de gedachte erachter niet? Heeft de auteur hier een stap weggelaten?
2. Formule 7 t/m 13 worden gebruikt om At te berekenen. Ik snap echter niet hoe dit gebeurt? Er is nergens een “preciese” formule die A6(t) of A7(t) berekent
Ik hoop dat ik mijn vragen duidelijk geformuleerd hebt en dat het verhaal hierboven een beetje duidelijk is.
Alvast bedankt voor de moeite.