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

[amibroker] Danton Stops - Sanity check needed



PureBytes Links

Trading Reference Links



Hi guy's, first post.   This group has really helped accelerate the
learning curve, please accept a big THANK YOU.   

I'm migrating from eSignal and Wealth-Lab and have a bit of
programming experience but I just can't seem to get a grip on why my
backtesting and scan results are different.   Specifically, the scan
shows all the signals, charts look great, buy/sell arrows exact,
perfect SAR calculations, etc.   But, backtesting shows a subset of
the scans Buy/Sell signals.

This script was called Danton Stops over at eSignal, but to me it's a
nice SAR system using 3 minute charts at the key reversal periods of
the day.    When time permits, could someone please take a look at the
backtesting results and possibly why they don't correlate to
chart/scan signals.   I've been using symbol XLNX to debug.

Thanks,
Jeff

////////////////////////////////////////
// Danton STOP/SAR                    //
// Written by: Jeff                   //
////////////////////////////////////////
//=================================================
//Ratio = 0.38;    //Danton Ratio
nRatio=Optimize("nRatio",0.38,0.0,0.40,0.02);    //Danton Ratio
dsar = Close;
long = 1;
SARcolor = colorBlue;
ema220=EMA(C,220);
//=================================================
for( i = 2; i < BarCount-1; i++ )
{
//=================================================
// Check for reversal
	reverse =  0;
	if ( long )
	{
		SellSig = Close[i] <= dsar[i-1];
		if(SellSig)
		{
			long = 0;   reverse = 1; 	// reverse position to Short
			Sell[i] = 1;
			SellPrice[i] = dsar[i-1];
//			Short[i] = 1;
//			ShortPrice[i] = dsar[i-1];
			dsar[i] = round( (High[i] + ( High[i-1] - Low[i-1] ) *
nRatio)*100)/100;
		}
	}
	else
	{
		BuySig = Close[i] >= dsar[i-1];
		if(BuySig)
		{
			long = 1;   reverse = 1;    //reverse position to long
			Buy[i] = 1;
			BuyPrice[i] = dsar[i-1];
//			Short[i] = 1;
//			ShortPrice[i] = dsar[i-1];
			dsar[i] = round( (Low[i] - ( High[i-1] - Low[i-1] ) *
nRatio)*100)/100;
		}
	}
//=================================================
// No reversal - Adjust Stop, if Applicable
	if ( reverse == 0 )
	{
		dsar[i] = dsar[i-1];  //Set default to last SAR
		if ( long )
		{
			RangeExpanding = Close[i] > Close[i-1] OR Low[i] < Low[i-1];
			if (RangeExpanding)
			{  
				Stop = round( (Low[i] - ( High[i-1] - Low[i-1] ) *
nRatio)*100)/100;
				if (Stop > dsar[i-1] )   dsar[i] = Stop;
			}
		}
		else
		{
			RangeExpanding = Close[i] < Close[i-1] OR High[i] > High[i-1];
			if (RangeExpanding )
			{  
				Stop = round( (High[i] + ( High[i-1] - Low[i-1] ) *
nRatio)*100)/100;
				if (Stop < dsar[i-1] )    dsar[i] = Stop;
			}
		}
	}
//=================================================
//Color the SAR's
	if ( long )
       SARcolor[ i ] = colorBlue;
	else
       SARcolor[ i ] = colorRed;
//=================================================
}
Cover=Buy;
Short=Sell;
Filter=Buy OR Sell OR Short OR Cover;
Buy=ExRem(Buy,Sell); 
Sell=ExRem(Sell,Buy); 
Short=ExRem(Short,Cover); 
Cover=ExRem(Cover,Short);
AddColumn(Buy,"Buy");
AddColumn(Sell,"sell");
AddColumn(Short,"short");
AddColumn(Cover,"cover");

Title=  Name() +" - "+Interval(2) + "  "+Date()+": Open"+WriteVal(O)+
        ", Hi"+WriteVal(H)+",  Lo"+WriteVal(L)+
        ",  Close"+WriteVal(C)+",  Danton"+WriteVal(dsar);

Plot( Close, "C", colorBlack, styleCandle );
Plot( dsar, "Stop", SARcolor, styleDots | styleNoLine | styleThick);
Plot( EMA220, "Stop", colorBlue, styleLine + styleThick);
PlotShapes(shapeDownArrow*Sell,colorRed,0,dsar+0.05,0);
PlotShapes(shapeUpArrow*Buy,colorBlue,0,dsar-0.05,0);
GraphXSpace=3;
//=================================================








------------------------ Yahoo! Groups Sponsor --------------------~--> 
Has someone you know been affected by illness or disease?
Network for Good is THE place to support health awareness efforts!
http://us.click.yahoo.com/Rcy2bD/UOnJAA/cosFAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/