开拓者期货期权程序化系统交易论坛

标题: 加仓问题 [打印本页]

作者: pepsi    时间: 2012-3-20 15:27:33     标题: 加仓问题

以下是代码和全局交易设置,请管理员帮看看为什么无加仓信号出现
  1. Params
  2.         Numeric Length1(10);
  3.         Numeric Length2(20);
  4.        
  5. Vars
  6.         NumericSeries Ma1;
  7.         NumericSeries Ma2;
  8.         Numeric MyEnterPrice;
  9.        
  10. Begin
  11.         Ma1 = Average(Close,Length1);
  12.         Ma2 = Average(Close,Length2);
  13.         PlotNumeric("MA1",Ma1);
  14.         PlotNumeric("MA2",Ma2);
  15.         If(CrossOver(Ma1[1],Ma2[1]))
  16.         {
  17.                 Buy(1,Open);
  18.         }
  19.         If(CrossOver(High,Highest(High,5)) )
  20.         {
  21.                 MyEnterPrice = Highest(High,5);
  22.                 Buy(1,MyEnterPrice);
  23.         }
  24.         If(CrossUnder(Ma1[1],Ma2[1]) )
  25.         {
  26.                 SellShort(1,Open);
  27.         }
  28.         If(CrossUnder(Low,Lowest(Low,5)) )
  29.         {
  30.                 MyEnterPrice = Lowest(Low,5);
  31.                 SellShort(1,MyEnterPrice);
  32.         }

  33. End
复制代码
[attach]8679[/attach]
作者: Caesar    时间: 2012-3-20 16:26:59

求教啊求教,哪位大神找空帮忙看看吧。。。
作者: lh948    时间: 2012-3-21 09:05:54

回复 1# pepsi


之后满足条件吗?
用bool变量输出条件看看。
作者: pepsi    时间: 2012-3-21 20:44:10

输出Bool,代码、全局交易设置、超级图表如下显示,从代码上看不出任何错错误,请管理员指点一下啊。
  1. Params
  2.         Numeric Length1(10);
  3.         Numeric Length2(20);

  4. Vars

  5.         NumericSeries Ma1;
  6.         NumericSeries Ma2;
  7.         Numeric MyEnterPrice;

  8. Begin

  9.         Ma1 = Average(Close,Length1);
  10.         Ma2 = Average(Close,Length2);
  11.         PlotNumeric("MA1",Ma1);
  12.         PlotNumeric("MA2",Ma2);
  13.         If(CrossOver(Ma1[1],Ma2[1]))
  14.         {
  15.                         Buy(1,Open);
  16.                         PlotBool("Buy:",CrossOver(Ma1[1],Ma2[1]));
  17.         }
  18.         If(CrossOver(High,Highest(High,5)) And BarsSinceEntry>1)
  19.         {
  20.                         MyEnterPrice = Highest(High,5);
  21.                         Buy(1,MyEnterPrice);
  22.                         PlotBool("Buy:",CrossOver(High,Highest(High,5)) );
  23.         }
  24.         If(CrossUnder(Ma1[1],Ma2[1]) )
  25.         {
  26.                         SellShort(1,Open);
  27.                         PlotBool("Sell:",CrossUnder(Ma1[1],Ma2[1]) );
  28.         }
  29.         If(CrossUnder(Low,Lowest(Low,5))  And BarsSinceEntry>1)
  30.         {
  31.                         MyEnterPrice = Lowest(Low,5);
  32.                         SellShort(1,MyEnterPrice);
  33.                         PlotBool("Sell:",CrossUnder(Low,Lowest(Low,5)) );
  34.         }

  35. End
复制代码
[attach]8684[/attach][attach]8685[/attach]
[attach]8686[/attach][attach]8687[/attach]
作者: pepsi    时间: 2012-3-24 09:09:30


作者: 傻了吧    时间: 2012-3-24 09:49:02

本帖最后由 傻了吧 于 2012-3-24 10:00 编辑

看不出问题。。帮顶
作者: pepsi    时间: 2012-3-25 09:45:15

是哦,简单的代码,写了个加仓,我也看不出任何问题所以发到论坛求解呢
作者: yd111070    时间: 2012-3-26 09:31:21

CrossOver(High,Highest(High,5))
high 应该总是会 <= highest(high,5) 的吧。
作者: pepsi    时间: 2012-3-26 10:52:15

回复 8# yd111070


    不是这个问题吧。
当前Bar的High上穿前5周期的High
作者: landwatcher    时间: 2012-3-26 12:03:17

回复 9# pepsi


你这个逻辑问题很大啊。。当前Bar的high上穿高点,但是你这个公式highest(high,5) 是包含当前high的。。。。
作者: saitoshen    时间: 2012-3-26 12:12:41

一条通道,哈哈。。。
作者: jinlifeng    时间: 2012-3-26 12:58:21

CrossOver(NumericSeries Price1,NumericSeries Price2)
Numeric High()
作者: pepsi    时间: 2012-3-26 13:58:19

回复 10# landwatcher


    highest(high,5) 是包含当前high的。。。。
那问题就在这里了
作者: skykisser    时间: 2012-4-11 16:08:15

搂主最后怎么解决的?怎么写的这条语句
作者: landwatcher    时间: 2013-3-29 14:18:52

high永远不可能crossover highest(high,5)




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2