- 精华
- 0
- 在线时间
- 311 小时
- UID
- 3995
- 积分
- 328
- 帖子
- 15
- 阅读权限
- 50
- 注册时间
- 2009-4-1
- 最后登录
- 2019-10-10
- 精华
- 0
- UID
- 3995
- 积分
- 328
- 帖子
- 15
- 主题
- 3
- 阅读权限
- 50
- 注册时间
- 2009-4-1
- 最后登录
- 2019-10-10
|
Params
Numeric TenLength(10); //短期均线参数
Numeric TtyLength(20); //长期均线参数
Vars
NumericSeries TenAverage; //短期均线
NumericSeries TtyAverage; //长期均线
Numeric TradeUnits; //可交易的合约数量
Numeric Trademoney; //允许交易的金额
Numeric Contractprice; //单张合约金额
Numeric preBuyprice;
Numeric preSellprice;
Numeric Winmoney;
Begin
TenAverage = Average(Close,TenLength);
TtyAverage = Average(Close,TtyLength);
If(MarketPosition == 0) //无仓位
{
Trademoney = 0.1*CurrentCapital();
Contractprice = ContractUnit*Close;
TradeUnits = IntPart(Trademoney/Contractprice);
If(crossover(TenAverage,TtyAverage)) //10日均线上穿20日均线
{
Buy(TradeUnits,Close); //开多仓
SetGlobalVar(0,Close);
}Else If(crossover(TtyAverage,TenAverage)) //20日均线上穿10日均线
{
SellShort(TradeUnits,Close); //开空仓
SetGlobalVar(1,Close);
}
}Else IF(MarketPosition == 1) //有多仓
{
If(crossover(TtyAverage,TenAverage)) //20日均线上穿10日均线
{
preBuyprice=GetGlobalVar(0);
IF(close==preBuyprice)
{
SellShort(TradeUnits,Close); //平多仓,并反转
}else
{
sell(TradeUnits,Close);//单平多仓
Winmoney=TradeUnits*close*ContractUnit;
Trademoney = 0.1*(CurrentCapital()+Winmoney);
Contractprice = ContractUnit*Close;
TradeUnits = IntPart(Trademoney/Contractprice);
SellShort(TradeUnits,Close);
}
}
}else IF(MarketPosition == -1) //有空仓
{
If(crossover(TenAverage,TtyAverage))
{
preSellprice=GetGlobalVar(1);
IF(close==preSellprice)
{
Buy(TradeUnits,Close); //平空仓,并反转
}else
{
BuyToCover(TradeUnits,Close);//单平空仓
Winmoney=TradeUnits*close*ContractUnit;
Trademoney = 0.1*(CurrentCapital()+Winmoney);
Contractprice = ContractUnit*Close;
TradeUnits = IntPart(Trademoney/Contractprice);
Buy(TradeUnits,Close);
}
}
}
End
[ 本帖最后由 louhai3 于 2009-4-27 13:24 编辑 ] |
|