Jump to content
Tom Next - Daytrading Community

Amibroker KBrain-System


tlu

Recommended Posts

Ein Blog der sich wohl mit AmiBroker beschäftigt.

Die einzelnen Sachen noch nicht so genau angeschaut.

 

http://stocktechnician.blogspot.com/

 

Über die Seite war ich auch mal gestolpert. Interessant - muss ich mir aber noch genauer anschauen. Beim KBrain-System z.B. bekomme ich überhaupt keine Signale - hast du das schon mal getestet?

 

 

Nur mal das

 

NMA Swing System

 

Hm, wie kommst du auf diese Werte? Handelst du auf Margin? Hier mein Backtest (nach Optimierung) auf den DAX seit 1996:

 

NMA_Swing_System_V._1.1.jpeg

 

Sieht nicht so toll aus.

Link to comment
Share on other sites

Beim KBrain-System

 

Bekomme ich den Code nicht runter geladen.

Kannst Du ihn hier einstellen?

 

Bei dem anderen System komme ich auf sehr unterschiedliche Ergebnisse.

Der Opimizer zeigt mir auch anderes an wie der Backtester, habe es aber auch nur auf die schnelle gemacht ohne mich wirklich um die Einstellungen zu kümmern.

Edited by ibelieve
Link to comment
Share on other sites

Bekomme ich den Code nicht runter geladen.

Kannst Du ihn hier einstellen?

 

Klar:

 

//KBrain System Coded by Karthikmarar. Blog. www.stocktechnician.blogspot.com email. karthikmarar@yahoo.com
//System based on the BrainTrend system in Metatrader
// The Turquiose colored Dot indicates start of a Up Trend
// The Magenta DOt indicates end of an Up move and beginning of a downmove
// The system is a Stop and reverse system
_SECTION_BEGIN("KBrain");
//========================Initiation========================
bts=ParamToggle("BrainTrend1 signal","No|Yes" ,0);
btst=ParamToggle("BrainTrend1 stop","No|Yes" ,0);
btsl=ParamToggle("BrainTrend1 stop line","No|Yes" ,0);
period=Param("Period",14,6,20,1);
x1=53;
x2=47;
d=2.3;
f=7;
s=1.5;
range=ATR(f);
Range1 = ATR(f)/d; 
Range2 = (ATR(f)*s)/4;
range3=ATR(10);
R = ((HHV(H,period) - C) /(HHV (H,period) -LLV (L,period))) *-100;
EMA1= EMA(R,Period);
EMA2= EMA(EMA1,5);
Difference= EMA1 - EMA2;
ZeroLagEMA= EMA1 + Difference;
value2=abs(ZeroLagEMA);


function PercentR( periods )
{
return -100 * ( HHV( H, periods ) - C )/( HHV( H, periods ) - LLV( L, periods ) ); 
}


