鼎元C++量化程式码指标与函数模块系列之【highest、lowest的计算方法及调用方法】
第一部分、头文件声明变量:[code]double highest(string period, string inst, int num); //获取num周期内所有bar的最高价
double lowest(string period, string inst, int num);//获取num周期内所有bar中最低价
[/code]第二部分、源文件公式计算函数[code]
// 计算num周期内bar最高价格
double test::highest(string period, string inst, int num)
{
double hiprice = 0;
int key = 0;
map<string, TKVALUE>::reverse_iterator it;
for (it = mapK[period][inst].rbegin(); it != mapK[period][inst].rend(); ++it)
{
if (hiprice < it->second.dHigh)hiprice = it->second.dHigh;
key++;
if (key >= num)break;
}
return hiprice;
}//计算num周期内bar最低价格
double test::lowest(string period, string inst, int num)
{
double lowprice = 0;
int key = 0;
map<string, TKVALUE>::reverse_iterator it;
for (it = mapK[period][inst].rbegin(); it != mapK[period][inst].rend(); ++it)
{
if (lowprice == 0)lowprice = it->second.dLow;
if (lowprice > it->second.dLow)lowprice = it->second.dLow;
key++;
if (key >= num)break;
}
return lowprice;
}
[/code]三、使用方法:
1、范例:[code]
RsqBar(sPeriod, sInst);
lowest(sPeriod, sInst, 20);
[/code]调用前20中bar的开盘价中最低价。 使用说明参考:[url]http://www.qhlt.cn/thread-160007-1-1.html[/url]; 说明:
(1)、如何想获取某个周期的开盘价、收盘价或最低价的highest值,只需要将相应公式中的(it->second.dHigh)这里面的dHigh改成相应的值就行了。有哪些值参考(K线数据要素):[url]http://www.qhlt.cn/thread-159052-1-1.html[/url];
页:
[1]