Fixup

/*P_RandomPriceSeries*/

//Use as a Scan to create PseudoRandomPriceSeries
//Select Current symbol and All quotations in AA, select basetimeframe in AA 
Settings
//It will also create the series if used as an indicator (add the appropriate 
flag to ATC)
// but this is NOT recommended as it will recalculate them on every refresh.
//Indicator mode is good for viewing recalculated curves (click in whitespace)
//Do not have the indicator code uncommented while running the scan
//CommentOut the Scan code before using the indicator code.

N = 100;//manually input desired Number - used in Scan AND Indicator mode

///SCAN///////////////////////////////////////////////////////////////////


Buy=Sell=0;

for( i = 1; i < N; i++ ) 

{ 

VarSet( "D"+i, 100 * exp( Cum(log(1 + (Random() - 0.5)/100)) ) ); 
AddToComposite(VarGet( "D"+i ),"~Random" + i,"X",1|2|128);
//Plot( VarGet( "D"+i ), "D"+i, 1,1 ); 
//PlotForeign("~Random" + i,"Random" + 1,1,1);
} 

/*
////PLOT/////////////////////////////////////////////////////

//use the same period setting as for the Scan


for( i = 1; i < N; i++ ) 

{ 

PlotForeign("~Random" + i,"Random" + i,1,1);

} 

*/

////OPTIMIZE///////////////////////////////////////////////////////////

//use the filter to run on Group253 OR add ~Random + i PseudoTickers to a 
Watchlist and define by AA filter


//fast = Optimize( "MA Fast", 1, 1, 10, 1 ); 
//slow = Optimize("MA Slow", 4, 4, 20, 1 ); 

//PositionSize = -100/P;
//Buy = Cross(MA(C,fast),MA(C,slow));
//Sell = Cross(MA(C,slow),MA(C,fast));

//Short = Sell;
//Cover = Buy;




--- In [email protected], "brian_z111" <brian_z...@...> wrote:
>
> Following recent discussions on benchmarking and using rule based systems to 
> engineer returns to meet 'clients' profiles i.e.Samantha's MA(C,10) example, 
> I did some follow up R&D with the intent of expanding the examination a 
> little further via a zboard post.
> 
> I may, or may not, get around to that so in the meantime I decided I would 
> share a couple of things while they are still topical.
> 
> I made up some quick and dirty randomly generated eq curves so that I could 
> optimise MA(C,10) on them (out of curiosity).
> 
> Also, out of curiosity, I decided to see how the example signal/filter code 
> that I made up, as the study piece for Yofas topic on benchmarking, would 
> actually perform.
> 
> Buy = Ref(ROC(MA(C,1),1),-1) < 0 AND ROC(MA(C,1),1) > 0 AND ROC(MA(C,10),1) > 
> 0;
> Sell = Cross(MA(C,10),C);//no thought went into this exit and I haven't tried 
> any optimization of the entry or the exit
> 
> By chance I noticed that it outperformed on one or two of the constituents of 
> the ^DJI (Yahoo data ... 2005 to 2009) and to the naked eye the constituents 
> all seem to be correlated to a fair extent over that time range.
> 
> Also, to the naked eye, it outperforms on randomly generated stock prices 
> around 50% of the time and the outperformnce doesn't appear to be correlated 
> to the underlying(I haven't attempted to find an explanation for this).
> 
> Here is the code I used to make up some randomly generated 'stocks'.
> 
> As we would expect it produces, say, 100 price series with a concatenated 
> mean of around zero (W/L = 1 and PayoffRatio == 1) etc.
> When plotted at the same time ... individual price series are dispersed 
> around the mean in a 'probability cone' ... in this case it is a relatively 
> tight cone because the method doesn't introduce a lot of volatility to the 
> series.
> 
> /*P_RandomEquity*/
> 
> //Use as a Scan to create PseudoRandom Equity curves
> //Current symbol, All quotations in AA, select basetimeframe in AA Settings
> //It will also create the curves if used as an indicator (add the appropriate 
> flag to ATC)
> // but this is NOT recommended as it will recalculate them on every refresh.
> //Indicator mode is good for viewing recalculated curves (click in whitespace)
> //CommentOut the Scan code before using the indicator code.
> //Don't use a very large N or it will freeze up indicator scrolling etc
> 
> n = 100;//manually input desired number - used in Scan AND Indicator mode
> 
> ///SCAN///////////////////////////////////////////////////////////////////
> 
> 
> Buy=Sell=0;
> 
> for( i = 1; i < n; i++ ) 
> 
> { 
> 
> VarSet( "D"+i, 100 * exp( Cum(log(1 + (Random() - 0.5)/100)) ) ); 
> AddToComposite(VarGet( "D"+i ),"~Random" + i,"X",1|2|128);
> //Plot( VarGet( "D"+i ), "D"+i, 1,1 ); 
> //PlotForeign("~Random" + i,"Random" + 1,1,1);
> } 
> 
> /*
> ////PLOT/////////////////////////////////////////////////////
> 
> //use the same number setting as for the Scan
> 
> 
> for( i = 1; i < n; i++ ) 
> 
> { 
> 
> PlotForeign("~Random" + i,"Random" + i,1,1);
> 
> } 
> 
> 
> ////OPTIMIZE///////////////////////////////////////////////////////////
> 
> //use the filter to run on Group253 OR add ~Random + i PseudoTickers to a 
> Watchlist and define by AA filter
> 
> 
> //fast = Optimize( "MA Fast", 1, 1, 10, 1 ); 
> //slow = Optimize("MA Slow", 4, 4, 20, 1 ); 
> 
> //PositionSize = -100/P;
> //Buy = Cross(MA(C,fast),MA(C,slow));
> //Sell = Cross(MA(C,slow),MA(C,fast));
> 
> //Short = Sell;
> //Cover = Buy;
> 
> I also stumbled on this, which seems to have some relevance:
> 
> http://www.scribd.com/doc/6737301/Trading-eBookCan-Technical-Analysis-Still-Beat-Random-Systems
> 
> 
> It contains a link to a site that has a free download of some RNG produced 
> datasets.
> 
> There hasn't been much discussion on using synthetic data in the forum ... 
> Patrick recommended it for testing? OR benchmarking? ... Fred is against 
> using it ("If we knew enough about the characteristics of the data, in the 
> first place, to be able to create synthetic data then we would know enough to 
> design trading systems to exploit the data's profile anyway", OR something 
> like that).
> 
> I was titillated enough by my first excursion into benchmarking with 
> synthetic data to bring me back for some more.
>


Reply via email to