设为首页收藏本站

 找回密码
 注册
查看: 2560|回复: 9

请教跨合约如何编写,谢谢 [复制链接]

Rank: 2

精华
0
UID
150448
积分
51
帖子
21
主题
4
阅读权限
30
注册时间
2012-3-15
最后登录
2020-3-31
发表于 2016-4-27 14:02:49 |显示全部楼层
我打开图表叠加商品后,DATA0为基础数据,DATA1为交易合约。
开仓条件:当条件满足DATA0时在DATA1上开仓
平仓条件:当条件满足DATA0时且条件满足DATA1时平仓。
请教怎么写,谢谢!

Rank: 2

精华
0
UID
150448
积分
51
帖子
21
主题
4
阅读权限
30
注册时间
2012-3-15
最后登录
2020-3-31
发表于 2016-4-27 14:37:13 |显示全部楼层
//------------------------------------------------------------------------
// 简称: DualMA
// 名称: 双均线交易系统
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------

Params
        Numeric FastLength(5);
        Numeric SlowLength(20);
Vars
        NumericSeries AvgValue1;
        NumericSeries AvgValue2;
Begin
        AvgValue1 = AverageFC(Close,FastLength);
        AvgValue2 = AverageFC(Close,SlowLength);

        PlotNumeric("MA1",AvgValue1);
        PlotNumeric("MA2",AvgValue2);               
       
        // 集合竞价和小节休息过滤
        If(!CallAuctionFilter()) Return;
       
        If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
        {
                Buy(1,Open);
        }
       
        If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])
        {
                SellShort(1,Open);
        }
        //PlotNumeric("PL",Portfolio_TotalProfit);       
End

//------------------------------------------------------------------------
// 编译版本        GS2010.12.08
// 版权所有        TradeBlazer Software 2003-2010
// 更改声明        TradeBlazer Software保留对TradeBlazer平
//                        台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

Rank: 2

精华
0
UID
150448
积分
51
帖子
21
主题
4
阅读权限
30
注册时间
2012-3-15
最后登录
2020-3-31
发表于 2016-4-27 14:37:46 |显示全部楼层
请问用上面的代码怎么实现我1楼说的策略,谢谢。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2016-4-27 15:01:49 |显示全部楼层
qwe123456 发表于 2016-4-27 14:37
请问用上面的代码怎么实现我1楼说的策略,谢谢。
  1. Params
  2.         Numeric FastLength(5);
  3.         Numeric SlowLength(20);
  4. Vars
  5.         NumericSeries AvgValue1;
  6.         NumericSeries AvgValue2;
  7. Begin
  8.         AvgValue1 = AverageFC(Close,FastLength);
  9.         AvgValue2 = AverageFC(Close,SlowLength);

  10.         PlotNumeric("MA1",AvgValue1);
  11.         PlotNumeric("MA2",AvgValue2);               
  12.         
  13.         // 集合竞价和小节休息过滤
  14.         If(!CallAuctionFilter()) Return;
  15.         
  16.         If(data1.MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
  17.         {
  18.                 data1.Buy(1,data1.Open);
  19.         }
  20.         
  21.         If(data1.MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])
  22.         {
  23.                 data1.SellShort(1,data1.Open);
  24.         }
  25.         //PlotNumeric("PL",Portfolio_TotalProfit);        
  26. End
复制代码

使用道具 举报

Rank: 2

精华
0
UID
150448
积分
51
帖子
21
主题
4
阅读权限
30
注册时间
2012-3-15
最后登录
2020-3-31
发表于 2016-4-27 15:08:12 |显示全部楼层
平仓条件:当条件满足DATA0时且条件满足DATA1时平仓。  平仓条件要同时满足两个条件

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2016-4-27 16:02:19 |显示全部楼层
qwe123456 发表于 2016-4-27 15:08
平仓条件:当条件满足DATA0时且条件满足DATA1时平仓。  平仓条件要同时满足两个条件 ...

data1的条件是啥?您的代码里根本没有提到data1的运算及条件呢。

使用道具 举报

Rank: 2

精华
0
UID
150448
积分
51
帖子
21
主题
4
阅读权限
30
注册时间
2012-3-15
最后登录
2020-3-31
发表于 2016-4-27 16:23:49 |显示全部楼层
也是这个条件  AvgValue1[1] < AvgValue2[1]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
发表于 2016-4-27 16:53:54 |显示全部楼层
qwe123456 发表于 2016-4-27 16:23
也是这个条件  AvgValue1[1] < AvgValue2[1]

