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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教 ,帮看看

   

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


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

主题:请教 ,帮看看

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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
请教 ,帮看看  发帖心情 Post By:2018/4/4 12:17:46    Post IP:171.212.223.114[显示全部帖子]

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


用了循环     一加载到图标上就卡住了  ,是陷入死循环了吗

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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/4 12:49:32    Post IP:101.206.167.102[显示全部帖子]

以下是引用wenarm在2018/4/4 12:28:34的发言:

你使用循环是为了实现什么操作思路。

你代码中的处理方式压根就不适合PEL策略处理的机制。本身策略就是按时间方向,不多循环运行的

[此贴子已经被作者于2018/4/4 12:30:42编辑过]

我是想实现在一个判断周期内变量不被重置

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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/4 13:35:24    Post IP:101.206.167.102[显示全部帖子]

以下是引用wenarm在2018/4/4 13:15:20的发言:

k线计算过程中,每根k上的值,如果k起始位置未发生变化的情况下,其变量的在每根k值,一般不会发生变化。

 

而且是上面的处理方式也控制不了。首先CLOSE,本身就是序列变量,它在时间方向上。(历史部分)其值就不会变。

 

或者你说明下,你遇到的具体是什么问题,才考虑用上面的方式进行处理的?

 

谢谢你,我的策略是在开盘后确定开仓方向,然后以实时价回调或者反弹10个点做反手交易的日内交易,我也不知道我现在这种编程思路对不对,还希望指教下,

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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/4 14:20:53    Post IP:101.206.167.102[显示全部帖子]

以下是引用wenarm在2018/4/4 14:08:30的发言:

你这个需求,直接就能,根据holding的状态判断当前图表的仓位方向。

不过你需要先了解pel的语法特点以及其图表后台的机制问题。

 

holding>0代表多头持仓,

holding<0代表多空持仓,

holding=0代表持仓为0,

 

例如:价格上涨10个点位,后进行平多开空.(已经存在持仓情况)

if   holding>0 and ENTERPRICE<close+10*mindiff then begin
 sell();
 BUYSHORT();

end

 

谢谢你,我的思路不是上涨10个点反手交易,是开仓后开始计算历史最高价回调十个点就反手交易多转空(历史最低价反弹10个点反手空转多),请问这怎么实现?

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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/4 16:21:59    Post IP:101.206.167.102[显示全部帖子]

以下是引用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
 sell();
 BUYSHORT();

end

 

hhv(high,ENTERBARS)可以得到开仓以来的最高价,当然你也可以通过全局变量进行标记。

 

[此贴子已经被作者于2018/4/4 14:36:41编辑过]

灰常感谢,我之前就是想用全局变量,但是没处理好。
[此贴子已经被作者于2018/4/4 16:23:23编辑过]

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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/16 18:08:50    Post IP:117.172.254.48[显示全部帖子]

以下是引用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
 sell();
 BUYSHORT();

end

 

hhv(high,ENTERBARS)可以得到开仓以来的最高价,当然你也可以通过全局变量进行标记。

 


kd:=open+5*mindiff;
kk:=open-5*mindiff;

zg:=hhv(high,enterbars);
zd:=llv(low,enterbars);

if 10100<time<185900 then
begin
多:buy(c>=kd and holding=0,1,market);
空:buyshort(c<=kk and holding=0,1,market);

if holding>0 and c<zg-10*mindiff then
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);
end

if holding<0 and c>zd+10*mindiff then
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);
end

if time>185800 then
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end

end

日线高频固定刷新,  反手交易不行,什么问题呢   谢谢

[此贴子已经被作者于2018/4/4 14:36:41编辑过]


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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/16 18:18:29    Post IP:180.169.30.6[显示全部帖子]


kd:=open+5*mindiff;
kk:=open-5*mindiff;

zg:=hhv(high,enterbars);
zd:=llv(low,enterbars);

if 10100<time<185900 then
begin
多:buy(c>=kd and holding=0,1,market);
空:buyshort(c<=kk and holding=0,1,market);

if holding>0 and c<zg-10*mindiff then
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);
end

if holding<0 and c>zd+10*mindiff then
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);
end

if time>185800 then
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end

end

 

我这段代码在日线上不能实现反手交易   什么问题呢  


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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/17 10:09:31    Post IP:117.172.254.48[显示全部帖子]

以下是引用wenarm在2018/4/16 22:08:35的发言:
1.你代码写法不对,if 10100<time<185900 。这种表达式编译器无法识别,应该是10100<time and time<185900
2.按你上面代码的逻辑,放在日线收是有信号的。不知道你说的问题在哪,截图看下你加载后的效果。(你是每根k线上都会出现开多平多开空平空4条指令)。
 
注:如果是日线下,不能使用time这种日内周期函数。
[此贴子已经被作者于2018/4/17 8:02:39编辑过]

有信号,但是图标交易上不能实现自动反手操作,手工同步才能下单

[此贴子已经被作者于2018/4/17 10:10:51编辑过]

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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/17 22:46:28    Post IP:223.87.245.254[显示全部帖子]

以下是引用wenarm在2018/4/16 22:08:35的发言:
1.你代码写法不对,if 10100<time<185900 。这种表达式编译器无法识别,应该是10100<time and time<185900
2.按你上面代码的逻辑,放在日线收是有信号的。不知道你说的问题在哪,截图看下你加载后的效果。(你是每根k线上都会出现开多平多开空平空4条指令)。
 
注:如果是日线下,不能使用time这种日内周期函数。
[此贴子已经被作者于2018/4/17 8:02:39编辑过]


zg:=hhv(high,enterbars);

if 10100<time and time<185900 then
begin
多:buy(c>=kd and holding=0,1,market);
空:buyshort(c<=kk and holding=0,1,market);

if holding>0 and c<zg-10*mindiff then
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);
end

end

这段代码我在实盘中观察了     红色代码盘中不能实现反手交易     在回调100个点后不能实现平多开空操作。


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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2018/3/22 23:16:23
  发帖心情 Post By:2018/4/18 11:43:34    Post IP:223.87.245.254[显示全部帖子]

以下是引用wenarm在2018/4/18 8:05:51的发言:
zg:=hhv(high,enterbars);

if 10100<time and time<185900 then
begin
多:buy(c>=kd and holding=0,1,market);
空:buyshort(c<=kk and holding=0,1,market);

if holding>0 and c<zg-10*mindiff then
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);
end

end

 

这段点中如果你的条件还是

kd:=open+5*mindiff;
kk:=open-5*mindiff;

 

只要第一个信号是开空的情况下,那么后面自然不会再有任何开仓条件符合。因为平仓反手的代码是平多开空的逻辑。

图片点击可在新窗口打开查看

zg和zd点不对  ,不应该是开仓后再统计的最高和最低点吗,   我是想用最新价和开仓后的最高和最低点比较,这个怎么做呢


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