这个函数我试过两次
也没搞懂
最早的时候
策略为了统计在当前bar
今天以来出现过的最高价最低价
需要计算当前bar是当日第几个bar
自己写了个函数
后来翻函数看到DayBarsNumI就测试了一下
没感觉到效果
但是看老刘的说法
好像和我自己写函数统计一个意思
另外一个帖子已经回复了
//------------------------------------------------------------------------
// 简称: ZhiShu__Kai_01_BBB
// 名称:
// 类别: 用户函数
// 类型: 用户函数
// 输出: 布尔型
//------------------------------------------------------------------------a
Params
Numeric N_K_Number(2); //K线根数,计算前N根K至当前的最大,最小值.分别取 3; 2; 2
Vars
Numeric tianshu(1);//与多少天之前对比
Numeric MA_Day_Xi_Shu(1);//均线天数系数
Numeric FastLength_1(80);// 短期指数平均线参数
Numeric FastLength_2(80);// 中期指数平均线参数
Numeric FastLength_3(300);// 长期指数平均线参数
// Numeric Delta_Fig(2);//均线间隔系数 。取0-4。若取0,则不限制
Numeric Delta_Ma_Fig(10);//均线间隔系数 。取5--15。
// Numeric K_a_Days(5); //短期高低点天数
// Numeric K_bb_Days(60);//长期期高低点天数
Series<Numeric> zdkxgs;//一天中一共多少K线根数
Series<Numeric> zdkxgs1;
Series<Numeric> zdkxgs_T_0530;
Series<Numeric> zdkxgs_T_0530_22;
Series<Numeric> n;//过去一天同时段接下来3根成交量的平均数
Series<Numeric> N1;//过去几天每根K线的平均成交量
Series<Numeric> high_h;
Series<Numeric> low_l;
Series<Numeric> A;
Series<Numeric> atr1;
Series<Numeric> high1;//当日最高价
Series<Numeric> low1;//当日最低价
Series<Numeric> kpj;//开盘价
Numeric temp_Delta_1(0);//前N根K线最大值减当前最小值
Numeric temp_Delta_2(0);//当前最大值减前N根K线最小值
Numeric temp_Delta_Max(0);//前N根 至当前最大波幅
Numeric temp_Delta_1_2(0);//前N+1根K线最大值减当前最小值
Numeric temp_Delta_2_2(0);//当前最大值减前N+1根K线最小值
Numeric temp_Delta_Max_2(0);//前N+1根 至当前最大波幅
// Series<Numeric> Today_BuyKai_Times(0);
// Series<Numeric> Today_Sell_Kai_Times(0);
Series<Numeric> m;
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Series<Numeric> AvgValue3;
Numeric temp_Max_a(0);//
Numeric temp_Max_b(0);//
Numeric temp_Max_c(0);
Numeric temp_Min_aa(12345678999);//
Numeric temp_Min_bb(12345678999);//
Numeric temp_Min_cc(12345678999);//
Numeric Delta_Max_____Ma(0);//
Numeric temp_tiaokong(0);
Series<Bool> Cond_Kai(False);
Begin
//此处添加代码正文
Cond_Kai =False;
//Numeric mm=highest(BarsSinceToday,1000)+1;
zdkxgs=DayBarsNumI(0,1);
N1=Average(vol,zdkxgs*3);
n=(vol[zdkxgs]+vol[zdkxgs+1]+vol[zdkxgs-1])/3;
//PlotNumeric("zdkxgs1",zdkxgs1);
AvgValue1 = AverageFC((HIGH[1]+LOW[1])/2,IntPart( FastLength_1*MA_Day_Xi_Shu*zdkxgs/100));
AvgValue2 = AverageFC((HIGH[1]+LOW[1])/2,IntPart( FastLength_2*MA_Day_Xi_Shu*zdkxgs/100));
AvgValue3 = AverageFC((HIGH[1]+LOW[1])/2,IntPart( FastLength_3*MA_Day_Xi_Shu*zdkxgs/100));
temp_Max_a =max(AvgValue1,AvgValue2);
temp_Max_c =max(temp_Max_a,AvgValue3);
temp_Min_aa =min(AvgValue1,AvgValue2);
temp_Min_cc =min(temp_Min_aa,AvgValue3);
Delta_Max_____Ma =temp_Max_c -temp_Min_cc;
atr1=AvgTrueRange(2*zdkxgs);
temp_Delta_1 = abs( highest(high[1],N_K_Number) -low);
temp_Delta_2 = abs(high -Lowest(low[1],N_K_Number));
temp_Delta_Max =Max(temp_Delta_1,temp_Delta_2);
temp_Delta_1_2 = abs( highest(high[1],(N_K_Number +1)) -low);
temp_Delta_2_2 = abs(high -Lowest(low[1],(N_K_Number +1)));
temp_Delta_Max_2 =Max(temp_Delta_1_2,temp_Delta_2_2);
If(Cond_Kai ==True)
{
Return True;
}
else
{
Return False;
}
End
//------------------------------------------------------------------------
// 编译版本 2025/7/3 110629
// 版权所有 hx8888
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer策略修改和重写的权利
//------------------------------------------------------------------------
他这个函数你在内建函数里面调用,编译是可以直接通过的。但是一旦在用户函数里面调用这个内建函数,那么把这个用户函数加载到策略单元里面,策略单元会不运行,TBQ里面是能正常运行的