- 精华
- 0
- 在线时间
- 47 小时
- UID
- 230235
- 积分
- 65
- 帖子
- 40
- 阅读权限
- 30
- 注册时间
- 2016-3-17
- 最后登录
- 2020-7-27
- 精华
- 0
- UID
- 230235
- 积分
- 65
- 帖子
- 40
- 主题
- 19
- 阅读权限
- 30
- 注册时间
- 2016-3-17
- 最后登录
- 2020-7-27
|
//------------------------------------------------------------------------
// 简称: CL_Three_EMA_Crossover_L2 自己改编的
// 名称: CL_Three_EMA_Crossover_L2
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// 策略说明:
// 1.计算三条指数移动平均线(Avg1, Avg2 , Avg3);
// 2.通过指数移动平均线的组合来判断趋势
//
// 入场条件:
// 1.当Avg1向上穿过Avg2并且Avg2大于Avg3时,在下一根k线开盘处买入
// 2.当Avg1向下穿过Avg2并且Avg2小于Avg3时,在下一根k线开盘处卖出
// 买入2手
// 出场条件:
// 1.Avg1下穿Avg2多头出场
// 2.跟踪止损
//
// 注: 当前策略仅为做多系统, 如需做空, 请参见CL_Three_EMA_Crossover_System_S
//----------------------------------------------------------------------//
Params
Numeric AvgLen1(6);
Numeric AvgLen2(12);
Numeric AvgLen3(28);
Numeric RLength(4);
Vars
NumericSeries Avg1; //指数移动平均1
NumericSeries Avg2; //指数移动平均2
NumericSeries Avg3; //指数移动平均3
Numeric position; //仓位
BoolSeries BuyCon1(False); //做多条件之一
NumericSeries LongStopPrice; //跟踪止损价
NumericSeries Range; //K线幅度
NumericSeries RangeL;
Numeric yingkui;
Numeric buytt;
Numeric buytt2;
Numeric sellprice2;
String strKey1;
String strKey2;
String strKey3;
Begin
// 集合竞价和小节休息过滤
If(!CallAuctionFilter()) Return;
//初始设置
Avg1=XAverage(Close,AvgLen1);
Avg2=XAverage(Close,AvgLen2);
Avg3=XAverage(Close,AvgLen3);
Range=High-Low; //定义K线幅度
//在图表上划出指数移动平均线
PlotNumeric("Avg1",Avg1);
PlotNumeric("Avg2",Avg2);
PlotNumeric("Avg3",Avg3);
//Avg1向上穿过Avg2为买入条件之一
BuyCon1=CrossOver(Avg1,Avg2);
//BuyCon1满足且Avg2大于Avg3时,做多
If(BuyCon1[1] And Avg2[1]>Avg3[1] And Vol > 0)
Buy(1,Open);
buytt=open;
buytt2=AvgEntryPrice;
strKey1="buytt"; strKey2="buytt2";
SetTBProfileString(Symbol,strKey1,Text(buytt));
SetTBProfileString(Symbol,strKey2,Text(buytt2));
//Avg1小于Avg2多头出场
If(MarketPosition==1 And BarsSinceEntry>0 And Avg1[1]<Avg2[1] And Vol > 0)
Sell(1,Open);
//设置跟踪止损价
RangeL= Average(Range,RLength);
If(MarketPosition==1 And BarsSinceEntry==0)
{
LongStopPrice=Low-RangeL;
}Else If(MarketPosition==1 And BarsSinceEntry>0)
{
LongStopPrice=LongStopPrice+(Low-LongStopPrice)*0.25;
}
//Commentary("LongStopPrice="+Text(LongStopPrice));
//向下跌破跟踪止损价多头出场
If(MarketPosition==1 And BarsSinceEntry>0 And Low<=LongStopPrice[1] And Vol > 0)
{
sellprice2=Min(Open,LongStopPrice[1]);
Sell(1,sellprice2);
}
yingkui=PositionProfit;
strKey3="yingkui";
SetTBProfileString(Symbol,strKey3,Text(yingkui));
End
//------------------------------------------------------------------------
// 编译版本 GS2015.12.25
// 用户版本 2016/06/06 10:56:33
// 版权所有 jsuguo
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------ |
|