以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=162536) |
-- 作者:beely -- 发布时间:2018/4/4 12:17:46 -- 请教 ,帮看看 dc1:=5*mindiff; dc2:=10*mindiff; variable:a=0; variable:b=0; kd:=open+dc1 and holding=0; kk:=open-dc1 and holding=0; 开空:buyshort(kk,1,market); 开多:buy(kd,1,market); repeat begin if a<c then a=c; if a>c+dc2 and holding>0 then begin sell(holding>0,holding,market); buyshort(holding=0,1,market); end if b>c then b=c; if b<c+dc2 and holding<0 then begin sellshort(holding<0,holding,market); buy(holding=0,1,market); end if time>=185900 then begin sell(holding>0,holding,market); sellshort(holding<0,holding,market); end end until time>185930 用了循环 一加载到图标上就卡住了 ,是陷入死循环了吗
|
-- 作者:wenarm -- 发布时间:2018/4/4 12:28:34 -- 你使用循环是为了实现什么操作思路。 你代码中的处理方式压根就不适合PEL策略处理的机制。本身策略就是按时间方向,不多循环运行的 [此贴子已经被作者于2018/4/4 12:30:42编辑过]
|
-- 作者:beely -- 发布时间:2018/4/4 12:49:32 -- 以下是引用wenarm在2018/4/4 12:28:34的发言:
我是想实现在一个判断周期内变量不被重置
你使用循环是为了实现什么操作思路。 你代码中的处理方式压根就不适合PEL策略处理的机制。本身策略就是按时间方向,不多循环运行的 [此贴子已经被作者于2018/4/4 12:30:42编辑过]
|
-- 作者:wenarm -- 发布时间:2018/4/4 13:15:20 -- k线计算过程中,每根k上的值,如果k起始位置未发生变化的情况下,其变量的在每根k值,一般不会发生变化。
而且是上面的处理方式也控制不了。首先CLOSE,本身就是序列变量,它在时间方向上。(历史部分)其值就不会变。
或者你说明下,你遇到的具体是什么问题,才考虑用上面的方式进行处理的?
|
-- 作者:beely -- 发布时间:2018/4/4 13:35:24 -- 以下是引用wenarm在2018/4/4 13:15:20的发言:
谢谢你,我的策略是在开盘后确定开仓方向,然后以实时价回调或者反弹10个点做反手交易的日内交易,我也不知道我现在这种编程思路对不对,还希望指教下,
k线计算过程中,每根k上的值,如果k起始位置未发生变化的情况下,其变量的在每根k值,一般不会发生变化。
而且是上面的处理方式也控制不了。首先CLOSE,本身就是序列变量,它在时间方向上。(历史部分)其值就不会变。
或者你说明下,你遇到的具体是什么问题,才考虑用上面的方式进行处理的?
|
-- 作者:wenarm -- 发布时间:2018/4/4 14:08:30 -- 以下是引用beely在2018/4/4 13:35:24的发言:
谢谢你,我的策略是在开盘后确定开仓方向,然后以实时价回调或者反弹10个点做反手交易的日内交易,我也不知道我现在这种编程思路对不对,还希望指教下, 你这个需求,直接就能,根据holding的状态判断当前图表的仓位方向。 不过你需要先了解pel的语法特点以及其图表后台的机制问题。 holding>0代表多头持仓, holding<0代表多空持仓, holding=0代表持仓为0,
例如:价格上涨10个点位,后进行平多开空.(已经存在持仓情况) if holding>0 and ENTERPRICE<close+10*mindiff then begin end
|
-- 作者:beely -- 发布时间:2018/4/4 14:20:53 -- 以下是引用wenarm在2018/4/4 14:08:30的发言:
谢谢你,我的思路不是上涨10个点反手交易,是开仓后开始计算历史最高价回调十个点就反手交易多转空(历史最低价反弹10个点反手空转多),请问这怎么实现?
你这个需求,直接就能,根据holding的状态判断当前图表的仓位方向。 不过你需要先了解pel的语法特点以及其图表后台的机制问题。 holding>0代表多头持仓, holding<0代表多空持仓, holding=0代表持仓为0,
例如:价格上涨10个点位,后进行平多开空.(已经存在持仓情况) if holding>0 and ENTERPRICE<close+10*mindiff then begin end
|
-- 作者:wenarm -- 发布时间:2018/4/4 14:29:51 -- 一样的。开仓以来以来的最高价 HH:hhv(high,ENTERBARS); 直接拿这个和当前行情比较就行了。 |
-- 作者:wenarm -- 发布时间:2018/4/4 14:35:33 -- buy(BARPOS=1,1,MARKETr);
if holding>0 and hhv(high,ENTERBARS)<close+10*mindiff and ENTERBARS>0 then begin end
hhv(high,ENTERBARS)可以得到开仓以来的最高价,当然你也可以通过全局变量进行标记。
[此贴子已经被作者于2018/4/4 14:36:41编辑过]
|
-- 作者:beely -- 发布时间:2018/4/4 16:21:59 -- 以下是引用wenarm在2018/4/4 14:35:33的发言:
灰常感谢,我之前就是想用全局变量,但是没处理好。
buy(BARPOS=1,1,MARKETr);
if holding>0 and hhv(high,ENTERBARS)<close+10*mindiff and ENTERBARS>0 then begin end
hhv(high,ENTERBARS)可以得到开仓以来的最高价,当然你也可以通过全局变量进行标记。
[此贴子已经被作者于2018/4/4 14:36:41编辑过]
[此贴子已经被作者于2018/4/4 16:23:23编辑过]
|