本帖最后由 xinxing 于 2019-3-21 07:25 AM 编辑
littletiger 发表于 2019-3-20 07:54 AM
老大,如果用PYTHON,它带很多OPENSOURCE PACKAGE, RSI 计算就不是问题了。
把28#l的计算公式变成code,就这么几行,简单 paste,分享。
void RelativeStrengthIndex::calcu(int i)
{
double rs;
double change = mp.m_prices [ i ] - mp.m_prices [ i - 1 ];
if (i <= N) {
if (change > 0) {
m_gain += change;
} else if (change < 0) {
m_loss -= change;
}
if (i == N) {
m_gain /= N;
m_loss /= N;
rs = m_gain/m_loss;
rsi << (1-1/(1 + rs)); // first RS
}
} else {
if (change > 0) {
m_gain = (m_gain*(N-1) + change)/N;
m_loss = m_loss*(N-1)/N;
} else {
m_gain = m_gain*(N-1)/N;
m_loss = (m_loss*(N-1) - change)/N;
}
rs = m_gain/m_loss;
rsi << (1-1/(1 + rs));
}
}
这里, MinutePrice (mp)每一分钟股票的价格。
i是这一分钟,那么i-1就是前一分钟。
N=14
这里,RSI归一,而不是归100
输入是一个价格数组, mp.m_prices,输出是另外一个数组,rsi 楼上的图就是这样简单计算出来的。 |