Params
Vars
Numeric highline; //高点连线
Numeric lowline; //低点连线
Numeric myprice; //委托价格
Numeric lots(5); //委托数量
Numeric money(10); //浮盈开仓:单位万
Events
OnInit()
{
//=========交易相关设置==============
SetInitCapital(100000); //设置初始资金为10万
}
OnBar(ArrayRef<Integer> indexs)
{
myprice=Open;//这里使用open,更为精确的是使用委托价格
lots=IntPart(money*10000/(myprice*contractunit*BigPointValue)); //计算开仓手数
// lots=5;
highline=Highest(High[1],20);
lowline=Lowest(Low[1],20);
If(MarketPosition<>1 And High>=highline)
Buy(lots,Max(Open,highline));
If(MarketPosition<>-1 And Low<=lowline)
{ SellShort(lots,Min(Open,lowline));
money=lots*(myprice*contractunit*BigPointValue)/10000;}
}
麻烦管理删掉帖子!免得误导他人!
策略研究时用:lots=IntPart(money/(myprice*contractunit*BigPointValue));
策略交易时用:lots=IntPart(A_FreeMargin/(myprice*contractunit*BigPointValue));
策略研究下不带账户,要设定初始资金、最大投入交易资金。策略交易就可以用模拟账户里资金和持仓量来跑了。
初学程序化交易,把这两个之间的差异没搞清楚。
lots=IntPart(A_FreeMargin/(myprice*contractunit*BigPointValue)); //计算开仓手数
搞公式习惯了,没想起来用账户函数。问题已经解决,谢谢kyover!
Params
Vars
Numeric highline; //高点连线
Numeric lowline; //低点连线
Numeric myprice; //委托价格
Numeric lots; //委托数量
Numeric money(1); //浮盈开仓:单位万
Events
OnInit()
{
//=========交易相关设置==============
//SetInitCapital(1000000); //设置初始资金为10万
}
OnBar(ArrayRef<Integer> indexs)
{
myprice=Open;//这里使用open,更为精确的是使用委托价格
lots=IntPart(money*10000/(myprice*contractunit*BigPointValue)); //计算开仓手数
// lots=5;
highline=Highest(High[1],20);
lowline=Lowest(Low[1],20);
If(MarketPosition<>1 And High>=highline)
Buy(lots,Max(Open,highline));
If(MarketPosition<>-1 And Low<=lowline)
{Sell(lots,Min(Open,lowline));
money=lots*(myprice*contractunit*BigPointValue)/10000;}//平仓后重新计算资金量,给money重新赋值
}
这哪里有代码是写盈利加仓的?
盈利判断没有,加仓也没有
money=lots*(myprice*contractunit*BigPointValue)/10000;
怎么改,麻烦指点一下。
写都没写 怎么改?起码写出来再改吧
加仓语句 可以学习海龟策略 盈利需要序列类型记录开仓价格 可以参考移动止损的思路
这个money是不是下一bar就给var部分初始化成默认值了,而不是sell之后的最后一句给它的最新值?程序小白,基本没有编程经验,麻烦多指教。谢谢!
If(MarketPosition<>-1 And Low<=lowline)
{ SellShort(lots,Min(Open,lowline));
money=lots*(myprice*contractunit*BigPointValue)/10000;}
}//平仓后重新计算资金量,给money重新赋值。