- 精华
- 0
- 在线时间
- 83 小时
- UID
- 113260
- 积分
- 51
- 帖子
- 18
- 阅读权限
- 30
- 注册时间
- 2012-11-2
- 最后登录
- 2013-6-14
- 精华
- 0
- UID
- 113260
- 积分
- 51
- 帖子
- 18
- 主题
- 8
- 阅读权限
- 30
- 注册时间
- 2012-11-2
- 最后登录
- 2013-6-14
|
本帖最后由 夜幕流星 于 2012-11-10 16:42 编辑
我编了一个交易程序,目的是想实现按资金总量的95%来建仓,但遇到有个问题,就是在if指数日线,2011-5-9那天,只平仓,而又不开新仓,这个令我十分困惑,如果你知道是什么原因,麻烦你告诉一下我,谢谢!
如下是我的程序:
Params
Numeric Length1(10);
Numeric Length2(77);
Numeric bzj(9);//期货公司需保证金百分比
Numeric cn(0.95);//起始点,1为单位,0.1为1成
Vars
NumericSeries MA1;
NumericSeries MA2;
BoolSeries condBuy(false);
BoolSeries condSell(false);
Numeric N1;
Numeric sum1;
Numeric minpoint;
Numeric TotalEquity;//总可用资金
Numeric one1;//1手需要多少资金
Numeric kk;//可开总手数;
//Numeric bzj(9);//期货公司需保证金百分比
Numeric cont(1);//倍数
//Numeric cn(0.);//起始点,1为单位,0.1为1成
Begin
MA1=AverageFC(Close,Length1);
MA2=AverageFC(Close,Length2);
PlotNumeric("MA1",MA1);
PlotNumeric("MA2",MA2);
condBuy=CrossOver(MA1,MA2);
condSell=CrossUnder(MA1,MA2);
SetGlobalVar(0,N1);
//1、加入按资金比例开仓
TotalEquity = Portfolio_CurrentCapital()+Portfolio_UsedMargin();///总权益
one1=Open*ContractUnit()*BigPointValue()*bzj/100;//计算1手需要多少资金
kk=TotalEquity*1/one1;//按1的数,以防价格变动
minpoint=MinMove*PriceScale;
N1=IntPart(kk*cn*cont);
FileAppend("c:\\tb1.txt","Time="+DateTimeToString(date+time)+",kk=:"+Text(kk)+",N1="+Text(N1)+",TotalEquity"+Text(TotalEquity));
if(Marketposition<>1 and condBuy[1]==true)
{
Buy(N1,Open+minpoint);
FileAppend("c:\\tb2.txt","Time="+DateTimeToString(date+time)+",kk=:"+Text(kk)+",N1="+Text(N1)+",TotalEquity"+Text(TotalEquity));
}
if(MarketPosition<>-1 and condSell[1]==true)
{
SellShort(N1,Open-minpoint);
FileAppend("c:\\tb3.txt","Time="+DateTimeToString(date+time)+",kk=:"+Text(kk)+",N1="+Text(N1)+",TotalEquity"+Text(TotalEquity));
}
End
附件为图片:
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|