Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Trading Idee: VarCCI

Geschrieben

Hallo!

 

Hier ein einfaches Tradingsystem (keine Ahnung, woher ich das habe). Ich handle damit den DAX long und short über ETFs. Kein System für Daytrader - ein Signal kann auch mal ein paar Wochen gültig sein.

 

Zunächst die Paramoptimize.afl im include Ordner, die vieles einfacher macht:

 

function popt( pname, defaultval, minv, maxv, step )
{
return Optimize( pname, 
Param( pname, defaultval, minv, maxv, step ),
minv, maxv, step );
}

 

Hier der eigentliche Code:

_SECTION_BEGIN("CCI variable");
//in-sample 2 Jahre
//3 Monate

#include<Paramoptimize.afl>

function MeanDev( array, mean, range ) 
{ 
 result = 0; 

  for( i = LastValue( range ); i < BarCount; i++ ) 
  { 
  result[ i ] = 0; 
  // the mean is not 'moving' over the range (outside the loop) 
  tm = mean[ i ]; 
  for( j = 0; j < range[ i ] AND ( i - j ) >= 0 AND ( i - j ) < BarCount; j++ ) 
  { 
	result[ i ] = result[ i ] + abs( array[ i - j ] - tm ); 
  } 
 
result[ i ] = result[ i ]/range[ i ]; 
 } 
  
 return result; 
} 

function VarCCI( array, period ) 
{ 

SMATP = MA(array,period );//1,2 

MD = MeanDev( array, SMATP, period  ); 

CCIx = (Avg - SMATP) / (0.015 * MD); 

return CCIx; 

} 
Const=popt("Konstante",20,30,45,1);
mult=popt("Mult.",4,0.5,5,0.5);

n = const + mult * sin( Cum(1) ); // variable period 

Plot(VarCCI(Avg, n),"VarCCI",colorGreen,styleLine); 
//Plot(1,"",IIf(varcci(Avg,n)>0,colorPaleGreen,colorRose),styleArea|styleOwnScale,0,1,-0.5,100);
//sig=Plot(2,"",IIf(Varcci(Avg,n)>0,colorGreen,colorRed),styleArea|styleOwnScale);



//Plot(CCI(n),"CCI",colorRed,styleLine); 

SetTradeDelays(1,1,1,1);
Buy=Cover=Cross(VarCCI(Avg,n),0);
Sell=Short=Cross(0,VarCCI(Avg,n));
Buy1=Ref(VarCCI(Avg,n)>0,-1);
Sell1=Ref(VarCCI(Avg,n)<0,-1);
Buy1=ExRem(Buy1,Sell1);
Sell1=ExRem(Sell1,Buy1);
StaticVarSet("varccibuysignals", Buy1);
StaticVarSet("varccisellsignals", Sell1);
StaticVarSet("varcci", varcci(Avg,n));



//OptimizerSetEngine("cmae");
_SECTION_END();

 

Die Signale stelle ich im DAX-Chart so dar:

varccibuysig = StaticVarGet("varccibuysignals");
varccisellsig = StaticVarGet("varccisellsignals");
varcci = StaticVarGet("varcci");
PlotShapes(varcciBuysig*shapeUpTriangle,colorGreen,0,L,-25);
PlotShapes(varcciSellsig*shapeDownTriangle,colorRed,0,H,-25);
Varccicolor=IIf(Varcci>0,colorGreen,colorRed);
Plot(2,"",Varccicolor,styleArea|styleOwnScale,0,100,0);

 

Ich verwende keine System ohne eine gründliche Walk-Forward Analyse. Das Bild zeigt die WFA für dieses System vom Februar. Die OOS Equity Kurve (und der Drawdown) sind dunkelgrün, BUy&Hold ist hellblau und die Relative Performance ist giftgrün. Das System hat immerhin fast 18% p.a. gebracht.

 

CCI_variable_mit_CARMDD.png

Bearbeitet von tlu

Featured Replies

Geschrieben
  • Autor
Kleine Ergänzung: Gehandelt wird am Folgetag zur Eröffnung. Gebühren: 6 EUR pro Trade (entspricht den 5,90 EUR im Direkthandel bei Flatex). Keine Stops.
Geschrieben

Moin,

 

Er zeigt mir leider ein paar Fehler an mit denen ich nicht wirklich was anfangen kann.

 

Die Zeile "return CCIx;" wird auch noch Angezeigt.

post-1129-1246424822_thumb.png

Geschrieben
Keine Stops.

 

