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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 代码修改

   

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


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

主题:代码修改

美女呀,离线,留言给我吧!
金字塔散户
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:558 积分:658 威望:0 精华:0 注册:2012/9/20 10:11:38
代码修改  发帖心情 Post By:2012/9/25 19:38:38    Post IP:211.95.61.35[只看该作者]

AvgTR := ref(MA(TR,ATRLen),1) ;
//建立多头进场条件
Long := h > T20Hi ;
//多头进场
if Long then begin
myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
buy( _DEBUG,PosNum,limitr,myEntryPrice);
Position := 1 ;
TurtleUnits := 1 ;
N := AvgTR ;
BuyOrderThisBar := 1;
//多头加仓条件
While (High>myEntryPrice+0.5*N) and TurtleUnits<4 Do Begin
myEntryPrice := IF(Open>myEntryPrice+0.5*N ,Open ,myEntryPrice+0.5*N ) ;
myEntryPrice := Ceiling(myEntryPrice/MINDIFF)*MINDIFF ;
buy( _DEBUG, PosNum, limitr, myEntryPrice);
TurtleUnits := TurtleUnits+1 ;
BuyOrderThisBar := 1;
End //While
上面的ATR计算了4次,第一段开仓有1次,记为第一次,后面一段加仓有3次,分别记为第二,第三,第四次,我希望第二第三第四次依然用第一次的ATR,而不要刷新k线后重新计算。
 
本人不擅长编程,所以希望版上老师帮我写一下,能够给我完整的修改好的代码。不要只提供一个思路,思路我也懂,就是第一次下单记录最初的值。
不胜感激。
[此贴子已经被作者于2012-9-25 19:39:39编辑过]

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/9/26 9:33:16    Post IP:58.246.57.26[只看该作者]

您好,正在处理该问题,预计在今天收盘前解决



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/9/26 15:59:50    Post IP:58.246.57.26[只看该作者]

variable:N=0;

AvgTR := ref(MA(TR,ATRLen),1) ;

//建立多头进场条件
Long := h > T20Hi ;
//多头进场
if Long and a=0 then begin
myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
buy( _DEBUG,PosNum,limitr,myEntryPrice);
Position := 1 ;
TurtleUnits := 1 ;
N:= AvgTR ;
BuyOrderThisBar := 1;

a:=1;

end

 

//多头加仓条件

if long and a=1 then begin

myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
buy( _DEBUG,PosNum,limitr,myEntryPrice);
Position := 1 ;
TurtleUnits := 1 ;
BuyOrderThisBar := 1;
While (High>myEntryPrice+0.5*N) and TurtleUnits<4 Do Begin
myEntryPrice := IF(Open>myEntryPrice+0.5*N ,Open ,myEntryPrice+0.5*N ) ;
myEntryPrice := Ceiling(myEntryPrice/MINDIFF)*MINDIFF ;
buy( _DEBUG, PosNum, limitr, myEntryPrice);
TurtleUnits := TurtleUnits+1 ;
BuyOrderThisBar := 1;
End //While



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
美女呀,离线,留言给我吧!
金字塔散户
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:558 积分:658 威望:0 精华:0 注册:2012/9/20 10:11:38
  发帖心情 Post By:2012/9/27 8:21:18    Post IP:211.95.61.35[只看该作者]

多头进场第一句就不理解,if Long and a=0。。。这个a哪里来的啊?

 回到顶部
美女呀,离线,留言给我吧!
金字塔散户
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:558 积分:658 威望:0 精华:0 注册:2012/9/20 10:11:38
  发帖心情 Post By:2012/9/27 8:26:32    Post IP:211.95.61.35[只看该作者]

//多头加仓条件

if long and a=1 then begin

myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
buy( _DEBUG,PosNum,limitr,myEntryPrice);
Position := 1 ;
TurtleUnits := 1 ;
BuyOrderThisBar := 1;

 

为什么加仓的时候有这样一段代码?这不是开仓吗?加仓应该用while语句啊


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/9/27 8:52:19    Post IP:58.246.57.26[只看该作者]

开头漏了variable:a=0;


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
美女呀,离线,留言给我吧!
金字塔散户
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:558 积分:658 威望:0 精华:0 注册:2012/9/20 10:11:38
  发帖心情 Post By:2012/9/27 9:06:28    Post IP:211.95.61.35[只看该作者]

//多头加仓条件

if long and a=1 then begin

myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
buy( _DEBUG,PosNum,limitr,myEntryPrice);
Position := 1 ;
TurtleUnits := 1 ;
BuyOrderThisBar := 1;

为什么加仓的时候有这样一段代码?这不是开仓吗?加仓应该用while语句啊

//多头加仓条件

if long and a=1 then begin

myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
buy( _DEBUG,PosNum,limitr,myEntryPrice);
Position := 1 ;
TurtleUnits := 1 ;
BuyOrderThisBar := 1;

为什么加仓的时候有这样一段代码?这不是开仓吗?加仓应该用while语句啊

//多头加仓条件

if long and a=1 then begin

myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
buy( _DEBUG,PosNum,limitr,myEntryPrice);
Position := 1 ;
TurtleUnits := 1 ;
BuyOrderThisBar := 1;

 

 

为什么加仓的时候还要开一次仓啊?


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/9/27 9:11:00    Post IP:58.246.57.26[只看该作者]

第一次是记录初始值,第二次就是正常的循环


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
美女呀,离线,留言给我吧!
金字塔散户
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:558 积分:658 威望:0 精华:0 注册:2012/9/20 10:11:38
  发帖心情 Post By:2012/9/27 9:27:38    Post IP:211.95.61.35[只看该作者]

第一次记录初始值的时候你已经buy了一次,为什么然后a=1的时候你又buy了一次?(再然后才是循环。。。)拜托你看仔细点啊

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/9/27 9:34:39    Post IP:58.246.57.26[只看该作者]

初始buy,记录值,只执行一次,后面的buy进行循环


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
总数 11 1 2 下一页