设为首页收藏本站

 找回密码
 注册
查看: 1804|回复: 3
打印 上一主题 下一主题

两个问题:为什么求不出来MACDDIFF / 为什么回测不成功 [复制链接]

Rank: 1

精华
0
UID
265052
积分
12
帖子
10
主题
2
阅读权限
10
注册时间
2018-5-3
最后登录
2020-5-18
跳转到指定楼层
1#
发表于 2018-5-31 05:33:31 |只看该作者 |倒序浏览
各位老师,同学,

我编写了一段基于MACD的代码(时间单位为1TICK),但是遇到了两个问题:
1.在图标上能看到MACD和 MACDAVE的值,但 MACDDIFF却显示为N/A.
2. 回测不成功,只能显示一次成交,但实际上应该有很多次。
先谢谢大家。
QUOTE'
Params
        Numeric FastLength(12);
        Numeric SlowLength(26);
        Numeric MACDLength(9);               
        Numeric Lots(2);

Vars
        NumericSeries MACDValue;
        Numeric AvgMACD;
        Numeric MACDDiff;
        NumericSeries BarSinceEntry;

Begin
        MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;       
        AvgMACD = XAverage(MACDValue,MACDLength);
        MACDDiff = MACDValue - AvgMACD;
        PlotNumeric("MACD",MACDValue);
        PlotNumeric("MACDAvg",AvgMACD);
       
        If (MACDValue<=-10 && AvgMACD<=-10)
                If(MarketPosition==0 && MACDDiff> 0)       
                {
                        Buy(Lots,Open);
                        PlotNumeric("MACDDiff",MACDDiff,0,Red);
                }
        If(MarketPosition==1 && BarSinceEntry>=1 && MACDDiff<0)
                {
                        Sell(0,open);         
                        PlotNumeric("MACDDiff",MACDDiff,0,Green);
                }
End

"unquote

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2018-5-31 09:27:59 |只看该作者
你的代码里,MACDDIFF是要求在条件里输出显示的。
也就是说只有在开仓以及平仓那个K线上都有值输出。其它K线就显示为N/A了。
如果想要所有K线上都显示,请修改公式代码 。

使用道具 举报

Rank: 1

精华
0
UID
265052
积分
12
帖子
10
主题
2
阅读权限
10
注册时间
2018-5-3
最后登录
2020-5-18
3#
发表于 2018-5-31 16:24:06 |只看该作者
小米老师,看了您很多的帖子。现在我得到您的回复(我第一次问问题),真是有点小激动。我修改了我的代码,去掉了要求输出的语句,而且编译也成功,但是还是两天只有一次成交,这是不应该的。以下是我修改过的代码,请指教。谢谢
QUOTE"
Params
        Numeric FastLength(12);
        Numeric SlowLength(26);
        Numeric MACDLength(9);               
        Numeric Lots(2);

Vars
        NumericSeries MACDValue;
        Numeric AvgMACD;
        Numeric MACDDiff;
        NumericSeries BarSinceEntry;

Begin
        MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;       
        AvgMACD = XAverage(MACDValue,MACDLength);
        MACDDiff = MACDValue - AvgMACD;
       
        If (MACDValue<=-10 && AvgMACD<=-10)
                If(MarketPosition==0 && MACDDiff> 0)       
                {
                        Buy(Lots,Open);
                }
        If(MarketPosition==1 && BarSinceEntry>=1 && MACDDiff<0)
                {
                        Sell(0,open);         
                }
End
"uNQUOTE

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
4#
发表于 2018-6-1 13:34:58 |只看该作者
yg1025 发表于 2018-5-31 16:24
小米老师,看了您很多的帖子。现在我得到您的回复(我第一次问问题),真是有点小激动。我修改了我的代码, ...
  1. Params
  2.         Numeric FastLength(12);
  3.         Numeric SlowLength(26);
  4.         Numeric MACDLength(9);               
  5.         Numeric Lots(2);

  6. Vars
  7.         NumericSeries MACDValue;
  8.         Numeric AvgMACD;
  9.         Numeric MACDDiff;
  10.        // NumericSeries BarSinceEntry;

  11. Begin
  12.         MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;        
  13.         AvgMACD = XAverage(MACDValue,MACDLength);
  14.         MACDDiff = MACDValue - AvgMACD;
  15.         
  16.         If (MACDValue<=-10 && AvgMACD<=-10)
  17.                 If(MarketPosition==0 && MACDDiff> 0)        
  18.                 {
  19.                         Buy(Lots,Open);
  20.                 }
  21.         If(MarketPosition==1 && BarSSinceEntry>=1 && MACDDiff<0)
  22.                 {
  23.                         Sell(0,open);         
  24.                 }
  25. End
复制代码

使用道具 举报

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

bottom

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

GMT+8, 2024-5-5 02:40

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部