三均线系统语言
一、 模型构想:小时图
三个简单移动平均作比较,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