如何在策略公式里加一个预警功能
2024-06-13 14:28

老师好!我想在如下公式应用代码中加一个预警功能:当期货价格进入策略买入或卖出价格的2%范围之内时,系统会发出报警提醒。谢谢您!


//------------------------------------------------------------------------

// 简称: DisplacedBoll_L

// 名称: 基于平移布林通道的系统多

// 类别: 公式应用

// 类型: 内建应用

// 输出:

//------------------------------------------------------------------------

//----------------------------------------------------------------------//

// 策略说明:

// 基于平移的boll通道突破系统

//

// 系统要素:

// 1. 平移的boll通道

//

// 入场条件:

// 1、关键价格突破通道上轨,则开多仓

// 2、关键价格突破通道下轨,则开空仓

//

// 出场条件:

// 1、关键价格突破通道上轨,则平空仓

// 2、关键价格突破通道下轨,则平多仓

//

// 注:当前策略仅为做多系统, 如需做空, 请参见CL_DisplacedBoll_S

//

//----------------------------------------------------------------------//

Params

Numeric AvgLen(3); //boll均线周期参数

Numeric Disp(16); //boll平移参数

Numeric SDLen(12); //boll标准差周期参数

Numeric SDev(2); //boll通道倍数参数

Vars

Numeric Price; //关键价格

Series<Numeric> AvgVal(0); //中轨

Series<Numeric> SDmult(0); //通道距离

Series<Numeric> DispTop(0); //通道高点

Series<Numeric> DispBottom(0); //通道低点

Numeric MinPoint; //最小变动价位


Events

OnBar(ArrayRef<Integer> indexs)

{

//指标计算

MinPoint = MinMove*PriceScale; //最小变动价位

Price = Close; //关键价格

//平移boll通道计算

AvgVal = Average(Price,AvgLen);

SDmult = StandardDev(Price,SDLen,2)*SDev;

DispTop = AvgVal[Disp] + SDmult;

DispBottom = AvgVal[Disp] - SDmult;

//系统入场

If(MarketPosition == 0)

{

If(High >= DispTop[1])

{

Buy(0,Max(Open,DispTop[1]));

}

}

//系统出场

If(MarketPosition == 1 And BarsSinceEntry > 0)

{

If(Low <= DispBottom[1])

{

Sell(0,Min(Open,DispBottom[1]));

}

}

}

//------------------------------------------------------------------------

// 编译版本 GS2014.10.25

// 版权所有 TradeBlazer Software 2003-2025

// 更改声明 TradeBlazer Software保留对TradeBlazer平

// 台每一版本的TradeBlazer公式修改和重写的权利

//------------------------------------------------------------------------



评论区
顶部