金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 5216|回复: 41

下面这程序为什么每次止损后,都会在原来的止损处开多单,搞不清楚什么原因,帮忙....

[复制链接]

28

主题

157

帖子

157

积分

等级: 免费版

注册:
2023-12-13
曾用名:
发表于 2024-1-9 09:34 | 显示全部楼层 |阅读模式
ZSCOND1:=THOLDING>0 AND TAVGENTERPRICE-C>HZ;
ZSCOND2:=THOLDING<0 AND C-TAVGENTERPRICE>HZ;


IF GDCOND1 THEN BEGIN
        TSELL(THOLDING>0,0,MKT);
        TBUYSHORT(THOLDING=0,SS,MKT);
END

IF GDCOND2 THEN BEGIN
        TSELLSHORT(THOLDING<0,0,MKT);
        TBUY(THOLDING=0,SS,MKT);
END

IF DDCOND3 THEN BEGIN
        TSELL(THOLDING>0,0,MKT);
        TBUYSHORT(THOLDING=0,SS,MKT);
END

IF DDCOND4 THEN BEGIN
        TSELLSHORT(THOLDING<0,0,MKT);
        TBUY(THOLDING=0,SS,MKT);
END

IF ZSCOND1 THEN TSELL(1,0,MKT);
IF ZSCOND2 THEN TSELLSHORT(1,0,MKT);

回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-9 10:11 | 显示全部楼层
最后面2行是多空止损的语句?

你这个就是单纯条件满足了呀。你要贴下你开多的条件的定义的。看下条件上是否有所冲突。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

157

帖子

157

积分

等级: 免费版

注册:
2023-12-13
曾用名:
 楼主| 发表于 2024-1-9 11:33 | 显示全部楼层
技术009 发表于 2024-1-9 10:11
最后面2行是多空止损的语句?

你这个就是单纯条件满足了呀。你要贴下你开多的条件的定义的。看下条件上 ...

GDCOND1:=CROSS(GZ-HZ,L);
GDCOND2:=CROSS(H,GZ-HZ);
DDCOND3:=CROSS(DZ+HZ,L);
DDCOND4:=CROSS(H,DZ+HZ);

ZSCOND1:=THOLDING>0 AND TAVGENTERPRICE-C>HZ;
ZSCOND2:=THOLDING<0 AND C-TAVGENTERPRICE>HZ;
回复

使用道具 举报

28

主题

157

帖子

157

积分

等级: 免费版

注册:
2023-12-13
曾用名:
 楼主| 发表于 2024-1-9 12:17 | 显示全部楼层
止损命令这样写好像无效,不知道什么原因
IF TBUYHOLDINGEX('529001041','RM403',1)>0 AND C<TAVGENTERPRICE  THEN TSELL(1,0,STP,TAVGENTERPRICE-HZ);
IF TSELLHOLDINGEX('529001041','RM403',1)>0 AND C>TAVGENTERPRICE THEN TSELLSHORT(1,0,STP,TAVGENTERPRICE+HZ);

补充内容 (2024-1-9 12:17):
是不是STP这样用不起作用
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-9 13:10 | 显示全部楼层
首先你止损和开仓 逻辑上没有冲突,就是可以先后触发下单的。这个是完全没问题。

但是如果你一直平仓后又开仓,我建议你去日志里看下触发信号的语句到底是哪一行代码。先确认下这个。  然后再看对应的开仓条件怎么定义的。你这里几个条件都是cross 理论上不会反复触发的。目前你提供的代码是完全看不出问题的,就是常规的代码结构。

stp这个指令没用。国内期货就限价,市价 以及后来新增的fak,fok指令等。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

157

帖子

157

积分

等级: 免费版

注册:
2023-12-13
曾用名:
 楼主| 发表于 2024-1-9 17:58 | 显示全部楼层
技术009 发表于 2024-1-9 13:10
首先你止损和开仓 逻辑上没有冲突,就是可以先后触发下单的。这个是完全没问题。

但是如果你一直平仓后 ...

收到,谢谢
我想控制下同一点位只能来回穿叉3次,能不能帮我解决下
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-10 08:55 | 显示全部楼层
“我想控制下同一点位只能来回穿叉3次,能不能帮我解决下”

你原本代码里怎么写的。我要参考你原先山下文 来设计这个解决方案的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

28

主题

157

帖子

157

积分

等级: 免费版

注册:
2023-12-13
曾用名:
 楼主| 发表于 2024-1-10 11:35 | 显示全部楼层
技术009 发表于 2024-1-10 08:55
“我想控制下同一点位只能来回穿叉3次,能不能帮我解决下”

你原本代码里怎么写的。我要参考你原先山下 ...

就是上面的代码呀,我取的是今天和昨天的高低点,好像程序跑的时候开的点位不太对,你能不能给我另外取昨天和今天高低点的方法
NN:=BARSLAST(DATE<>REF(DATE,1))+1;                            //当天K线根数
O_TODAY:=VALUEWHEN(NN=1,OPEN);                                //获取当天开盘价
H_TODAY:=HHV(HIGH,NN);                                                 //获取当天最高价
L_TODAY:=LLV(LOW,NN);                                                    //获取当天最低价
H_YESTERDAY:=REF(H_TODAY,NN);                                     //获取前一天最高价
L_YESTERDAY:=REF(L_TODAY,NN);  
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-10 12:59 | 显示全部楼层
参考:https://www.weistock.com/docs/PE ... A%E5%93%81%E7%A7%8D

直接调用昨天的数据即可。

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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-1-10 13:02 | 显示全部楼层
“我想控制下同一点位只能来回穿叉3次,能不能帮我解决下”
参考这里  限制交易次数的写法。用全局变量控制就行了。上下穿一次 全局变量累计一次。

https://www.weistock.com/bbs/for ... d=55&extra=page%3D2
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-29 06:21 , Processed in 0.129443 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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