以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- [求助]固定金额止盈问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=168492) |
-- 作者:雪松fj303 -- 发布时间:2019/2/28 12:00:33 -- [求助]固定金额止盈问题 老师: 买入后,当天盈利一个固定数额(比如2000元)止盈,为什么我写的显示出来都不正确 开多后 pdj:=(H-ENTERPRICE)*MULTIPLIER*手数; sell(pdj>=2000,0,limitr,enterprice+2000/(MULTIPLIER*手数)); 好像结果都不对。 请教老师正确的写法。
|
-- 作者:FireScript -- 发布时间:2019/2/28 13:17:35 -- 如果你止盈之后不再开仓 可以用资金变化来处理。 当前资金-当天开始的资金 star:ref(asset,TODAYBAR);//当天初始资金 cond:asset-star>=2000 and holding>0; sell(cond,0,limitr,enterprice+2000/(MULTIPLIER*手数)); 如果后面还要继续开仓的话: 可以考虑直接使用这个函数OPENPROFIT
|
-- 作者:雪松fj303 -- 发布时间:2019/2/28 13:36:22 -- asset是专业版函数吗?显示的数字不对啊 用标准版怎么写,后面可以继续开仓的
|
-- 作者:雪松fj303 -- 发布时间:2019/2/28 13:48:57 -- 照理,我用以下写法表示也没错啊 开多浮盈:if(holding>0,(H-ENTERPRICE)*MULTIPLIER*手数,DRAWNULL); 开空浮盈:if(holding<0,(ENTERPRICE-L)*MULTIPLIER*手数,DRAWNULL);
|
-- 作者:FireScript -- 发布时间:2019/2/28 13:49:38 -- 1.asset这个返回值不是实际账号的盈亏,是图表上的模拟资金,和实际账号盈亏不一致的。你是和实际账号栏的盈亏进行对比的吗? 2.函数是不分软件版本的。不同版本限制的是软件部分功能。 3.图表上无法根据实际账号盈亏来执行开平操作的,因为图表上无法获取实际账号的盈亏情况。 按照图表逻辑你这个代码应该是对的,不过你这里用H-ENTERPRICE 可以考虑换成C-ENTERPRICE H表示的是在当个K最高盈利。 |
-- 作者:雪松fj303 -- 发布时间:2019/2/28 13:55:53 -- 进行回测这样写行吗? |
-- 作者:雪松fj303 -- 发布时间:2019/2/28 13:59:52 -- 这样的话有两个问题:就是回测和实际交易(图表程序化)分别应该怎么写? |
-- 作者:雪松fj303 -- 发布时间:2019/2/28 14:13:43 -- 请求老师指点 |
-- 作者:FireScript -- 发布时间:2019/2/28 14:14:36 -- 可以的啊,你怎样写对回测都是不影响的。 H-ENTERPRICE和C-ENTERPRICE 主要区别是前者稳定,后者在实际交易时候能返回实时的情况,是可能不断变动的,从而导致信号变动。 |
-- 作者:雪松fj303 -- 发布时间:2019/2/28 14:38:35 -- 开多浮盈:=if(holding>0,(H-ENTERPRICE)*MULTIPLIER*手数,DRAWNULL); 开空浮盈:=if(holding<0,(ENTERPRICE-L)*MULTIPLIER*手数,DRAWNULL); sell(开多浮盈>n,0,limitr,(ENTERPRICE+N/MULTIPLIER*手数)-滑点); sellshort(开空浮盈>n,0,limitr,(ENTERPRICE-N/MULTIPLIER*手数)+滑点); 这个可以用于回测? 那实盘交易就必须用asset是吗
|