Statistical Tests of Indicator Effectiveness

Overview


Feature Extraction



let data = [{price:100}, {price:101}, {price:99}];
					
Calculating the moving average.

let ma = await import("/lib/time-series/moving-average/v1.0.0/moving-average.mjs");
let features = $list(data)
	.merge("ma", data=>ma.movingAverage(data.map(p=>p["price"]), 10))
	.items;
					
Calculating the returns.

let ma = await import("/lib/time-series/moving-average/v1.0.0/moving-average.mjs");
let features = features.map((p,i, data)=>{
	let item = {
		...p
	}
	if(i<+10<data.length) {
		item.return = (data[i+10].price/p.price) -1
	}
	return item;
});
	
					

Filtering



let trending = data.filter(p=>p.price > p.ma);
let nonTrending = data.filter(p=>p.price <=p.ma);
					

Running the Hypothesis Test



let mn = await import('/lib/statistics/hypothesis/v1.0.0/two=sample.mjs');

let trending = data.filter(p=>p.price > p.ma);
let nonTrending = data.filter(p=>p.price <=p.ma);

let testStat = mn.means(trending.return, nonTrending.return);
					

Plotting the Distribution



Histogram app

Contents