跨周期问题

//------------------------------------------------------------------------ // 简称: JailBreakSys_L // 名称: 基于价格区间突破的交易系统 // 类别: 公式应用 // 类型: 内建应用 // 输出: // 策略说明: 基于通道突破的判断 // 系统要素: // 1. 计算50根k线最高价的区间 // 2. 计算30根k线最低价的区间 // // 入场条件: // 1.价格高于50根K线最高价的区间入场 // 出场条件: // 1. 当前价格低于30根K线最低价的区间出场 // 2. 当前价格低于入场价一定ATR波动率幅度出场 // //----------------------------------------------------------------------// Params Numeric Length1(50); //长周期区间参数 Numeric Length2(30); //短周期区间参数 Numeric IPS(4); //保护止损波动率参数 Numeric AtrVal(10); //波动率参数 Numeric initcapital(50); //单位:万 国债期货可以改成50 Numeric Acceleration(0.05); //抛物线的加速系数 Numeric FirstBarMultp(5); //用于计算在进场Bar设置止损价的系数 Vars Series<Numeric> myprice; //临界价格 Series<Numeric> myprice_temp; //临时的临界价格 Series<Numeric> myprice_new; //记录因为止损而产生的新的临界价格 Series<Numeric> nn; //向前计算的日期 Series<Numeric> temp; //临时数据 Series<Numeric> temp2; //临时数据 Series<Numeric> temp3; //临时数据 Series<Numeric> temp4; //临时数据 Series<Numeric> temp5; //临时数据 Series<Numeric> temp666; //记录每日开仓次数 Series<Numeric> temp777; //记录每日开仓次数 Series<Numeric> temp666777; //过度的 Series<Numeric> i; //循环参数 Numeric lots(1); //下单手数 Series<Numeric> StopPrice_up; //跟踪止损价 Series<Numeric> HighValue_up; //多头进场之后的盈利峰值价 Series<Numeric> AF_up; //跟踪Acceleration Numeric StopATR_up; Series<Numeric> StopPrice_down; //跟踪止损价 Series<Numeric> lowValue; //多头进场之后的盈利峰值价 Series<Numeric> AF_down; //跟踪Acceleration Numeric StopATR_down; //Numeric myprice; //Numeric temp; //Array<Array<Numeric>> myprice; Series<Numeric> ProtectStopL; Series<Numeric> ATR; Series<Numeric> Upperband; Series<Numeric> Lowerband; Series<Numeric> Exitlong; Series<Numeric> Exitshort; Numeric L2; Numeric L1; Numeric Minpoint; Events OnInit() { SetBeginBarMaxCount(100); SetInitCapital(initcapital*10000); //设定初始资金 SetMarginRate(0.1); //设定保证金比例 SetBeginBarMaxCount(1); } OnBar(ArrayRef<Integer> indexs) { Range[0:0] //用15分钟数据计算 { //确定临界价格 if (hour*60+minute>=9*60+45 and hour*60+minute<=24*60+0) { if (hour*60+minute==9*60+45) { myprice=open; //temp666=0; } //myprice= closeD(temp); //Print("临界价格:"+Text(myprice)+"日期:"+Text(Date)+"成交价:"+Text(myprice_temp)+"成交价:"+Text(temp5)+"成交价:"+Text(temp2)); //Print("临界价格:"+Text(myprice)+"天数:"+Text(temp)+"日期:"+Text(temp-temp[1])+"日期:"+Text(Open)+"日期:"+Text(Date)); //根据资金量确定开平仓量 Lots=IntPart(Portfolio_CurrentCapital*1/(myprice*contractunit*BigPointValue)); //计算开仓手数,根据当前资金量计算,乘数代表杠杆倍数 //Lots=0; //统计触碰次数 if (high>=max(myprice,myprice_new) And low<=max(myprice,myprice_new)) { temp5=temp5+1; } } //if (Mod(Minute, 15)==0) //{ //temp666=0; //} temp666=0; } //Print("交易次数:"+Text(Minute)); Range[1:1] //用1分钟数据计算 { if (hour*60+minute>=9*60+45 and hour*60+minute<=24*60+0) { if (Mod(Minute, 15)==0) { temp777=data0.temp666; } //系统入场 If(Marketposition <>1 And Close[1] >= data0.myprice And Vol > 0 And data0.myprice<>InvalidNumeric And temp777==0) //价格大于临界价格入场做多 { temp4=temp4+1; //记录交易次数 Buy(lots, Open); //回测的时候用,假设冲击冲本为1% 国债期货可以改成0.1% temp777=1; //print("11111"); } //记录盈利峰值价和跟踪止损价 StopATR_up = Average(TrueRange,3); If(MarketPosition==1 And BarsSinceEntry==0) { StopPrice_up=low-StopATR_up*FirstBarMultp; AF_up=Acceleration; HighValue_up=High; }Else If(MarketPosition==1 And BarsSinceEntry>0) { If(High>HighValue_up) HighValue_up=High; If(HighValue_up>HighValue_up[1] And AF_up<0.2) { AF_up=AF_up+Min(Acceleration,0.2-AF_up); } StopPrice_up=StopPrice_up+AF_up*(HighValue_up-StopPrice_up); } //向下突破跟踪止损价多头出场 If(MarketPosition==1 And BarsSinceEntry>0 And Low[1]<=StopPrice_up[1] And Vol > 0 And temp777==0) { Sell(0,Open); //SellShort(0,Open); myprice_new=StopPrice_up[1]; temp4=temp4+1; temp777=1; } } //在图标上画出跟踪止损价 //PlotNumeric("myprice",myprice); PlotAuto("StopPrice_up", StopPrice_up,StopPrice_up,blue,Enum_Line,Enum_Solid,Enum_4Pix); PlotAuto("myprice", data0.myprice,data0.myprice,Green,Enum_Line,Enum_Solid,Enum_4Pix); //在图标上画出跟踪止损价 //PlotNumeric("myprice_new",myprice_new); //PlotAuto("StopPrice_down",StopPrice_down,StopPrice_down,White,Enum_Line,Enum_Solid,Enum_4Pix); //PlotAuto("myprice_new", myprice_new,myprice_new,Red,Enum_Line,Enum_Solid,Enum_4Pix); //PlotAuto("low",low,low,Blue,Enum_Line,Enum_Solid,Enum_4Pix); //PlotAuto("BarsSinceEntry", BarsSinceEntry,BarsSinceEntry,blue,Enum_Line,Enum_Solid,Enum_4Pix); Print("temp777:"+Text(temp777)+"日期:"+Text(date)+"时:"+Text(hour)+"分:"+Text(minute)+"Mod(Minute, 15):"+Text(Mod(Minute, 15))+"temp666:"+Text(temp666)); } } //------------------------------------------------------------------------ // 编译版本 GS2014.10.25 // 版权所有 TradeBlazer Software 2003-2025 // 更改声明 TradeBlazer Software保留对TradeBlazer平 // 台每一版本的TradeBlazer公式修改和重写的权利 //------------------------------------------------------------------------

temp777的赋值没有按照条件被赋值为0,请问是怎么回事

回复:打开你的程序,我看到的是temp777既有0也有1,你的情况再详细说明看看吧 这种问题就是一个调试的过程

回复:你这个说法过于模糊,我代码看了有0也有1 说的再具体点吧