示例#1
0
inline void MACD(int short_window, int long_window, int smooth_window, dvector &input, dvector &macd, dvector &macd_signal, dvector &macd_hist)
{
	std::vector<double> short_emas;
	std::vector<double> long_emas;
	short_emas.reserve(input.size());
	long_emas.reserve(input.size());
	macd.reserve(input.size());
	macd_signal.reserve(input.size());
	macd_hist.reserve(input.size());
	EMA(short_window,input,short_emas);
	EMA(long_window,input,long_emas);
	SUBTRACT(short_emas,long_emas,macd);
	EMA(smooth_window,macd,macd_signal);
	SUBTRACT(macd,macd_signal,macd_hist);
}
示例#2
0
inline void ROC(int window,dvector &input,dvector &output)
{
	functors::ROC<double> _roc(window);
	output.reserve(input.size());
	std::transform( input.begin(), input.end(), output.begin(), _roc);
}
示例#3
0
inline void MOMENTUM(int window,dvector &input,dvector &output)
{
	functors::MOMENTUM<double> _momentum(window);
	output.reserve(input.size());
	std::transform( input.begin(), input.end(), output.begin(), _momentum);
}
示例#4
0
inline void MAX(int window,dvector &input, dvector &output)
{
	functors::MAX<double> _max(window);
	output.reserve(input.size());
	std::transform( input.begin(), input.end(), output.begin(), _max);
}
示例#5
0
inline void SUBTRACT(dvector &input1, dvector &input2, dvector &output)
{//1 - 2
	functors::SUBTRACT<double> _subtract;
	output.reserve(input1.size());
	std::transform(input1.begin(), input1.end(),input2.begin(),output.begin(), _subtract);
}
示例#6
0
inline void EMA(int window,dvector &input, dvector &output)
{
	functors::EMA<double> _ema(window);
	output.reserve(input.size());
	std::transform( input.begin(), input.end(), output.begin(), _ema);
}