设为首页收藏本站

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

用户函数编译的时候出现“无法识别的字符串” [复制链接]

Rank: 1

精华
0
UID
111622
积分
36
帖子
9
主题
3
阅读权限
10
注册时间
2012-7-20
最后登录
2013-5-26
跳转到指定楼层
1#
发表于 2012-11-30 19:20:41 |只看该作者 |倒序浏览
用matlab测试出来一个比较不错的交易系统,用TB实现的时候,卡在这里了,急求帮助啊!

代码如下


Params
        Numeric my_Entryprice(0);
        Numeric bar_keep(1);
        Numeric profits_lost_ratio(0.01);
Vars
        Numeric high_price;
        Numeric low_price;
        Numeric i;
        Numeric profits_lost_state(0);
Begin
    high_price=high[bar_keep];
        low_price=low[bar_keep];
        for i= bar_keep DownTo 1
    {
                If(close[i] > high_price)
                        high_price =close[i];
                if(close[i] < low_price)
            low_price =close[i];               
        }
if (MarketPosition==1)
   { If high_price-my_Entryprice>=profits_lost_ratio*OpenD(0)                                        // 达到止盈条件
        { if (-close[1]+high_price)>=(high_price-my_Entryprice)*0.5
                  {
                            profits_lost_state=1;
                            return;
                          }
            }
     if high_price-my_Entryprice>=profits_lost_ratio*OpenD(0)*2
            { if (-close[1]+high_price)>=(high_price-my_Entryprice)*0.3
                  {
                            profits_lost_state=1;
                            return;
                          }
            }
     if high_price-my_Entryprice>=profits_lost_ratio*OpenD(0)*3
            { if (-close[1]+high_price)>=(high_price-my_Entryprice)*0.1
                  {
                            profits_lost_state=1;
                            return;
                          }
            }               
         if -close[1]+my_Entryprice>=profits_lost_ratio*OpenD(0)                                        // 达到止损条件
                  {
                          profits_lost_state=-1;
                  return;
                  }
         }
if (MarketPosition==-1)
      { if -low_price+my_Entryprice>=profits_lost_ratio*OpenD(0)                                   // 达到止盈条件
        { if (close[1]-low_price)>=(-low_price+my_Entryprice)*0.5
                  {
                            profits_lost_state=1;
                            return;
                          }
            }
     if -low_price+my_Entryprice>=profits_lost_ratio*OpenD(0)*2
            { if (close[1]-low_price)>=(-low_price+my_Entryprice)*0.3
                  {
                            profits_lost_state=1;
                            return;
                          }
            }
     if -low_price+my_Entryprice>=profits_lost_ratio*OpenD(0)*3
            { if (close[1]-low_price)>=(-low_price+my_Entryprice)*0.1
                  {
                            profits_lost_state=1;
                            return;
                          }
            }               
         if close[1]-my_Entryprice>=profits_lost_ratio*OpenD(0)                                        // 达到止损条件
                  {
                          profits_lost_state=-1;
                  return;
                  }
         }
}

        Return profits_lost_state;
End


编译的时候:无法识别的是high_price

Rank: 1

精华
0
UID
111622
积分
36
帖子
9
主题
3
阅读权限
10
注册时间
2012-7-20
最后登录
2013-5-26
2#
发表于 2012-11-30 19:27:41 |只看该作者
找到原因了,原来是编程习惯造成的

if 后面没有括号

使用道具 举报

Rank: 2

精华
0
UID
113555
积分
50
帖子
26
主题
1
阅读权限
30
注册时间
2012-11-17
最后登录
2013-1-14
3#
发表于 2012-12-1 04:58:39 |只看该作者

使用道具 举报

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

bottom

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

GMT+8, 2024-5-22 14:53

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部