Params
Numeric length5(5);
Numeric length20(20);
Vars
Series<Numeric> MA5;
Series<Numeric> MA20;
Events
OnBar(ArrayRef<Integer> indexs)
{
Bool ret;
MA5 = AverageFC(Close, length5);
MA20 = AverageFC(Close, length20);
PlotNumeric("MA5",MA5);// 在当前Bar输出一个数值
PlotNumeric("MA20",MA20);
Numeric MinPoint; // 一个最小变动单位,也就是一跳
Numeric MyEntryPrice; // 开仓价格,例中为开仓均价,可设置为某次入场价
Numeric StopLossSet(20); // 止损设置
Numeric MyExitPrice; // 平仓价格
Numeric Share;//手数
Numeric available;// 可用资金
MinPoint = MinMove*PriceScale;
MyEntryPrice = AvgEntryPrice;
Share= RoundDown (available /( MyEntryPrice*0.15*15),0);//手数=取整(可用资金/(开仓价格*保证金*15))
If(MA5 > MA20)
{
Buy(Share,close);
}
else If(MA5 < MA20)
{
SellShort(Share,close);
}
If(MarketPosition == 1 And BarsSinceEntry >= 1) // 有多仓的情况
{
If(Low <= MyEntryPrice - StopLossSet*MinPoint) // 止损条件表达式
{
MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
// 如果该Bar开盘价即跳空触发,则用开盘价代替
If(Open < MyExitPrice) MyExitPrice = Open;
Sell(0,MyExitPrice);
}
}
Else If(MarketPosition == -1 And BarsSinceEntry >= 1) // 有空仓的情况
{
If(High >= MyEntryPrice + StopLossSet*MinPoint) // 止损条件表达式
{
MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
If(Open > MyExitPrice) MyExitPrice = Open ;
BuyToCover(0,MyExitPrice);
}
}
}
专业期货量化团队,可免费诊断,欢迎扫码加企业微信解决。
偷价和信号闪烁,一大堆问题
不会开仓应该不太可能,你这个图上信号应该乱七八糟的
availabe变量也不赋值就计算交易手数了?
你确定你清楚你写的是什么东西吗?我怎么觉得都是东拼西凑弄出来的东西
老师啊,我们不是程序员,这个编程我都已经伤透脑了,其实你也看得出来,我的思路是非常简单的,但编程编不好,您帮忙看看
老兄,其实你这个编的我一个新手都看得出你是新手中的新手
没错,三个月前我刚开始看TB语言的时候,就跟看天书一样,这三个月我还去找了一本零基础的C语言的书去学去看,但三个月后的现在,也只能编到这个地步,还好我的思路简单,可以东拼西凑起了一些。但老师看到基础这么差的我都不愿帮我一下了