Tradest du wirklich ohne Stopps? :wub: Da muss dann aber schon eine "gewaltige" Ressource an Liquidität vorhanden sein, ansonsten wäre das doch eher wie ein Kamikazieflug..., nur in dem Fall, dass der Kurs dann doch einmal anders läuft.

Geschrieben
Tradest du wirklich ohne Stopps? :wub:

 

Das traden ohne Stop ist eigentlich nicht das Problem.

Es kommt nur auf das System drauf an und Deine Positionsgröße.

Geschrieben
  • Autor
Moin,

 

Er zeigt mir leider ein paar Fehler an mit denen ich nicht wirklich was anfangen kann.

 

Die Zeile "return CCIx;" wird auch noch Angezeigt.

 

Hm, merkwürdig. Bei mir funktioniert es problemlos. Welche AB Version benutzt du denn?

Geschrieben
Welche AB Version benutzt du denn?

War das Problem.

 

Bei mir sieht das dann so aus.

Stimmt das mit Deinem über ein?

post-1129-1246446402_thumb.png

post-1129-1246446407_thumb.png

post-1129-1246446411_thumb.png

Geschrieben

Teste ich zurück seit 1995 geht die TQ aber ziemlich runter.

Gibt wohl auch schlechtere Zeiten für das System.

 

Eine kleine Erklärung was das System macht?

Wie ist die Logik da hinter?

Geschrieben
  • Autor
Teste ich zurück seit 1995 geht die TQ aber ziemlich runter.

Gibt wohl auch schlechtere Zeiten für das System.

 

Eine kleine Erklärung was das System macht?

Wie ist die Logik da hinter?

 

Es ist letztlich ein CCI, der ein wenig anders berechnet wird und dadurch etwas adaptiv ist.

 

Ich finde dieses System gut, weil

1. es ziemlich simpel ist. Ich bevorzuge einfache Systeme - komplexe System funktionieren nach meiner Erfahrung in der Realität meist nicht gut.

2. es im Walk-Forward Test gut abgeschnitten hat - und das ist für mich der entscheidende Faktor. Im Vergleich zum normalen CCI hat dieser modifizierte CCI dabei besser abgeschnitten.

 

Zum Thema Walk-Forward: Wie schon an anderer Stelle erwähnt, bastel ich gerade an einem Code, um eine aussagefähige Walk-Forward Analyse hinzukriegen. Das Bildchen im ersten Posting stammt von einer älteren Version. Es werden diverse einfache Metrics wie CAR, MaxDD, K-Ratio, UPI, R2 berechnet, die hoffentlich eine vernünftige Beurteilung zulassen. Was freilich fehlt, sind Trade-orientierte Metrics wie z.B. #Trades, Avg Profit/Loss usw. Diese Detailinformationen sind im Prinzip alle in der Datei WalkForward.html im AB Programmverzeichnis enthalten. Sie müssten "nur" irgendwie extrahiert werden, und das geht weit über meine Programmierkenntnisse hinaus. Wenn jemand von euch dazu in der Lage ist, wäre das natürlich superklasse. Ansonsten müssen wir wohl warten, bis TJ das in AB einbaut, was sicherlich irgendwann passieren wird.

Geschrieben
1. es ziemlich simpel ist. Ich bevorzuge einfache Systeme - komplexe System funktionieren nach meiner Erfahrung in der Realität meist nicht gut.

 

Mache ich auch.

 

Aber wenn ich mir mein Bild anschaue glaube ich kaum das ich wenn ich 2003 damit angefangen hätte

bis 2008 durchgehalten hätte um dann meinen Gewinn zu machen.

 

Wenn ich mir die Stecken anschaue wo das System Gewinn gemacht hat,

könnten wir uns so langsam wieder dem Ende nähern.

 

Man muss mal die Zeiten wo es nicht so lief genauer unter die Lupe nehmen, vielleicht findet man ja was.

post-1129-1246454254_thumb.png

Geschrieben
  • Autor
Mache ich auch.

 

Aber wenn ich mir mein Bild anschaue glaube ich kaum das ich wenn ich 2003 damit angefangen hätte

bis 2008 durchgehalten hätte um dann meinen Gewinn zu machen.

 

Wenn ich mir die Stecken anschaue wo das System Gewinn gemacht hat,

könnten wir uns so langsam wieder dem Ende nähern.

 

Man muss mal die Zeiten wo es nicht so lief genauer unter die Lupe nehmen, vielleicht findet man ja was.

 

Mit welchen Einstellungen hast du das getestet? Hast du die Default-Parameter genommen oder vorher optimiert?

 

