欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [求助]逐K线模式机制有点不是很了解

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2508人关注过本帖树形打印复制链接

主题:[求助]逐K线模式机制有点不是很了解

帅哥哟,离线,有人找我吗?
dbsx
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/7/12 20:02:53
[求助]逐K线模式机制有点不是很了解  发帖心情 Post By:2015/8/7 22:18:10 [只看该作者]

我在逐k线模式下测试了使用zig函数的顶底(peak,trough)来构造买卖点,并在买卖条件形成时用drawtext在图表上显示。
然后再回测时候就出现了原先成立的已经画出(drawtext)的地方之后因为新的k线使得zig之前的顶底不成立而抹去了drawtext书写上去的内容



我不理解的是逐k线模式既然是从左到右一个k线计算一次,那么除了zig这类特殊函数本身外, 正常情况下应该不会对之前k线画的东西(drawtext)产生影响呀, 怎么会连我之前自己写上去的文字都一并随着条件不成立而抹去了呢????

如果我希望之前自己标示的文字不会因为zig函数在之后其顶底的变化而发生变动,那应该怎么做呢?

///////////////////////////////////////////////////////////////////////////////////////////////////////
//预设
ZIG(3,Z);
VARIABLE:持仓状态=0;

//条件
买入条件:=TROUGH(3,z,2) <TROUGH(3,z,1) AND  TROUGH(3,z,3) <TROUGH(3,z,2) AND PEAK(3,z,2) <PEAK(3,z,1) 
 AND PEAKBARS(3,z,1) > TROUGHBARS(3,z,1) AND  TROUGHBARS(3,z,1) AND 持仓状态=0;
卖出条件:= 持仓状态>0 AND CLOSE<TROUGH(3,Z,2);


//执行
IF 买入条件 THEN BEGIN
DRAWTEXT(1,CLOSE,'买',COLORRED);
持仓状态:=1;
END
IF 卖出条件 THEN BEGIN
DRAWTEXT(1,CLOSE,'卖',COLORGREEN);
持仓状态:=0;
END

//显示
持仓:持仓状态,NODRAW;

 回到顶部
帅哥哟,离线,有人找我吗?
fantasynew
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:381 积分:0 威望:0 精华:0 注册:2013/10/2 12:35:58
  发帖心情 Post By:2015/8/8 15:14:12 [只看该作者]

仅刷最后一根k线

 回到顶部
帅哥哟,离线,有人找我吗?
dbsx
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/7/12 20:02:53
[求助]逐K线模式机制有点不是很了解  发帖心情 Post By:2015/8/8 22:12:34 [只看该作者]

这个好像并没有什么影响吧。。。。我测试了下一样只要条件又不成立了就把之前我之前标注的给抹掉

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/8/9 23:11:55 [只看该作者]

因为你这个条件本身就是闪烁的,如果要达到您这个效果这样处理下

if 买入条件 and islastbar then WRITEINIFILE('C:\TESTNINFILE.INI','SETTING',NUMTOSTR(barpos,0),买入条件);   //自在最新k时候把条件保存到ini

DRAWTEXT(GETINIFILE('C:\TESTNINFILE.INI','SETTING',NUMTOSTR(barpos,0),),CLOSE,'买',COLORRED);

 回到顶部
帅哥哟,离线,有人找我吗?
dbsx
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/7/12 20:02:53
[求助]逐K线模式机制有点不是很了解  发帖心情 Post By:2015/8/10 7:40:59 [只看该作者]

先谢谢您的回复,不过我用了这几句代码后,我发现原来有的买卖信号也没有了。。。

//预设
ZIG(3,Z);
VARIABLE:持仓状态=0;
VARIABLE:1买止损价=0;
VARIABLE:信号灯=0;

信号灯:=0;
//条件
买入条件:=TROUGH(3,z,2) <TROUGH(3,z,1) AND  TROUGH(3,z,3) <TROUGH(3,z,2) AND PEAK(3,z,2) <PEAK(3,z,1) 
 AND PEAKBARS(3,z,1) > TROUGHBARS(3,z,1) AND  TROUGHBARS(3,z,1) AND 持仓状态=0;
卖出条件:= 持仓状态>0 AND CLOSE<1买止损价;
//ATR
ATR:"ATR.ATR"(Z),NODRAW;

//执行
if 买入条件 and islastbar then BEGIN 
WRITEINIFILE('C:\TESTNINFILE.INI','SETTING',NUMTOSTR(barpos,0),买入条件);   //自在最新k时候把条件保存到ini
DRAWTEXT(GETINIFILE('C:\TESTNINFILE.INI','SETTING',NUMTOSTR(barpos,0)),CLOSE,'买',COLORRED);
//IF 买入条件 THEN BEGIN
//DRAWTEXT(1,CLOSE,'买',COLORRED);
持仓状态:=1;
信号灯:=1;
END
IF 卖出条件 THEN BEGIN
DRAWTEXT(1,CLOSE,'卖',COLORGREEN);
持仓状态:=0;
1买止损价:=0;
信号灯:=-1;
END

IF 持仓状态=1 THEN BEGIN
1买止损价:= MAX(1买止损价,CLOSE-2*ATR);
DRAWTEXT(1,1买止损价,'●',COLORWHITE);
END

//显示
止损价:1买止损价,NODRAW;
持仓:持仓状态,NODRAW;
信号:信号灯,NODRAW;

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/8/10 9:37:02 [只看该作者]

你看下ini文件里保存的买入条件都是多少。

因为这个没法处理历史信号的,只能记录下你当下加载图表后记录的值。

你或者自己把历史的一些买入条件事先放入到ini文件中

您这种依靠未来的思路本身在程序化中就不建议使用


 回到顶部
帅哥哟,离线,有人找我吗?
dbsx
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/7/12 20:02:53
[求助]逐K线模式机制有点不是很了解  发帖心情 Post By:2015/8/10 20:50:57 [只看该作者]

好吧,看来我只能放弃未来函数了。。。。

 回到顶部