全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
print问题
2024-07-03 14:55

Params

Numeric Length1(5);// 短期指数平均线参数

   Numeric Length2(20);// 长期指数平均线参数

Vars

Series<Numeric> MA1;

   Series<Numeric> MA2;

Series<Numeric> ATR(0);

Numeric Minpoint;

Numeric NewLots;

Events

OnBar(ArrayRef<Integer> indexs)

{

Minpoint=Minmove*PriceScale;

MA1 = Average(Close,Length1);

       Ma2 = Average(Close,Length2);

       atr=AvgTrueRange(Length2);

NewLots=max(IntPart(1000/(atr[1]*ContractUnit*BigPointValue)),1);

//系统入场

If(MarketPosition <1 && MA1[1] > MA2[1] && MA1[2]<MA2[2])

{

Buy(NewLots,Open);

Print(Buy!+Text(MarketPosition)+,MA1-1:+Text(MA1[1])+,MA1-2:+Text(MA1[2])+,MA2-1:+Text(MA2[1])+,MA2-2:+Text(MA2[2])+,+Text(Date)+Text(Time));

}

//系统出场

If(MarketPosition >-1 && MA1[1] < MA2[1] && MA1[2]>MA2[2])

{

SellShort(NewLots,Open);

Print(Sell!+Text(MarketPosition)+,MA1-1:+Text(MA1[1])+,MA1-2:+Text(MA1[2])+,MA2-1:+Text(MA2[1])+,MA2-2:+Text(MA2[2])+,+Text(Date)+Text(Time));

}

print函数,取历史数据只打印一次,实时行情推送在触发那一刻打印好多次,不知道什么原因data-href=

}

wangkaiming

实时每次tick程序都会执行一次

2024-07-03 15:55
xueshixueshi
@wangkaiming

恺明老师,我的理解是不是marketpositon是个时序类型,onbar驱动的时候,tick每次执行,调用的还是前一根bar值的marketpositon;下面是我做的改变,引入全局变量,是不是就ok了?

Params

Numeric Length1(5);// 短期指数平均线参数

   Numeric Length2(20);// 长期指数平均线参数

Vars

Series<Numeric> MA1;

   Series<Numeric> MA2;

Series<Numeric> ATR(0);

Numeric Minpoint;

Numeric NewLots;

Global Numeric NumPositon(0);

Events

OnBar(ArrayRef<Integer> indexs)

{

Minpoint=Minmove*PriceScale;

MA1 = Average(Close,Length1);

       Ma2 = Average(Close,Length2);

       atr=AvgTrueRange(Length2);

NewLots=max(IntPart(1000/(atr[1]*ContractUnit*BigPointValue)),1);

//系统入场

//NumPositon=MarketPosition;

If(NumPositon <1 && MA1[1] > MA2[1] && MA1[2]<MA2[2])

{

Buy(NewLots,Open);

NumPositon=1;

Print(\"Buy!\"+Text(NumPositon)+\",MA1-1:\"+Text(MA1[1])+\",MA1-2:\"+Text(MA1[2])+\",MA2-1:\"+Text(MA2[1])+\",MA2-2:\"+Text(MA2[2])+\",\"+Text(Date)+Text(Time));

}

//系统出场

If(NumPositon >-1 && MA1[1] < MA2[1] && MA1[2]>MA2[2])

{

SellShort(NewLots,Open);

NumPositon=-1;

Print(\"Sell!\"+Text(NumPositon)+\",MA1-1:\"+Text(MA1[1])+\",MA1-2:\"+Text(MA1[2])+\",MA2-1:\"+Text(MA2[1])+\",MA2-2:\"+Text(MA2[2])+\",\"+Text(Date)+Text(Time));

}

}

2024-07-03 16:32
您未登录,请先 登录注册 后发表评论
顶部