请教从历史数据某K线向最新K线画水平线段。
步骤:
(1)取最新价;
(2)从当前K线前1根K线起,向前寻找包含(1)最新价的K线;
(3)从(2)中寻找的K线的最高价和最低价,分别向当前K线画水平线段;其他K线不作画。
没画成功,代码如下,请教下画线的方法。我看了文档中的例子,又看了刘总视频,一直理解有误,实在没想出来怎么画。orz
Params
//此处添加参数
Vars
//此处添加变量
Bar mybar; //Vars区域声明bar结构体
series<Numeric> Highs; //存储K线最高价
series<Numeric> Lows; //存储K线最低价
series<Numeric> Opens; //存储K线开盘价
series<Numeric> Closes; //存储K线收盘价
series<Numeric> Atime; //存储K线开盘时间
series<Integer> current_barth;//当前bar的索引值
series<Integer> symmetry_barth;//对称bar的索引值
plot pen_H;
plot pen_L;
Array<Numeric> x1Data;//x轴数据集
Array<Numeric> y1Data;//y轴数据集
Array<Numeric> y2Data;//y轴数据集
Defs
//此处添加策略函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
GetBar(mybar, 0);// getbar获取bar结构体数据
Highs = data0.mybar.high;// 把bar数据赋值
Lows = data0.mybar.low; // 把bar数据赋值
Opens = data0.mybar.open; // 把bar数据赋值
Closes = data0.mybar.close; // 把bar数据赋值
Atime = data0.mybar.datetime; // 把bar数据赋值
current_barth = CurrentBar();// 计算当前bar的索引值
Commentary("当前Bar索引:" + Text(CurrentBar()));
//搜索包含最新价的最近K线bar索引值
Integer i;
for i = 1 to current_barth
{
if(closes[0]>=lows[i] and closes[0]<=highs[i])
{
symmetry_barth[0] = current_barth - i;
Break;
}
};
Commentary("对称bar索引:" + Text(symmetry_barth[0]));
//从包含最新价的最近的K线到当前bar,以包含最新价的最近的K线的最高价和最低价,分别画水平线段
Integer j;
for j = 0 to CurrentBar-symmetry_barth[0]
{
x1Data[j]= CurrentBar -j ;
y1Data[j]= highs[CurrentBar-symmetry_barth[0]];
y2Data[j]= Lows[CurrentBar-symmetry_barth[0]];
}
pen_H.line("sym_H",x1Data,y1Data);
pen_L.line("sym_L",x1Data,y2Data);
}置顶帖投稿,或者发付费代写
刘总好,请问这个大概费用要多少?我卡在第3步画线。
大概两三百吧,不会很贵,具体要看你的需求了
谢谢大佬指导。