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

标题: 为什么代码没问题却没有信号 [打印本页]

作者: huxueyi    时间: 2016-9-20 19:37:52     标题: 为什么代码没问题却没有信号

代码如下,系统显示统辑成功,但却没有任何信号,请问是什么问题?
If(MarketPosition==0 And AdpMA[1]>AdpMA[2])
    {   
        Buy(0,O);
        myEntryPrice=O;
    }
作者: yuyuehan    时间: 2016-9-21 14:01:33

条件是否满足,用调试语句commentary输出来看下
作者: huxueyi    时间: 2016-9-21 21:05:49

yuyuehan 发表于 2016-9-21 14:01
条件是否满足,用调试语句commentary输出来看下

用Commentary("mark"+text(MarketPosition));代码,没出现任何结果啊?用MA5代替AdpMA就有很多信号了。
麻烦再帮我看看问题出 在哪?
作者: huxueyi    时间: 2016-9-22 12:24:46

huxueyi 发表于 2016-9-21 21:05
用Commentary("mark"+text(MarketPosition));代码,没出现任何结果啊?用MA5代替AdpMA就有很多信号了。
...

这个代码中,AdpMA换成MA5,同样的条件,没有任何问题;但用AdpMA就没有任何信号 ,也用commentary试了,没有结果,请支援!谢谢!
作者: yuyuehan    时间: 2016-9-22 13:22:06

AdpMA[1]>AdpMA[2]也有同时满足吗?将详细代码发一下
作者: huxueyi    时间: 2016-9-22 18:56:35

Params
        Numeric EffRatioLength(10);
        Numeric FastAvgLength(2);
        Numeric SlowAvgLength(30);
Begin
        PlotNumeric("AdpMa",AdaptiveMovAvg(Close,EffRatioLength,FastAvgLength,SlowAvgLength));
If(MarketPosition==0 And AdpMA[1]>AdpMA[2])
    {   
        Buy(0,O);
        myEntryPrice=O;
    }
If(MarketPosition==1 And BarsSinceEntry>0 And MA5<MA20 And MACD<MACDAvg)
     {
      Sell(Abs(CurrentContracts),Min(O,MA5));
     }
作者: huxueyi    时间: 2016-9-25 18:10:08

Params
         Numeric EffRatioLength(10);
         Numeric FastAvgLength(2);
         Numeric SlowAvgLength(30);
Begin
         PlotNumeric("AdpMa",AdaptiveMovAvg(Close,EffRatioLength,FastAvgLength,SlowAvgLength));
If(MarketPosition==0 And AdpMA[1]>AdpMA[2])
     {   
         Buy(0,O);
         myEntryPrice=O;
     }
If(MarketPosition==1 And BarsSinceEntry>0 And MA5<MA20 And MACD<MACDAvg)
      {
       Sell(Abs(CurrentContracts),Min(O,MA5));
      }
作者: wu778001035    时间: 2016-9-26 16:01:50

huxueyi 发表于 2016-9-25 18:10
Params
         Numeric EffRatioLength(10);
         Numeric FastAvgLength(2);


条件不满足自然不会有信号,你用ma可以出来信号的话就用ma吧,
作者: llt8326    时间: 2016-9-26 16:40:54

huxueyi 发表于 2016-9-25 18:10
Params
         Numeric EffRatioLength(10);
         Numeric FastAvgLength(2);

PlotNumeric("AdpMa",AdaptiveMovAvg(Close,EffRatioLength,FastAvgLength,SlowAvgLength));
你的adpMa的定义在哪里?上面这句可不是定义,只是输出而已吧!你这个问题肯定出在你的adpma的定义上面,跑不了的,因为你直接用ma是有信号的
作者: huxueyi    时间: 2016-9-26 23:26:17

所以,我用考夫曼变速均线代码求均线,你们的原代码如下:
Params
        NumericSeries Price(1);
        Numeric EffRatioLength(10);
        Numeric FastAvgLength(2);
        Numeric SlowAvgLength(30);
Vars
        Numeric NetChg(0);
        Numeric TotChg(0);
        Numeric EffRatio(0);
        Numeric ScaledSFSqr(0);
        NumericSeries AMAValue;       
        Numeric SFDiff;
Begin
        if(CurrentBar == 0)
        {
                AMAValue = Price;
        }Else
        {
                NetChg = Abs( Price - Price[EffRatioLength] );
                TotChg = Summation( Abs( Price - Price[1] ), EffRatioLength );               
                EffRatio = IIF(TotChg > 0, NetChg / TotChg, 0);
                SFDiff = 2 / ( FastAvgLength + 1 ) - 2 / ( SlowAvgLength + 1 );               
                ScaledSFSqr = Sqr( 2 / ( SlowAvgLength + 1 ) + EffRatio * SFDiff );               
                AMAValue = AMAValue[1] + ScaledSFSqr * ( Price - AMAValue[1] );
        }
但无法保存,显示“参数声明的数据类型错识破,错误号是C0108”;如果这个问题能解决,我可以加变速均线代码,问题就解决了。
麻烦你再帮我看看考夫曼变速均线的原代码问题出在哪?

作者: huxueyi    时间: 2016-9-26 23:26:52

问题出在NumericSeries Price(1);上
作者: huxueyi    时间: 2016-9-28 12:15:55

所以,我用考夫曼变速均线代码求均线,你们的原代码如下:
Params
         NumericSeries Price(1);
         Numeric EffRatioLength(10);
         Numeric FastAvgLength(2);
         Numeric SlowAvgLength(30);
Vars
         Numeric NetChg(0);
         Numeric TotChg(0);
         Numeric EffRatio(0);
         Numeric ScaledSFSqr(0);
         NumericSeries AMAValue;        
         Numeric SFDiff;
Begin
         if(CurrentBar == 0)
         {
                 AMAValue = Price;
         }Else
         {
                 NetChg = Abs( Price - Price[EffRatioLength] );
                 TotChg = Summation( Abs( Price - Price[1] ), EffRatioLength );               
                 EffRatio = IIF(TotChg > 0, NetChg / TotChg, 0);
                 SFDiff = 2 / ( FastAvgLength + 1 ) - 2 / ( SlowAvgLength + 1 );               
                 ScaledSFSqr = Sqr( 2 / ( SlowAvgLength + 1 ) + EffRatio * SFDiff );               
                 AMAValue = AMAValue[1] + ScaledSFSqr * ( Price - AMAValue[1] );
         }
但无法保存,显示“参数声明的数据类型错识破,错误号是C0108”;如果这个问题能解决,我可以加变速均线代码,问题就解决了。
麻烦你再帮我看看考夫曼变速均线的原代码问题出在哪?




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