double atr = 0;
for (int i = 0; i < stockDataList.Count; i++)
{
// 获取当前和前一个交易日的数据
var currentData = stockDataList[i];
// 计算真实范围(TR)
double tr = 0;
if (i == 0)
{
tr = currentData.High - currentData.Low; //这个用到了今天 High,未卜先知
}
else
{
tr = Math.Max(
Math.Max(currentData.High - currentData.Low, Math.Abs(currentData.Pre_Close - currentData.High)), //这个用到了今天 High,未卜先知
Math.Abs(currentData.Pre_Close - currentData.Low));
}
currentData.TrueRange = tr;
// 更新ATR
if (i >= N-1)
{
double TrueRangeSum = 0;
for (int j = 0; j < N; j++)
{
TrueRangeSum += stockDataList[i - j].TrueRange;
}
currentData.ATR =Math.Round(TrueRangeSum/N,2);
}
else
{
// 如果数据点不足N天,ATR保持不变
currentData.ATR = atr;
}
// 将计算出的ATR赋值给当前数据点
}
c# 同花顺 atr代码
最新推荐文章于 2024-02-24 00:56:28 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)