OnInit()
{
id = CreateTimer(60000);
SubscribeBar(Symbo,\"1m\",20230301, 0, 0);
SubscribeBar(Symbo,\"45m\",20230301, 0, 0);
SubscribeTick(Symbo);
}
OnBarclose (ArrayRef<Integer> indexs)
{
AvgValue1=XAverage(Data1.Close,FASTDAY); //12
AvgValue2=XAverage(Data1.Close,SLOWDAY); //50 //涨
Data0.PlotNumeric(\"涨快\",AvgValue1,AvgValue3,Yellow);
Data0.PlotNumeric(\"涨慢\",AvgValue2,AvgValue4,Green);
AvgValue3 = XAverage(Data1.Close,FASTDAY); //12
AvgValue4 = XAverage(Data1.Close,SLOWDAY); //50 //跌
Data0.PlotNumeric(\"跌快\",AvgValue3,AvgValue3,Red);
Data0.PlotNumeric(\"跌慢\",AvgValue4,AvgValue4,White);
PlotString(\"第几BAR\",TEXT(CURRENTBAR()),Data0.high+60,Black);
PlotString(\"上次信号BAR\",TEXT(BARSHU),Data0.high+80,Black);
TurtleUnits=1;
Zcon=(CrossOver(AvgValue1,AvgValue2) and (MarketPosition<>1));
Dcon=(CrossUnder(AvgValue3,AvgValue4) and (MarketPosition<>-1));
if (Zcon)
{
PlotString(\"开仓\",\"开多仓\",Data0.high+20,Green);
PlotString(\"趋势\",\"涨\",Data0.high+10,Blue);
IF (MarketPosition==0)
{
data0.Buy(TurtleUnits,0);
}
IF ((MarketPosition==-1) and (MarketPosition<>1))
{
data0.BuyToCover(1,0);
data0.Buy(TurtleUnits,0);
}
PlotString(\"距离上次信号BAR数\",TEXT(CURRENTBAR()-BARSHU),Data0.high+40,Yellow);
BARSHU=CurrentBar();
}
if (Dcon)
{
PlotString(\"开仓\",\"开空仓\",Data0.High+20,Green);
PlotString(\"趋势\",\"跌\",Data0.high+10,Blue);
IF (MarketPosition==0)
{
data0.SellShort(TurtleUnits,0);
}
IF ((MarketPosition==1) and (MarketPosition<>-1))
{
data0.Sell(1,0);
data0.SellShort(TurtleUnits,0);
}
PlotString(\"距离上次信号BAR数\",TEXT(CURRENTBAR()-BARSHU),Data0.high+40,Yellow);
BARSHU=CurrentBar();
}
}
OnTimer(Integer id,Integer intervalMillsecs)
{
SS=SS+1;
if (ss>10000) ss=1;
Print(Text(SS));
}
代码发全一点, 不可能猜你的变量类型
Params
Numeric FASTDAY(2);
Numeric SLOWDAY(59); //1h5m
Numeric Ratio(10000);
String Symbo(\"rb2310.SHFE\");
Vars
Integer js(0);
Global Numeric Total(0);
Global Integer id(0);
Global Integer ss(0);
Series<Integer> serValue(0);
Integer Jishu(0);
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Series<Numeric> AvgValue3;
Series<Numeric> AvgValue4;
Numeric TurtleUnits;
Numeric Jiage1;
Numeric Jiage2;
Global Integer BARSHU(0);
BOOL Zcon;
Bool Dcon;
events
OnInit()
{
id = CreateTimer(60000);
SubscribeBar(Symbo,\"1m\",20230301, 0, 0);
SubscribeBar(Symbo,\"45m\",20230301, 0, 0);
SubscribeTick(Symbo);
}
OnBarClose(ArrayRef<Integer> indexs)
{
AvgValue1=XAverage(Data1.Close,FASTDAY); //12
AvgValue2=XAverage(Data1.Close,SLOWDAY); //50 //涨
Data1.PlotNumeric(\"涨快\",AvgValue1,AvgValue3,Yellow);
Data1.PlotNumeric(\"涨慢\",AvgValue2,AvgValue4,Green);
AvgValue3 = XAverage(Data1.Close,FASTDAY); //12
AvgValue4 = XAverage(Data1.Close,SLOWDAY); //50 //跌
Data1.PlotNumeric(\"跌快\",AvgValue3,AvgValue3,Red);
Data1.PlotNumeric(\"跌慢\",AvgValue4,AvgValue4,White);
PlotString(\"第几BAR\",TEXT(CURRENTBAR()),Data0.high+60,Black);
PlotString(\"上次信号BAR\",TEXT(BARSHU),Data0.high+80,Black);
TurtleUnits=1;
Zcon=CrossOver(AvgValue1,AvgValue2);
Dcon=CrossUnder(AvgValue3,AvgValue4);
if (Zcon and (MarketPosition<>1))
{
PlotString(\"开仓\",\"开多仓\",Data0.high+20,Green);
PlotString(\"趋势\",\"涨\",Data0.high+10,Blue);
IF (MarketPosition==0)
{
Buy(TurtleUnits,0);
}
IF ((MarketPosition==-1) and (MarketPosition<>1))
{
BuyToCover(1,0);
Buy(TurtleUnits,0);
}
PlotString(\"距离上次信号BAR数\",TEXT(CURRENTBAR()-BARSHU),Data0.high+40,Yellow);
BARSHU=CurrentBar();
}
if (Dcon and (MarketPosition<>-1))// and ((CurrentBar()-BARSHU)>25))
{
PlotString(\"开仓\",\"开空仓\",Data0.High+20,Green);
PlotString(\"趋势\",\"跌\",Data0.high+10,Blue);
IF (MarketPosition==0)
{
SellShort(TurtleUnits,0);
}
IF ((MarketPosition==1) and (MarketPosition<>-1))
{
Sell(1,0);
SellShort(TurtleUnits,0);
}
PlotString(\"距离上次信号BAR数\",TEXT(CURRENTBAR()-BARSHU),Data0.high+40,Yellow);
BARSHU=CurrentBar();
}
}
OnTimer(Integer id,Integer intervalMillsecs)
{
SS=SS+1;
if (ss>10000) ss=1;
Print(Text(SS));
}
麻烦老师帮学生看下,问题出在哪?