Auf jeden Fall ist das ein reiner In-sample-Test. In meinem Walk-Forward Test habe ich als In-sample-Periode 2 Jahre genommen und als out-of-sample 3 Monate, d.h. alle 3 Monate wird neu optimiert. Daraus ergibt sich die out-of-sample Equity-Kurve in dem Bild im 1. Posting. Reine in-sample-Tests halte ich für wenig relevant. Ich habe schon zu oft erlebt, dass Handelssysteme ganz tolle in-sample Equity-Kurven hatten, aber im out-of-sample-Test total versagten. Was im out-of-sample Test nicht gut aus sieht, wird daher verworfen, selbst wenn der in-sample-Test sehr gut ist. Ich mache als erstes eine Optimierung über den gesamten Zeitraum, um eine Vorstellung über die zu wählenden Parameter-Bereiche zu bekommen und gehe dann sofort zum Walk-Forward Test. Wobei ich auch hier immer mehrere Kombinationen der IS- und OOS-Perioden teste und auch ggfs. noch die Parameter-Bereiche etwas adjustiere.

Geschrieben
  • Autor
ist das ein Smooth-CCI? Also ein geglätteter?

 

Der Code für diesen Indikator ist ja - wie schon erwähnt - nicht von mir. Im Vergleich zum normalen CCI ergeben sich gewisse Unterschiede, aber ein Glättung ist m.E. nicht zu beobachten. Wie gesagt, hat er im Walk-Forward Test besser abgeschnitten als der normale CCI, und das war für mich das entscheidende Kriterium.

Geschrieben
Mit welchen Einstellungen hast du das getestet? Hast du die Default-Parameter genommen oder vorher optimiert?

 

Ich habe es so genommen wie es ist.

Ansonsten hast Du viele Sachen in Deinem Text wo ich keine Ahnung von habe.

 

Das einzige was ich jetzt sehe wenn ich mir den Chart anschaue ist,

das es sehr oft Zeiten gibt wo das Programm einfach hin und her schwenkt und das mit dem Nachteil das ich zum Hoch kaufe und zum Tief verkaufe.

 

Wenn ich jetzt davon ausgehe das ich alle 2 Monate die Parameter ändern muss weiss ich jetzt schon das ich immer 1 Monat zu langsam bin.

Geschrieben

Was mir grade auffällt,

 

ist hier nicht ein Fehler?

 

Const=popt("Konstante",20,30,45,1);

 

1) sollte doch der voreingestellte Wert sein

2) min

3) max

4) die Schrittgröße beim Optimizer

 

Liegt die 20 doch Ausserhalb der Auswahl,

oder habe ich jetzt einen Denkfehler?

Geschrieben
  • Autor
ist hier nicht ein Fehler?

 

Du hast recht. Ich hatte die minmax-Werte für die Optimierung angepasst. Kannst ja beliebig ändern und anschließend optimieren.

Bearbeitet von ronner
Zitat gekürzt - bitte auf notwendige Länge achten

Geschrieben
Hallo!

 

Hier ein einfaches Tradingsystem (keine Ahnung, woher ich das habe). Ich handle damit den DAX long und short über ETFs. Kein System für Daytrader - ein Signal kann auch mal ein paar Wochen gültig sein.

 

Hmmm,

 

Handelst Du das Ding wirklich Real?

 

Wenn ja seit wann und hast Du eine Auswertung drüber?

 

Ich habe mir jetzt verschiedene Einstellungen angeschaut,

aber es gibt immer wieder Zeiten wo der CCI um die Null Linie schwankt und eine Menge Fehlsignale macht.

 

Kann ich mich nicht wirklich mit anfreunden.

Geschrieben
  • Autor
Hmmm,

 

Ich habe mir jetzt verschiedene Einstellungen angeschaut,

aber es gibt immer wieder Zeiten wo der CCI um die Null Linie schwankt und eine Menge Fehlsignale macht.

 

Kann ich mich nicht wirklich mit anfreunden.

 

Wie erwähnt, sind für mich die out-of-sample Ergebnisse maßgeblich. Du hast einen einfachen Backtest über einen bestimmten Zeitraum gemacht (mit möglicherweise optimierten, aber fixen Parametern). Im Walk-Forward Test wird dagegen alle 3 Monate neu über die letzten 2 Jahre optimiert und die dann neuen Parameter-Werte benutzt (daraus ergibt sich die out-of-sample Equity-Kurve). Das setze ich auch so konsequent in der Praxis um.

 

