Dienstag, 16. April 2024, 11:20 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

klexer

unregistriert

1

Donnerstag, 24. Oktober 2013, 18:49

Bollinger Band Periode abhängig von der Range

ich möchte gern beim oberen BBand die Perioden von der Range abhängig machen, aber er frisst nur const-Variablen.

Gibts da einen Trick zum umgehen ?

global calc ATRKomp: Komp(#Ref(GD(High-Low, 6, S), -1)#, #T#) ;
global const ParA: ATRKomp * 22;
global calc BedLBolTop: high > BBandTop(close, ParA, S, 2);

Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Sonntag, 27. Oktober 2013, 10:56

Hallo Klexer

Zunächst gibt es momentan m.W. keinen allgemeinen Gleitenden Durchschnitt (GD) mit variabler Periodenzahl in Investox (wohl aber den Sonderfall der variablen exponentiellen Glättung, PS *). Man müsste also überlegen, ob und wie man einen GD mit variabler Glättung aufbauen und dann diesen modifizierten Bollinger Bändern unterschieben will (die Frage an Herrn Bollinger wäre, ob das noch seine Bänder wären ...)

Generell ergibt sich hier aber ein anderes Problem, auch wenn man einen GD mit variabler Periodenzahl hat: Du legst in Deinem Beispiel einfach die horizontale Amplitude einer (schon wieder eine fixe Periodenzahl übrigens!) Periodenzahl (ATR, das ist die Y-Achse!) um und möchtest damit die x-Achse unmittelbar flexibilisieren. Den Zusammenhang kann ich so nicht erkennen, warum die y-Achse die x-Achse ungefiltert beeinflussen sollte!

Anders sieht die Sache m.E. aus, wenn Du auf der x-Achse selbst über die y-Amplitude Volatilitäts-Spitzen suchen würdest, eine richtige Zyklen Analyse also! Dann wäre das ganze eine Prognose für die durchschnittliche Dauer von Volatilitäs-Zyklen. Und dann würde es möglicherweise Sinn machen, die x-Achsen (Zeit-) Perioden zu variieren.

Ein praktisches Beispiel, einmal aus dem Supply-Chain-Management statt aus dem Börsen-Umfeld, ist hier dargestellt:

Zitat

Prognose für Auftragspositionen

Das System addiert alle Auftragspositionen, die es während der optimalen Anzahl der Vergangenheitswochen gab, und dividiert das Ergebnis durch diese optimale Anzahl der Vergangenheitswochen. ...

Grob gesagt geht es darum, wieviele Bändern man in der Fabrik schon mal vorausschauend wann hochfährt und wieviele Lastkraftwagen man vorhält, um später die vorher vermuteten Bedarfe zeitnah ausliefern zu können.

Auf Deinen Wunsch übertragen müsste man also wenn schon, dann Zeiten mit hoher und niedriger Volatilität finden (y-Achse), den Perioden-Abstand (der Spitzen und Täler) auf der x-Achse messen, einen (sich über die Zeit ändernden) Mittelwert bilden und diesen dann als Periodenwert in den GD und die abgeleitete Berechnung der Bollinger Bänder einspeissen!

Jetzt fehlt uns nur noch eine Handels-Idee, die man mit solch einem Konstrukt backtesten könnte ;(


PS *: wiewohl sich auch der Standard GD mit Investox Mitteln hinreichend einfach mit einer variablen Periondenzahl abbilden liesse.
Gruss
Bernd

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Bernd« (27. Oktober 2013, 11:10)


klexer

unregistriert

3

Montag, 28. Oktober 2013, 12:48

Hallo Bernd, hier eine Idee

Beschreibung für System 'weniger Trades, mit Geb '
Uhrzeit: 28.10.2013 12:44:17
Angelegt am: 01.07.2013 10:16:35
Zuletzt bearbeitet: 28.10.2013 12:44:09
Komprimierung: [b]Spannenchart, Kursspanne 24 Ticks, Mindestumsatz 10000[/b]
auf EUR@IDEALPRO_CASH_JPY-BID
***** Regeln ******
Enter Long:
EL
Enter Short:
ES
Übergreifende Definitionen:
global calc MFI: MFI(13) ;
global const ParL: 37 ;
global const ParS: 17 ;
global calc BedLBolTop: high > BBandTop(open, ParL, S, 2);
global calc BedSBolBot: low < BBandBot(open, ParS, S, 2);
Global calc ZeitAL: 14 ;
Global calc ZeitBL: ZeitAL+ 10 ;
Global calc ZeitAS: 9 ;
Global calc ZeitBS: ZeitAS+ 3 ;

global calc EL: BedLBolTop=1 and Ref(MFI,-1) > 72 and Zwischen(DatePart(h),ZeitAL,ZeitBL) and high >= Ref(high,-1) + 0.01 ;

global calc ES: BedSBolBot=1 and Ref(MFI,-1) < 59 and Zwischen(DatePart(h),ZeitAS,ZeitBS) and low <= Ref(low,-1) - 0.01 ;

***** Test-Einstellungen *****

Positionen: Long+Short
Richtung stets wechseln!
Enter-Basis: MAX(BBandTop(open, ParL, S, 2),open)
Short: MIN(BBandBot(open, ParS, S, 2),open)
Delay: 0
Exit-Basis: MIN(BBandBot(open, ParS, S, 2),open)
Short: MAX(BBandTop(open, ParL, S, 2),open)
Delay: 0
Buy/Hold-Basis: Close
Trade-Mindestdauer: 0
Out-Mindestdauer: 1
Startkapital: 1000 ¥
Margin: 100%
Risikofreie Zinsen 0
Gewinn-/Verlustberechnung verwendet High/Low-Kurse
Entry-Gebühren: 0 ¥
Exit-Gebühren: 0 ¥
Mindest-Gebühren: 200 ¥
Slippage: 0,005%
Portfolio Zinssatz: 5
Risikotoleranz: 24
Money-Manag. Feste Stückzahl
Stückzahl 25000
Kein Kapitalmangel-Stop

Das Problem, das ich damit lösen will ist die zusammenschmeldzende Range mit gleichzeitiger Seitwärtsphase. Im EURJPY.

Ursprung dieser Idee war von Markus Heitkötter
»klexer« hat folgendes Bild angehängt:
  • Bollinger Spannanchart.PNG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »klexer« (28. Oktober 2013, 12:58)


Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

4

Montag, 28. Oktober 2013, 14:24

Hallo klexer

Verstehe die Absicht. Zusätzlich zu den Bollingers hast Du aber im gezeigten Coding noch eine andere volatilitätsabhängige Komponente: die Spannencharts mit der fixen Auflösung auf hier 24 Ticks. Die desswegen ebenfalls nötigen Anpassungen bleiben aber auf Deinem angestrebten Weg (BB's mit variabler Periode) ungelöst.

Natürlich könntest Du nun das System auf Tickchange umsetzen, die Spanne via Komp() robustbar machen und so auch hier eine bessere Anpassung im Spannenchart Bereich anstreben - wobei man öfters nach-optimieren müsste, als einem lieb ist.

Oder Du könntest einmal folgendes probieren:
* Programmiere ein kleines "Markt Analyse-System", welches die Volatilitätszyklen bestimmt und sagen wir einteilt in 1=niedrige Volatilität, 2=mittel und 3=hoch
* gib' diese Volatilitätskennzahl als Zusatz (-berechnung) in Investox weiter (oder als Berechnungstitel, falls Du für die Berechnung der Kennzahl lange Historien benötigst, und mit den Berechnungen nicht die eigentlich handelnden Systeme belasten möchtest)
* erstelle aus dem geposteten Coding 3 Systeme: z.B. eines für Zusatz=1 mit 8 Ticks Spanne, 2 mit 16 Ticks Spanne und 3 mit 24 Ticks Spanne
* nun könntest Du für jede der definierten Marktphasen das zugehörige System robusten

Die Idee wäre, dass Du nun zwar speziell optimierte Systeme mit weiterhin fixen BB Periodenzahlen im Einsatz hast - diese aber über das vorgeschaltete Marktanalyse System nur aktiv sind wenn sich der Markt auch für sie eignet und dann auch die Spanne marktnah ist! (Ggf. bei den niedrig-Vola Systemen auch die Anforderungen an den Umsatz herunternehmen).

Und über den PF-Test ist so auch mit Standard-Investox Mitteln ein Backtest über alle 3 Systeme schnell zu sehen.

Wenn Dir 3 Systeme zuwenig sind, nimm' 5 ;) aber die Idee is klar, oder?

Die andere Idee, die Bollinger-Bänder in der Periode zu flexibilisieren, wäre sicher auch programmierbar, ich hab' da schon drüber nachgedacht. Allerdings denke ich nicht, dass es für das gepostete Coding unter Verwendung von Spannencharts zielführend wäre.

Falls Du mit der dargelegten Idee weiterkommst, wäre es nett, wenn Du Deine Erfahrungen berichtest!
Gruss
Bernd

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Bernd« (28. Oktober 2013, 14:54)


klexer

unregistriert

5

Montag, 28. Oktober 2013, 15:42

Hallo Bernd

"die Spanne via Komp() robustbar machen"

ich will sie eigentlich nicht robusten sondern sie soll sich an die Gegebenheiten anpassen, aber das wird wohl nicht gehen
Es sollte so sein:
global calc Range: Komp(#Ref(GD(High-Low, [10,5,30,5,30,1,0.3880,I], S), -1)#, #T#) ;
global calc TickSize: : Range * Komp(#Close#, #Spanne/24T/10000#) ;,

Somit würde sich die Ticksize ändern.

klexer

unregistriert

6

Montag, 28. Oktober 2013, 17:46

so wie es aussieht, werd ich bei allen Komprimierungen das gleiche Problem haben:

Wenn die Range kleiner wird und es seitwärts geht (so wie seit Juli 2013), dann schmieren alle Komps ab...

ich muss wohl eher ausschalten, wenn die Tages-Range kleiner 1 Yen wird, werd die Ergebnisse posten.

klexer

unregistriert

7

Montag, 28. Oktober 2013, 20:34

mit PosSize wesentlich bessere Ergebnisse

global calc ATRKomp: Komp(#Ref(GD(High-Low, [15,5,30,5,30,1,2.8748,I], S), -1)#, #T#) ;
global calc Pos: 1/ATRKomp ;
global calc PosSize: Pos*37500 ;

damit habe ich wesentlich bessere Ergebnisse erzielt, die Kurve ist glatter und das max theoret KapRisk auf annehmbaren 5,25 %

jetzt werd ich noch die anderen Komp-Einstellungen damit testen

aber das absaufen am Ende, wenn die Vola abnimmt und es seitwärts geht ist immer noch da
»klexer« hat folgendes Bild angehängt:
  • Bollinger Spannanchart Komp plus PosSize.PNG

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »klexer« (28. Oktober 2013, 20:39)


Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

8

Sonntag, 10. November 2013, 22:21

Hallo klexer

aber das absaufen am Ende, wenn die Vola abnimmt und es seitwärts geht ist immer noch da

In der Tat benötigt jede Handelsidee ein bestimmtest Umfeld. Es gibt sogar Handelsansätze, die *nur* in Zeiten niedriger Volatilitäten performen. Und natürlich solche Ansätze, die eine bestimmte (höhere) Vola benötigen, um zu funktionieren.

Du könntest
* für den Ansatz mit der gezeigten Kapitalkurve einen Filter einbauen, um das System unterhalb einer noch eben sinnvollen Vola aus dem Markt zu nehmen. Dadurch würde in der Zeit, in der dieser Handelsansatz eh nicht funktioniert, das Kapital für andere Handelsideen frei!
* den Ansatz auf andere Märkte ausweiten, denn nicht immer haben alle Märkte gleichzeitig die selben Vola Verhältnisse; dann würde das Kapital aufgrund des vorstehend genannten Filters verstärkt den "momentan passenden" Märkten zur verfügung stehen.
* andere Systeme nachentwickeln, die gerade solche niedrigen Vola-Phasen z.B. für Range-Trading ausnutzen, und damit den Ausfall kompensieren (System Portfolio Ansatz)

Nicht sinnvoll fände ich es, wenn man versucht, eine einzelne Handelsidee immer für jeden Markt "hinbiegen" zu wollen. Eher nach dem Motto verfahren: wenn eine Idee zur Zeit nicht geht, geht sie eben nicht.
Gruss
Bernd