[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Scrolling the chart why results different views and datas?



PureBytes Links

Trading Reference Links



most likely adding
 
SetBarsRequired(-2,-2);
on top of your code will remove your problem.
 
rgds, Ed
 
 
 
----- Original Message -----
Sent: Monday, July 06, 2009 9:33 AM
Subject: [amibroker] Scrolling the chart why results different views and datas?

Hi Programmers!

I'm working on an Amibroker indicator. I realised an interesting problem with the view of chart displaying.

When I'm scrolling the chart, sometimes my indicator lines stop working and shows different values.

I show you three picture:

http://kepfeltoltes.hu/thumb/090706/chart_0_www.kepfeltoltes.hu_.jpg

http://kepfeltoltes.hu/thumb/090706/chart_1_www.kepfeltoltes.hu_.jpg

http://kepfeltoltes.hu/thumb/090706/chart_2_www.kepfeltoltes.hu_.jpg

You can see, the cursor is always on the same bar: 2008.03.03. 16:00:00

The first and the third picture shows the chart displayed well. But on the second one, all of my lines goes to wrong.

I don't the cause of this occurrence or how could I avoid it.

Do you have any idea? What can I do? Why doesn't display my indicator well?

Thank you in advance!

Relative

_____________________________

I use the Amibroker version 5.20 rc1 Professional Edition.

And here is the code of my indicator:

_N(Title = StrFormat("\\c16[ Powered by www.MRHOW.eu © 2009 ] - \\c16{{NAME}} -\\c42 {{INTERVAL}}\\c16 \\c10{{DATE}}\\c16 Open \\c47%g\\c16, Hi \\c25%g\\c16, Lo \\c34%g\\c16, Close \\c55%g (%.1f%%)\\c16, ", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() | styleClipMinMax );

track = 1500 ;

Col0 = 55 ;
Col1 = 29 ;
Col2 = 32 ;

Col7 = 55 ;
Col8 = 29 ;
Col9 = 32 ;

Level1 = 1 ;

LO[0] = 0 ;
SO[0] = 0 ;

the_high = H[0] ;
the_low = L[0] ;

reg_h[0] = 0 ;
reg_l[0] = 0 ;

trend[0] = 0 ;
trend_color = 33 ;
exit[0] = 0 ;

trade_color = 33 ;

priceatbuy[0] = 0 ;
trade[0] = 0 ;

entrance_high[0] = 0 ;
entrance_low[0] = 0 ;
entrance_close[0] = 0 ;

f1 = C ;
f2 = C ;
f3 = C ;

i=0;

//==============================================================================================================
// X Y Variables ==============================================================================================================

x=0;
y=0;

xEma2 = EMA(x,2)/EMA(y,2) ;
xEma3 = EMA(x,3)/EMA(y,3) ;
xEma4 = EMA(x,4)/EMA(y,4) ;
xEma5 = EMA(x,5)/EMA(y,5) ;
xEma6 = EMA(x,6)/EMA(y,6) ;
xEma7 = EMA(x,7)/EMA(y,7) ;
xEma8 = EMA(x,8)/EMA(y,8) ;
xEma9 = EMA(x,9)/EMA(y,8) ;
xEma10 = EMA(x,10)/EMA(y,10) ;

yEma2 = EMA(y,2)/EMA(x,2) ;
yEma3 = EMA(y,3)/EMA(x,3) ;
yEma4 = EMA(y,4)/EMA(x,4) ;
yEma5 = EMA(y,5)/EMA(x,5) ;
yEma6 = EMA(y,6)/EMA(x,6) ;
yEma7 = EMA(y,7)/EMA(x,7) ;
yEma8 = EMA(y,8)/EMA(x,8) ;
yEma9 = EMA(y,9)/EMA(x,8) ;
yEma10 = EMA(y,10)/EMA(x,10) ;

// end of X Y Variables ==============================================================================================================
//==============================================================================================================

// ==============================================================================================================
// FUNCTIONS

function FIBOS() {
if ( trend[i] == 2 ) {
f1[i] = the_low[i] + ( the_high[i] - the_low[i] ) * 0.236 ;
f2[i] = the_low[i] + ( the_high[i] - the_low[i] ) * 0.382 ;
f3[i] = the_low[i] + ( the_high[i] - the_low[i] ) * 0.618 ;
}
if ( trend[i] == 1 ) {
f1[i] = the_high[i] - ( the_high[i] - the_low[i] ) * 0.236 ;
f2[i] = the_high[i] - ( the_high[i] - the_low[i] ) * 0.382 ;
f3[i] = the_high[i] - ( the_high[i] - the_low[i] ) * 0.618 ;
}
}

// end of FUNCTIONS
// ==============================================================================================================

// ==============================================================================================================
// LOOP INTERACTION

for( i = 0; i < BarCount; i++ ) {

// ====================================================================================
// SIGNS
if ( i > 150 ) {

// --------------------------------------
// continuity
if ( i > 2 ) {
trend_color[i] = trend_color[i-1] ;
trade_color[i] = trade_color[i-1] ;
reg_h[i] = reg_h[i-1] ;
reg_l[i] = reg_l[i-1] ;
the_high[i] = the_high[i-1] ;
the_low[i] = the_low[i-1] ;
exit[i] = exit[i-1] ;
trend[i] = trend[i-1] ;
entrance_high[i] = entrance_high[i-1] ;
entrance_low[i] = entrance_low[i-1] ;
entrance_close[i] = entrance_close[i-1] ;
tracker[i] = the_high[i] - the_low[i] > track ;
}
// --------------------------------------

// --------------------------------------
// check the new High level
if ( H[i] > the_high[i] ) {
the_high[i] = H[i] ;
reg_h[i] = i ;
}
// check the new Low level
if ( L[i] < the_low[i] ) {
the_low[i] = L[i] ;
reg_l[i] = i ;
}
// --------------------------------------

// --------------------------------------
FIBOS();
// --------------------------------------

// --------------------------------------
// First OUT
if ( exit[i] == 0 ) {
if ( tracker[i-1] ) {
// Exit to Long
if ( C[i-2] < the_low[i-2] + ( the_high[i-2] - the_low[i-2] ) * 0.382 AND
C[i-1] > the_low[i-1] + ( the_high[i-1] - the_low[i-1] ) * 0.382 ) {
// Fibo 1 Crossed
the_high[i] = H[i-1] ;
reg_h[i] = i-1 ;
exit[i] = 1 ;
trend_color[i] = Col0 ;
entrance_high[i] = f3[i] ;
entrance_low[i] = the_low[i] ;
entrance_close[i] = f2[i] ;
}
// Exit to Short
if ( C[i-2] > the_low[i-2] + ( the_high[i-2] - the_low[i-2] ) * 0.382 AND
C[i-1] < the_low[i-1] + ( the_high[i-1] - the_low[i-1] ) * 0.382 ) {
the_low[i] = L[i-1] ;
reg_l[i] = i-1 ;
exit[i] = 2 ;
trend_color[i] = Col0 ;
entrance_high[i] = the_high[i] ;
entrance_low[i] = f3[i] ;
entrance_close[i] = f2[i] ;
}
}
}
// --------------------------------------

// --------------------------------------
// Entrance
if ( trend[i] == 0 AND exit[i-1] != 0 ) {
// Previous was Short
if ( exit[i] == 1 ) {
if ( tracker[i] ) {
// Enter to Long
if ( C[i-1] > entrance_high[i-1] ) {
trend[i] = 1 ;
trend_color[i] = Col1 ;
trade_color[i] = Col8 ;
FIBOS();
}
}
}
// Previous was Short
if ( exit[i] == 1 ) {
// Enter to Short
if ( C[i-1] < entrance_low[i-1] ) {
trend[i] = 2 ;
trend_color[i] = Col2 ;
trade_color[i] = Col9 ;
FIBOS();
}
}
// Previous was Long
if ( exit[i] == 2 ) {
// Enter to Long
if ( C[i-1] > entrance_high[i-1] ) {
trend[i] = 1 ;
trend_color[i] = Col1 ;
trade_color[i] = Col8 ;
FIBOS();
}
}
// Previous was Long
if ( exit[i] == 2 ) {
if ( tracker[i] ) {
// Enter to Short
if ( C[i-1] < entrance_low[i-1] ) {
trend[i] = 2 ;
trend_color[i] = Col2 ;
trade_color[i] = Col9 ;
FIBOS();
}
}

}
}
// --------------------------------------

// --------------------------------------
// Close section
if ( tracker[i] ) {
// Close the Long trend
if ( trend[i] == 1 ) {
if ( C[i-1] < f1[i-1] ) {
trend[i] = 0 ;
trend_color[i] = Col0 ;
exit[i] = 2 ;
entrance_high[i] = the_high[i] ;
entrance_low[i] = f3[i] ;
entrance_close[i] = f2[i] ;
the_low[i] = L[i] ;
reg_l[0] = i ;
FIBOS();
}
}
// Close the Short trend
if ( trend[i] == 2 ) {
if ( C[i-1] > f1[i-1] ) {
trend[i] = 0 ;
trend_color[i] = Col0 ;
exit[i] = 1 ;
entrance_high[i] = f3[i] ;
entrance_low[i] = the_low[i] ;
entrance_close[i] = f2[i] ;
the_high[i] = H[i] ;
reg_h[0] = i ;
FIBOS();
}
}
}
// --------------------------------------

// --------------------------------------
// Close 2 section

// Close the Long trend
if ( trade_color[i] == Col8 ) {
if ( C[i-1] < entrance_close[i-1] ) {
trade_color[i] = Col7 ;
}
}
// Close the Short trend
if ( trade_color[i] == Col9 ) {
if ( C[i-1] > entrance_close[i-1] ) {
trade_color[i] = Col7 ;
}
}
// --------------------------------------

}

the_i[i] = i ;
}
// END OF LOOP INTERACTION
// ==============================================================================================================

// ==============================================================================================================
// Print

printf("-----------\n") ;
printf("I: %g\n" , the_i ) ;
printf("Trend: %g\n" , trend ) ;

printf(" | Exit Way: %g" , exit ) ;

printf("-----------\n") ;
printf("The High: %g" , the_high ) ;
printf(" | Reg: %g" , reg_h ) ;
printf(" (%g" , the_i - reg_h ) ;
printf(")\n" ) ;
printf("The low: %g" , the_low ) ;
printf(" | Reg: %g" , reg_l ) ;
printf(" (%g" , the_i - reg_l ) ;
printf(")\n" ) ;

printf("H-L: %g" , the_high ) ;
printf(" - %g" , the_low ) ;
printf(" = %g" , the_high - the_low ) ;
printf(" (%g" , track ) ;
printf(")\n" ) ;

printf("Entrace High: %g\n" , entrance_high ) ;
printf("Entrace Low: %g\n" , entrance_low ) ;
printf("Entrace Close: %g\n" , entrance_close ) ;

printf("O: %g\n" , O ) ;
printf("C: %g\n" , C ) ;
printf("H: %g\n" , H ) ;
printf("L: %g\n" , L ) ;

//==============================================================================================================
// Plot

Plot(the_high,"TH",colorRed);
Plot(the_low,"TL",colorBlue);
Plot(f1,"F1",colorLime);
Plot(f2,"F2",colorPink);
Plot(f3,"F3",colorYellow);

Plot(Level1 ,"line_1",trend_color,32+2048+32768, Minvalue=-5, Maxvalue=20 );
Plot(0 ,"Trade",trade_color,2048+32768, Minvalue=-5, Maxvalue=20 );



__._,_.___


**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/





Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___