我已经将Daily_AvgClose设为全局变量,直接在行情报价的一分钟K线上进行以下代码。发现未注释部分是正确的,注释部分算出来的Daily_AvgClose是一条直线,检查多次,感觉逻辑上面没问题。
第一 你这个算法确定没问题?除以barssincetoday+1 却乘以barssincetoday?
第二 分时图均价的算法是成交额除以成交量,你除以bar数是什么意思?这求的是日内价格均价?
对对对,,,我想错了,不应该这样求每日均价,但是我这样写下面注释部分为啥会是一条直线呢
麻烦把完整代码贴一下
//------------------------------------------------------------------------
// 简称: Daily_junjia
// 名称: 求每日的均价
// 类别: 公式应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------
Params
//此处添加参数
Vars
Global Numeric Daily_AvgClose(0);
Global Numeric Daily_AvgClose2(0);
Global Numeric Total_TurnOver(0);
Global Numeric Total_Volume(0);
Tick My_tick;
Defs
//此处添加公式函数
Events
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
If(BarsSinceToday > 0)
{
Daily_AvgClose = (Daily_AvgClose*BarsSinceToday + Close)/(BarsSinceToday+1);
}
If(BarsSinceToday == 0)
{
Daily_AvgClose = Close;
}
PlotAuto("每日均价:",Daily_AvgClose);
PlotAuto("收盘价",Close,0,White);
}
序列函数问题。BarsSinceToday放到最外面赋值给一个简单变量就可以解决