金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4343|回复: 12

建仓没问题,但他不平仓

[复制链接]

4633

主题

4723

帖子

4748

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2023-5-12 10:20 | 显示全部楼层 |阅读模式
请教 :
这段代码我在设计时是希望只要出开多平空信号就把空单清了,开始建多仓,然后只要有信号就建至到10手为止,采用的是轮询模式,但是现在的问题是建仓没问题,但他不平仓,麻烦帮我看一下问题出在哪里?用的是轮询模式哈。
当然开空平多,也会出现不平多单的问题,是一样的。

IF 开多平空 THEN BEGIN
        平空:SELLSHORT(1,0,THISCLOSE);        止空价:=0;//平空并重置止空价
        IF holding< 10 THEN BEGIN        开多:BUY(1,SS,THISCLOSE);                止多价:=C-2*ATR;开仓价格:=C;END       
END       
IF C<止多价 THEN BEGIN 止多1:SELL(1,0,THISCLOSE);        止多价:=0;END       

IF 开空平多 THEN BEGIN
        平多:SELL(1,0,THISCLOSE);                止多价:=0; //平空并重置止多价
        IF holding>-10 THEN BEGIN         开空:BUYSHORT(1,SS,THISCLOSE);        止空价:=C+2*ATR;开仓价格:=C;END
END
IF C>止空价 THEN BEGIN 止空1:SELLSHORT(1,0,THISCLOSE);        止空价:=0;END


金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-12 11:19 | 显示全部楼层
先纠正一个需要调整地方:
IF C>止空价 and holding<0 THEN BEGIN 止空1:SELLSHORT(1,0,THISCLOSE);        止空价:=0;END

这种后面有重置变量操作的,务必带上仓位判断,这样才能确定 触发下单信号时候才会重置变量值。

多头那里也是这样调整下 然后再看下。如果还是没有信号,输出下这2个控制平仓的变量的数值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

112

帖子

112

积分

等级: 免费版

注册:
2022-3-11
曾用名:
发表于 2023-5-15 09:29 | 显示全部楼层
“输出下这2个控制平仓的变量的数值。”是什么意思啊?不懂。
回复

使用道具 举报

21

主题

112

帖子

112

积分

等级: 免费版

注册:
2022-3-11
曾用名:
发表于 2023-5-15 09:39 | 显示全部楼层
在这个公式中,按设想,只要是出开仓单,前面一定会一个平仓单,但实际上有些时间没有出现平仓单。
所以最后就出现了双向单了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-15 09:39 | 显示全部楼层
哪些变量在控制这个平仓的操作,都输出在图表上看下。看看到底是谁不满足。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

112

帖子

112

积分

等级: 免费版

注册:
2022-3-11
曾用名:
发表于 2023-5-15 09:53 | 显示全部楼层
由于是轮询模式,那个变量没有意义的。
IF 开多平空 THEN BEGIN
        平空:SELLSHORT(1,0,THISCLOSE);        止空价:=0;//平空并重置止空价
        IF holding< 10 THEN BEGIN        开多:BUY(1,SS,THISCLOSE);                止多价:=C-2*ATR;开仓价格:=C;END      
END      
IF C<止多价 THEN BEGIN 止多1:SELL(1,0,THISCLOSE);        止多价:=0;END     
这个公式就是出了“开多平空”,先平所有空单,再建多单,但是现在平仓单没有出来。至于止损那个我现在还没有观察到。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-15 09:56 | 显示全部楼层
你先调整下前面回复你的变量重置的问题。

你上面这里就算没有持仓

止空价:=0;//平空并重置止空价

这个也是可能会被重置的。

它并不是和平仓一个条件的,因为平仓有一个默认条件 就是仓位要符合。

先把这个错误纠结过来。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

112

帖子

112

积分

等级: 免费版

注册:
2022-3-11
曾用名:
发表于 2023-5-15 10:05 | 显示全部楼层
恩,应该就是仓位不对的原因,我把代码改为//下单模块
IF 开多平空 THEN BEGIN
        平空:SELLSHORT(1,0,THISCLOSE);
        IF holding< 4*SS THEN BEGIN        开多:BUY(1,SS,THISCLOSE);END
END       
IF 开空平多 THEN BEGIN
        平多:SELL(1,0,THISCLOSE);
        IF holding>-4*SS THEN BEGIN 开空:BUYSHORT(1,SS,THISCLOSE);END
END
先试着不去止损,但是还是有一个很明显的问题是因为轮询会带来仓位与图表信号不一致,所以肯定还是会出问题。所以我想能不能调用账户的仓位做为我判断仓位,好象那些参数都不让用。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-15 10:24 | 显示全部楼层
1.轮询模式下实际下单 和图表信号不一致这个问题 是没什么好的办法解决的。因为轮询捕捉的就是实时信号,图上显示是K结束时候的信号。所以要么选择走完K下单,要么就是想办法让条件更稳定。

2.引入实际账户的仓位判断 会让整个策略的信号不稳定 更加严重。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

112

帖子

112

积分

等级: 免费版

注册:
2022-3-11
曾用名:
发表于 2023-5-15 10:40 | 显示全部楼层
技术009 发表于 2023-5-15 10:24
1.轮询模式下实际下单 和图表信号不一致这个问题 是没什么好的办法解决的。因为轮询捕捉的就是实时信号,图 ...

其实我对实际账户的仓位和开仓价格判断只是希望实现两个目的:
1、账户仓位不能过大,这与信号闪烁无关;
2、账户开仓后用策略设一个止损点,这也与信号闪烁无关;
即便信号不稳定,也希望能实现上面两个目标,据说要写成后台才能解决?不知道是不是后台就一定能解决这个问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-28 00:38 , Processed in 0.117810 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表