你给的代码里根本没有计算data1的条件,且你所说的是avgvalue[1]>avgvalue2[1]是data0的条件啊。。
建议您以后还是自己将公式的基础了解一下,这样至少在沟通上才会更快捷。
  1. Params
  2.         Numeric FastLength(5);
  3.         Numeric SlowLength(20);
  4. Vars
  5.         NumericSeries AvgValue1;
  6.         NumericSeries AvgValue2;
  7.         numericseries avgvalue21;
  8.         numericseries avgvalue22;
  9. Begin
  10.         AvgValue1 = AverageFC(Close,FastLength);
  11.         AvgValue2 = AverageFC(Close,SlowLength);
  12.         AvgValue21 = AverageFC(data1.Close,FastLength);
  13.         AvgValue22 = AverageFC(data1.Close,SlowLength);

  14.         PlotNumeric("MA1",AvgValue1);
  15.         PlotNumeric("MA2",AvgValue2);               
  16.         
  17.         // 集合竞价和小节休息过滤
  18.         If(!CallAuctionFilter()) Return;
  19.         
  20.         If(data1.MarketPosition ==0 && AvgValue1[1] > AvgValue2[1])
  21.         {
  22.                 data1.Buy(1,data1.Open);
  23.         }
  24.         
  25.         If(data1.MarketPosition ==0 && AvgValue1[1] < AvgValue2[1])
  26.         {
  27.                 data1.SellShort(1,data1.Open);
  28.         }
  29.         If(data1.MarketPosition ==-1 && AvgValue1[1] > AvgValue2[1] && avgvalue21[1]>avgvalue22[1])
  30.         {
  31.                 data1.Buytocover(1,data1.Open);
  32.         }
  33.         
  34.         If(data1.MarketPosition ==1 && AvgValue1[1] < AvgValue2[1] && avgvalue21[1]<avgvalue22[1])
  35.         {
  36.                 data1.Sell(1,data1.Open);
  37.         }
  38.         //PlotNumeric("PL",Portfolio_TotalProfit);        
  39. End
复制代码

使用道具 举报

Rank: 2

精华
0
UID
150448
积分
51
帖子
21
主题
4
阅读权限
30
注册时间
2012-3-15
最后登录
2020-3-31
发表于 2016-4-27 17:37:09 |显示全部楼层
谢谢,就是这个

使用道具 举报

Rank: 4

精华
0
UID
3969
积分
332
帖子
31
主题
7
阅读权限
50
注册时间
2009-3-30
最后登录
2024-3-22
发表于 2019-1-13 00:23:59 |显示全部楼层
Params
        Numeric FastLength(5);
        Numeric SlowLength(20);
Vars
        NumericSeries AvgValue1;
        NumericSeries AvgValue2;
        numericseries avgvalue21;
        numericseries avgvalue22;
Begin
        AvgValue1 = AverageFC(Close,FastLength);
        AvgValue2 = AverageFC(Close,SlowLength);
        AvgValue21 = AverageFC(data1.Close,FastLength);
        AvgValue22 = AverageFC(data1.Close,SlowLength);

        PlotNumeric("MA1",AvgValue1);
        PlotNumeric("MA2",AvgValue2);               
        
        // 集合竞价和小节休息过滤
        If(!CallAuctionFilter()) Return;
        
        If(data1.MarketPosition ==0 && AvgValue1[1] > AvgValue2[1])
        {
                data1.Buy(1,data1.Open);
        }
        
        If(data1.MarketPosition ==0 && AvgValue1[1] < AvgValue2[1])
        {
                data1.SellShort(1,data1.Open);
        }
        If(data1.MarketPosition ==-1 && AvgValue1[1] > AvgValue2[1] && avgvalue21[1]>avgvalue22[1])
        {
                data1.Buytocover(1,data1.Open);
        }
        
        If(data1.MarketPosition ==1 && AvgValue1[1] < AvgValue2[1] && avgvalue21[1]<avgvalue22[1])
        {
                data1.Sell(1,data1.Open);
        }
        //PlotNumeric("PL",Portfolio_TotalProfit);        
End

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-3-29 09:51

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部