设为首页收藏本站

 找回密码
 注册
楼主: wwr_5817
打印 上一主题 下一主题

SOS!4.3.5无法读取数据库信息 [复制链接]

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
1#
发表于 2013-5-20 17:26:05 |显示全部楼层
小米 发表于 2013-5-20 13:53
确认一下是何时下载更新安装的4.3.5?
退出软件重登录的界面上数据重置后(先按默认的重置),再登录后结果 ...

请问小米版主:下载了交易开拓者4.3.5版本后,原来正常运行的公式只是重新编译保存了一下,就出了反复交易的问题,是什么原因??实盘在用,急急!!

使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
2#
发表于 2013-5-21 15:24:37 |显示全部楼层
小米 发表于 2013-5-21 09:35
4.3.5的升级对公式系统没有任何的变动,信号的改变与升级无关,建议还是从公式里代码里排查问题。 ...

复制以后,没有改变任何东西。好像是IF() 不能对BUY SELL 进行控制,造成每个BAR上都有开平仓信号。不解!

使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
3#
发表于 2013-5-21 16:55:56 |显示全部楼层
小米 发表于 2013-5-21 16:45
应该是你的某个  if(  )语句后面无意中加上了” ; “ 分号吧??
去掉分号再编译。 ...

没有,我反复检查过了,也用另外一个公式验证过了,找不出原因。请问如何恢复上一版本?

使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
4#
发表于 2013-5-21 21:57:57 |显示全部楼层
本帖最后由 YLBZ 于 2013-5-21 22:45 编辑
小米 发表于 2013-5-21 17:08
与版本肯定无关的。。本次升级 没有修改公式这块内容的。。。
或者小窗发一下代码,帮你看一下吧。 ...


小米版主:
找到原因了,可能是新版本不识别以下布尔型序列变量。
用了以下两个代码目的是控制止损后再次建仓,
实现止损后突破前期高低点再建仓。
BoolSeries blongstoped(False);//多头控制再次建仓设置
BoolSeries bshontstoped(False);//空头控制再次进场设置

新版本没有编译前很正常,重新编译保存后,就出现每个bar上都开仓的现象。
把控制建仓的两个代码blongstoped  、bshontstoped删除后,if()就恢复了控制作用。
可不知道如何解决?可否加你QQ远程协助一下?

使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
5#
发表于 2013-5-22 10:27:11 |显示全部楼层
本帖最后由 YLBZ 于 2013-5-22 14:02 编辑
小米 发表于 2013-5-21 17:08
与版本肯定无关的。。本次升级 没有修改公式这块内容的。。。
或者小窗发一下代码,帮你看一下吧。 ...


使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
6#
发表于 2013-5-22 10:34:24 |显示全部楼层
本帖最后由 YLBZ 于 2013-5-22 14:01 编辑
小米 发表于 2013-5-21 17:08
与版本肯定无关的。。本次升级 没有修改公式这块内容的。。。
或者小窗发一下代码,帮你看一下吧。 ...

就是这个代码请小米版主斧正,谢谢!

使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
7#
发表于 2013-5-22 10:36:15 |显示全部楼层
小米 发表于 2013-5-21 16:45
应该是你的某个  if(  )语句后面无意中加上了” ; “ 分号吧??
去掉分号再编译。 ...

就是这个模型,请小米版主斧正。谢谢
Params
   Numeric length1(10);
   Numeric length2(20);
   Numeric ATRlength(20);          //ATR周期
   Numeric trailstop(3);           //跟踪止损乘数
   Numeric lost(1);
Vars
   NumericSeries ma1;
   NumericSeries ma2;
   NumericSeries ATRvalue;          //ATR周期内的平均有效值
   NumericSeries Highestafterentry; //开仓后出现的最高价
   NumericSeries lowestafterentry;  //开仓后出现的最低价
   Numeric stopline;                //跟踪止损设置
   Numeric myexitprice;
   BoolSeries blongstoped(False);   //多头控制再次进仓设置
   BoolSeries bshontstoped(False);  //空头控制再次进场设置
Begin
   ATRvalue=AvgTrueRange(ATRlength);
   ma1=AverageFC(close,length1);
   ma2=AverageFC(close,length2);
   Commentary("ATRvalue="+text(ATRvalue));
   PlotNumeric("MA1",MA1);
   PlotNumeric("MA2",MA2);
   If(!blongstoped And MarketPosition!=1 and ma1[1]>ma2[1])
   {
          Buy(lost,open);
          bshontstoped=false;
   }
   If(!bshontstoped and MarketPosition<>-1 And ma1[1]<ma2[1])
   {
         SellShort(lost,open);
         blongstoped=False;
   }
   If(blongstoped and MarketPosition<>1 and High>=Highestafterentry)
   {
         Buy(lost,max(open,highestafterentry));
         blongstoped=false;
   }
   If(bshontstoped and MarketPosition<>-1 and low<=lowestafterentry)
   {
         SellShort(lost,Min(open,lowestafterentry));
         bshontstoped=False;
   }
   If(MarketPosition==1 and barssinceentry==0)
      highestafterentry=high;
   If(MarketPosition==1 and BarsSinceEntry>=1)
      highestafterentry=Max(highestafterentry,high);
   If(MarketPosition==-1 and BarsSinceEntry==0)
      lowestafterentry=low;
   If(marketposition==-1 and barssinceentry>=1)
      lowestafterentry=Min(lowestafterentry,low);
   If(MarketPosition==1 and BarsSinceEntry>=1)
   {
          stopline=highestafterentry[1]-trailstop*ATRvalue[1];//跟踪止损
          If(low<=stopline)
          {
                 myexitprice=Min(open,stopline);
                 Sell(lost,myexitprice);
                 blongstoped=True;
                 Commentary("跟踪止损"+text(myexitprice));
          }
   }Else if(marketposition==-1 and barssinceentry>=1)
   {
          stopline=lowestafterentry+trailstop*ATRvalue[1];//跟踪止损
          if(high>=stopline)
          {
                myexitprice=Max(Open,stopline);                 
                BuyToCover(lost,myexitprice);
                bshontstoped=True;
                Commentary("跟踪止损"+text(myexitprice));
           }
   }
End   

使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
8#
发表于 2013-5-22 14:03:25 |显示全部楼层
小米 发表于 2013-5-22 11:16
先修改如下,看一下结果吻合不?貌似这个!有问题的样子。已经提交开发部门去检查。有结果了我再到这里回 ...

谢谢!等你。

使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
9#
发表于 2013-5-22 16:57:05 |显示全部楼层
小米 发表于 2013-5-22 10:31
你设的是布尔序列型,一旦此值为真,在没有条件改变此值之前,会连续多个Bar上都判断为真哟。。这个是你 ...

    有其他条件控制,只有同时满足条件后才可以开仓。也就是止损后用布尔型序列值为真记录这种状态,后边满足最高价大于前期高点时开多,开空相反。不知逻辑是否成立?用全局变量如何实现这个目的?请小米版主赐教!

使用道具 举报

Rank: 4

精华
0
UID
110324
积分
340
帖子
257
主题
51
阅读权限
50
注册时间
2012-5-4
最后登录
2014-12-20
10#
发表于 2013-5-22 19:37:01 |显示全部楼层
小米 发表于 2013-5-22 17:27
不是很明确你的思路。以我能理解的来说,是可以实现的。先试试序列变量。 ...

谢谢小米!已经修复。就是"!"符号的原因。新版本不识别。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-20 20:32

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部