for( i = period+10; i < BarCount; i++ ) 
{
C[0]=0;
Value2[0]=0;
p[0]=0;
Plot1[0]=0;
Plot2[0]=0;
Val1=0;
Val2=0;
temp[0]=0;
Value3[0]=0;
tm[0]=0;
p1[i]=0;
bt1[0]=0;
bt2[0]=0;
r[0]=0;
bt1a[0]=0;
bt2a[0]=0;
istop[0]=Val1[0];
stop[i]=Val1[0];
bstop[0]=0;
sstop[i]=0;
//==================================Indicators============================
{
if (value2[i] < x2 AND abs(Close[i]-Close[i-2]) > range1[i])
p[i] = 1;
else
{
if (value2[i] > x1 AND abs(Close[i]-Close[i-2]) > Range1[i]) 
p[i] = 2;

else

p[i]=0;
}
}

if ((value2[i] < x2 AND p[i] == 1) OR (value2[i] < x2 AND p[i] == 0))

{
if (abs(Close[i]-Close[i-2]) > Range1[i])
{
Plot1[i]=H[i];
Plot2[i]=L[i];
}
else
{
Plot1[i]=Plot1[i-1];
Plot2[i]=Plot2[i-1];
}
}
else
{
if ((value2[i] > x1 AND p[i] == 2) OR (value2[i] > x1 AND p[i] == 0))
	  
{
Plot1[i]=L[i];
Plot2[i]=H[i];			
}
else
{
Plot1[i]=Plot1[i-1];
Plot2[i]=Plot2[i-1];
}
}
//==================KBrain Signal ====================================
{
if (value2[i] < x2 AND (abs(Close[i]-Close[i-2]) > Range1[i]))
{
if (p[i] == 1 OR p[i] == 0)
Value3[i]=L[i]-range3[i];
val1[i]=Value3[i];
p[i]=1;
temp[i]=1;
}
else
{
temp[i]=temp[i-1];
}
{
if (value2[i] > x1 AND (abs(Close[i]-Close[i-2]) > Range1[i]))
{
if (p[i] == 2 OR p[i] == 0)
Value3[i]=H[i]+range3[i];
val2[i]=Value3[i];
p[i]=2;
temp[i]=2;;	
}

}
}
{

if (temp[i]==1 AND Plot1[i]>0 AND tm[i] != 1)
tm[i]= 1;

if (temp[i]==2 AND Plot2[i]>0 AND tm[i] != 2) 
tm[i]=2;

}
//===============================stop========================================
{
if (value2[i] < x2 AND (abs(Close[i]-Close[i-2]) > Range1[i])AND p[i] !=2)

  {
 value3[i]=L[i]-range3[i];
 va1[i]=Value3[i];
 p1[i]=2;
 r[i]=Va1[i];
 bstop[i]=Va1[i];
 bt2[i]=bt2[i-1];
 }
  
if (value2[i] > x1 AND (abs(Close[i]-Close[i-2]) > Range1[i])AND p[i] !=1)
  
 {
 Value3[i]=H[i]+range3[i];
 va2[i]=Value3[i];
 p1[i]=1;
   
 r[i]=Va2[i];
 sstop[i]=Value3[i];
 bt1[i]=bt1[i-1];
 }

 }



if (val1[i] == 0 AND val2[i] == 0 AND p[i] == 0 )
	 {
	 bstop[i]=bstop[i-1]; 
	 sstop[i]=sstop[i-1];
	 }
 

if (bstop[i]<bstop[i-1] AND tm[i]==1 AND tm[i-1]==1) bstop[i]=bstop[i-1];
if (sstop[i]>sstop[i-1] AND tm[i]==2 AND tm[i-1]==2) sstop[i]=sstop[i-1];
 
}
//=============================SYSTEM======================================
Mycolor=IIf(p==1,colorLime,IIf(p==2,colorRed,colorBlue));
PlotOHLC( Open,  High,  Low,  Close, "", Mycolor, styleBar| styleThick   ); 
PlotShapes( shapeCircle* (bts AND tm==1 AND Ref(tm,-1)==2),colorTurquoise, 0, bstop, 0 );
PlotShapes( shapeCircle* (bts AND tm==2 AND Ref(tm,-1)==1), colorCustom12, 0, sstop, 0 );
PlotShapes( IIf(btst AND p==1,shapeSmallCircle,Null), colorTurquoise,0,bstop,0);
Plot(IIf(btsl AND tm==1,bstop,Null),"",colorPaleBlue,1);
PlotShapes( IIf(btst AND p==2,shapeSmallCircle,Null), colorCustom12,0,sstop,0);
Plot(IIf(btsl AND tm==2,sstop,Null),"",colorLightYellow,1);
Buy=Cover=(bts AND tm==1 AND Ref(tm,-1)==2);
Sell=Short=(bts AND tm==2 AND Ref(tm,-1)==1);
SellPrice=ValueWhen(Sell,C,1);
BuyPrice=ValueWhen(Buy,C,1);
Long=Flip(Buy,Sell);
Shrt=Flip(Sell,Buy );
_SECTION_END();
//=================TITLE==========================================================
======================================
_SECTION_BEGIN("Title");
if( Status("action") == actionIndicator ) 
(
Title = EncodeColor(colorWhite)+ "KBrain V 1.0. " + " - " +  Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +
"  - " + Date() +" - "+"\n" +EncodeColor(colorYellow) +"Op-"+O+"  "+"Hi-"+H+"  "+"Lo-"+L+"  "+
"Cl-"+C+"  "+ "Vol= "+ WriteVal(V)+"\n"+ 
EncodeColor(colorLime)+
WriteIf (Buy , " GO LONG / Reverse Signal at "+C+"  ","")+
WriteIf (Sell , " EXIT LONG / Reverse Signal at "+C+"  ","")+"\n"+EncodeColor(colorWhite)+
WriteIf(Sell , "Total Profit/Loss for the Last Trade Rs."+(C-BuyPrice)+"","")+
WriteIf(Buy  , "Total Profit/Loss for the Last trade Rs."+(SellPrice-C)+"","")+
WriteIf(Long AND NOT Buy, "Trade : Long - Entry price Rs."+(BuyPrice),"")+
WriteIf(shrt AND NOT Sell, "Trade : Short - Entry price Rs."+(SellPrice),"")+"\n"+ 
WriteIf(Long AND NOT Buy, "Current Profit/Loss Rs."+(C-BuyPrice)+"","")+
WriteIf(shrt AND NOT Sell, "Current Profit/Loss Rs."+(SellPrice-C)+"",""));

_SECTION_END();

 

 

Bei dem anderen System komme ich auf sehr unterschiedliche Ergebnisse.

Der Opimizer zeigt mir auch anderes an wie der Backtester,

 

Äh - versteh ich jetzt nicht so ganz. Die Variante, die bei der Optimierung das beste Ergebnis erbracht hat, muss doch beim Backtest mit ebendiesen Parametern dieselben Zahlen ergeben? Oder wie meintest du das?

 

habe es aber auch nur auf die schnelle gemacht ohne mich wirklich um die Einstellungen zu kümmern.

 

Über welchen Zeitraum und mit welchen Einstellungen?

Link to comment
Share on other sites

Äh - versteh ich jetzt nicht so ganz. Die Variante, die bei der Optimierung das beste Ergebnis erbracht hat, muss doch beim Backtest mit ebendiesen Parametern dieselben Zahlen ergeben? Oder wie meintest du das?

 

Eigentlich ja,

aber sah so aus als wenn nicht.

 

Aber bin sehr oft auf Kriegsfuß mit AmiBroker.

Aber wie gesagt waren nur 5 Minuten wo ich mal geschaut hatte.

 

Mein Bild mit dem Ergebnis hier war seit Anfang dieses Jahres,

hatte dann auch welche seit 1996.

 

Muss mir das ganze mal in Ruhe anschauen

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...