以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 代码修改 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=29468) |
||
-- 作者:金字塔散户 -- 发布时间:2012/9/25 19:38:38 -- 代码修改 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 -- 发布时间:2012/9/26 9:33:16 -- 您好,正在处理该问题,预计在今天收盘前解决 |
||
-- 作者:jinzhe -- 发布时间:2012/9/26 15:59:50 -- variable:N=0; AvgTR := ref(MA(TR,ATRLen),1) ; //建立多头进场条件 a:=1; end
//多头加仓条件 if long and a=1 then begin myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ; |
||
-- 作者:金字塔散户 -- 发布时间:2012/9/27 8:21:18 -- 多头进场第一句就不理解,if Long and a=0。。。这个a哪里来的啊? |
||
-- 作者:金字塔散户 -- 发布时间:2012/9/27 8:26:32 -- //多头加仓条件 if long and a=1 then begin myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
为什么加仓的时候有这样一段代码?这不是开仓吗?加仓应该用while语句啊 |
||
-- 作者:jinzhe -- 发布时间:2012/9/27 8:52:19 -- 开头漏了variable:a=0; |
||
-- 作者:金字塔散户 -- 发布时间:2012/9/27 9:06:28 -- //多头加仓条件 if long and a=1 then begin myEntryPrice := IF(Open>T20Hi+MINDIFF ,Open ,T20Hi+MINDIFF ) ;
为什么加仓的时候还要开一次仓啊? |
||
-- 作者:jinzhe -- 发布时间:2012/9/27 9:11:00 -- 第一次是记录初始值,第二次就是正常的循环 |
||
-- 作者:金字塔散户 -- 发布时间:2012/9/27 9:27:38 -- 第一次记录初始值的时候你已经buy了一次,为什么然后a=1的时候你又buy了一次?(再然后才是循环。。。)拜托你看仔细点啊 |
||
-- 作者:jinzhe -- 发布时间:2012/9/27 9:34:39 -- 初始buy,记录值,只执行一次,后面的buy进行循环 |