
等级: 新手上路
- 注册:
- 2025-2-3
- 曾用名:
|
编写了一个交易模式:
多头规则:持仓为0时,现价格上穿20日布林带上轨时以上轨+1个波动点价格立刻买入,价格回落到中轨(20日)时以市场价全部卖出。
空仓规则:持仓为0时,现价格下穿20日布林带上轨时以上轨-1个波动点价格立刻买入,价格回落到中轨(20日)时以市场价全部卖出。
采用的间隔5秒的轮询方式。
代码编译显示正常,但执行后显示异常:
// 输入参数
INPUT: M(20, 5, 100, 1); // 布林带计算周期,默认值20,范围5 - 100,步长1
// 计算20日布林带
MID : MA(CLOSE, M); // 布林带中轨
UPPER: MID + 2 * STD(CLOSE, M); // 布林带上轨
LOWER: MID - 2 * STD(CLOSE, M); // 布林带下轨
// 获取当前总资金
总资金 := ASSET;
// 计算开仓手数,使用总资金的10%来计算
开仓手数 := 总资金 * 0.05 / IFF(HOLDING >= 0, UPPER, LOWER);
// 交易条件
// 多头开仓条件
多头开仓条件 := HOLDING = 0 AND CROSS(CLOSE,UPPER) ;
// 多头平仓条件
多头平仓条件 := C < MID AND HOLDING > 0;
// 空头开仓条件
空头开仓条件 := HOLDING = 0 AND CROSS(LOWER,CLOSE) ;
// 空头平仓条件
空头平仓条件 := C > MID AND HOLDING < 0;
// 交易系统
// 多头开仓,以当前布林带上轨价格开仓
开多: BUY(多头开仓条件, 开仓手数, LIMITR, UPPER+1*MINDIFF);
// 多头平仓,以B8价格平仓
平多: SELL(多头平仓条件, HOLDING, MARKETR);
// 空头开仓,以当前布林带下轨价格开仓
开空: BUYSHORT(空头开仓条件, 开仓手数, LIMITR, LOWER-1*MINDIFF);
// 空头平仓,以B8价格平仓
平空: SELLSHORT(空头平仓条件, ABS(HOLDING), MARKETR);
// 输出当前持仓和资产信息
当前持仓: HOLDING, COLORGRAY, LINETHICK0;
当前资产: ASSET, NOAXIS, COLORGRAY; // 输出当前资产,但不影响坐标最高最低值
补充内容 (2025-2-5 09:40):
用的刚申请的金字塔期货模拟账户 |
-
-
|