Du solltest dich m.E. wirklich mal mit Walk-Forward Optimierung beschäftigen - siehe http://www.amibroker.com/guide/h_walkforward.html. Ist zwar auf Englisch, aber dennoch gut verständlich. In Amibroker lässt sich das jedenfalls sehr einfach umsetzen. Mache dich aber darauf gefasst, dass das relativ lange dauern kann, je nachdem, über welchen Zeitraum durch die Optimierung laufen lässt (in meinem Fall seit 1.1.1996).

Geschrieben

Kann es sein das man unangemeldet den Thread hier nicht lesen kann?

 

Wo bei es bei einer Verlinkung oder Versendung von Seiten hier immer wieder Probleme gibt.

 

Unserem neuen Mitglied Oldschuren musste ich 5 Adressen senden bis er eine hatte wo mit er bei euch auf die Seite kam.

Vielleicht hat er ja jetzt nach seiner Anmeldung weniger Probleme.

Geschrieben
Kann es sein das man unangemeldet den Thread hier nicht lesen kann?

Doch, den Thread kann man auch als Gast einsehen. Die Anzahl an Klicks/Tag ist allerdings begrenzt und gilt für das komplette Forum, aber sobald man sich anmeldet, ist auch diese Limitierung aufgehoben.

Geschrieben
Wo bei es bei einer Verlinkung oder Versendung von Seiten hier immer wieder Probleme gibt.

 

Hallo ibelieve,

um das von Krümel bereits Gesagte noch zu ergänzen: Ja, es gibt hinsichtlich der Leserechte globale Einschränkungen.

Das ist kein "Problem" im Sinne von Fehler, sondern gewollt.

Eine bestimmte Anzahl an Klicks hat ein Besucher/ Gast frei, danach schlägt ihm die Forensoftware vor, sich zu registrieren.

 

 

Vielleicht hat er ja jetzt nach seiner Anmeldung weniger Probleme.

 

Davon gehe ich aus, ja.

Wenn nicht, nehme ich mich gerne der Angelegenheit an und versuche das schnellst möglich zu klären.

Geschrieben
Davon gehe ich aus, ja.

Wenn nicht, nehme ich mich gerne der Angelegenheit an und versuche das schnellst möglich zu klären.

 

Bekam ich grad von Oldschuren auf einem anderen Board

 

...jetzt wird schon wieder zu ig-market weiter geleitet...

 

Nach dem er mir gestern schrieb das es seit der Anmeldung eigentlich lief.

Geschrieben
  • Autor
Du solltest dich m.E. wirklich mal mit Walk-Forward Optimierung beschäftigen - siehe http://www.amibroker.com/guide/h_walkforward.html. Ist zwar auf Englisch, aber dennoch gut verständlich. In Amibroker lässt sich das jedenfalls sehr einfach umsetzen.

 

@ibelieve: Hast du dich mal damit beschäftigt? Hast du noch Fragen dazu? Sollten wir vielleicht hier einen Thread über Walk-Forward Optimierung eröffnen? Ich würde dann auch meinen Code zur WFA beisteuern. Der ist zwar noch nicht fertig bzw. noch nicht ganz so, wie ich ihn haben will. Aber vielleicht können wir gemeinsam daran basteln, und vielleicht haben auch noch einige andere hier Ideen dazu.

Geschrieben
  • Autor
Tradest du wirklich ohne Stopps?

 

Hatte ganz vergessen zu antworten. Ich habe bis jetzt noch keine Stopp-Strategie gefunden, die die Performance eines Systems nicht ganz erheblich beeinträchtigt hätte (egal ob das nun fixe, Trailing oder Chandelier-Stopps sind). Wenn du eine kennst - bitte schön, ich bin stark daran interessiert. :correct: Ich räume aber ein, dass ich in meinem DAX-Chart eine Stopp-Linie mitziehe, so dass ich im Katastrophenfall doch mal die Reißleine ziehen kann. Das ist aber bislang so gut wie nicht vorgekommen, da der VarCCI recht gute Signale geliefert hat. Aber dennoch ist insofern zugegebenermaßen eine diskretionäre Komponente enthalten.

Geschrieben
Hatte ganz vergessen zu antworten. Ich habe bis jetzt noch keine Stopp-Strategie gefunden, die die Performance eines Systems nicht ganz erheblich beeinträchtigt hätte (egal ob das nun fixe, Trailing oder Chandelier-Stopps sind).

Geht mir genau so (zumindest was meine EAs auf den FDAX betrifft). Jeglicher SL - aber auch ein Take Profit - macht meine Systeme schlechter. Risikobegrenzung findet in dem Fall über die Wahl einer kleinen Positionsgröße statt, die bspw. so gewählt wird, dass der historische Drawdown 15% des Kapitals nicht überschreitet.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.