一、模型构想:小时图
三个简单移动平均作比较,4小时,9小时,18小时。
①买入:4小时均线上穿18小时均线;
②卖出:4小时均线下穿18小时均线。
二、模型文字语言
1.开、平仓条件
(1)当前无持仓
a.
当4小时均线上穿18小时均线;下一根K线以开盘价开多仓;
b.
当4小时均线下穿18小时均线;下一根K线以开盘价开空仓。
(2)当前持多仓
a.
4小时均线下穿9小时均线,下一根K线以开盘价平仓。
(3)当前持空仓
a.
4小时均线上穿9小时均线,下一根K线以开盘价平仓。
2.持仓数量:为总资金的30%
3.没有止损
三、模型语言编辑(源代码):
Params
Numeric
FourLength(4); //短期均线参数4
Numeric
NineLength(9); //短期均线参数9
Numeric
EighteenLength(18); //短期均线参数18
Vars
NumericSeries
MA4; //短期均线4
NumericSeries
MA9; //短期均线9
NumericSeries
MA18; //短期均线18
Numeric
TradeUnits; //可交易的合约数量
Numeric
Trademoney; //允许交易的金额
Numeric
Contractprice; //单张合约金额
Begin
MA4 =
Average(Close,
FourLength);
MA9 =
Average(Close,
NineLength);
MA18 =
Average(Close,
EighteenLength);
If(MarketPosition
== 0) //无仓位
{
Trademoney
= 0.3*CurrentCapital();
Contractprice = ContractUnit*nextopen;
TradeUnits
= IntPart(Trademoney/Contractprice);
If(crossover(MA4,MA18)) //
4小时均线上穿18小时均线
{
Buy(TradeUnits, nextopen,
true); //开多仓
SetGlobalVar(0, nextopen);
}Else
If(crossunder(MA4,MA18)) //
4小时均线下穿18小时均线
{
SellShort(TradeUnits, nextopen, true);
//开空仓
SetGlobalVar(1, nextopen);
}
}Else
IF(MarketPosition == 1)
//有多仓
{
If(crossunder(MA4,MA9)) //4小时均线下穿9小时均线
{
sell(TradeUnits,
nextopen, true);//平多仓
}
}Else IF
(MarketPosition == -1)
//有空仓
{
If(crossover(MA4,MA9)) //
4小时均线上穿9小时均线
{
BuyToCover(TradeUnits,
nextopen, true);//平空仓
}
}
End
加载中,请稍候......