金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 219|回复: 9

上单亏损,不开同向单

[复制链接]

67

主题

177

帖子

177

积分

等级: 免费版

注册:
2023-4-11
曾用名:
发表于 2024-10-11 16:00 | 显示全部楼层 |阅读模式
老师:你好
想实现一个代码,没调试成功
需求:上一个多单亏损后,不再开同向多单,至到上一个空单亏损后,解除限制。
          上一个空单亏损后,不再开同向空单,至到上一个多单亏损后,解除限制。

后台程序化,请问代码如何实现,谢谢!
回复

使用道具 举报

31

主题

7766

帖子

7776

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-10-11 16:18 | 显示全部楼层
在开多条件里加入下面程序
tnumprofit(1)>0 and ttype(1)=2) or (tnumprofit(1)<0 and ttype(1)=4)


自己可以针对函数说明看下,就两个函数一个是上次盈亏,一个是上次交易信号
ps:这种认为之前亏损下次同方向也是亏而不开的想法,其实没有意义,从统计上来说每次交易都是独立事件
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

67

主题

177

帖子

177

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-10-14 09:17 | 显示全部楼层
谢谢老师回复,我替换上去了,但是后台不交易,请帮忙看一下
if kdtj=1 and ref(kdtj,1)=0 and bc_oi=0  then
begin
        if tisremainex(0,ac,_oi)=0 and ((tnumprofit(1)>=0 and ttype(1)=2) or (tnumprofit(1)<0 and ttype(1)=4)) then tbuy(1,cw,lmt,dynainfo2(21,_oi)+hd,0,ac,_oi);
end

if kktj=1 and ref(kktj,1)=0 and sc_oi=0  then
begin
        if tisremainex(0,ac,_oi)=0 and ((tnumprofit(1)<0 and ttype(1)=2) or (tnumprofit(1)>=0 and ttype(1)=4)) then tbuyshort(1,cw,lmt,dynainfo2(20,_oi)-hd,0,ac,_oi);       
end
回复

使用道具 举报

31

主题

7766

帖子

7776

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-10-14 09:18 | 显示全部楼层
这应该是因为你上次没有交易盈亏,你得开仓条件要求前面必须有过交易
但是不开仓就没有交易
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

67

主题

177

帖子

177

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-10-14 09:35 | 显示全部楼层
技术008 发表于 2024-10-14 09:18
这应该是因为你上次没有交易盈亏,你得开仓条件要求前面必须有过交易
但是不开仓就没有交易

不会啊,tnumprofit(1)>=0或tnumprofit(1)<=0,这里不是包含了无持仓状态0盈亏吗?那怎么修改,难道这个函数使用前必须手工创造条件,不合理啊。
回复

使用道具 举报

31

主题

7766

帖子

7776

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-10-14 09:38 | 显示全部楼层
你或的还有其他条件
上单亏损加某个条件
上单盈利和另一个条件

tnumprofit(1)这个盈亏需要有一个交易轮回开仓平仓然后才能有数值的

根据盈亏来参与交易,但是没有交易本身就无法有盈亏,你要交易的画又必须有做过交易
死循环了发现没
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

67

主题

177

帖子

177

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-10-14 13:25 | 显示全部楼层
技术008 发表于 2024-10-14 09:38
你或的还有其他条件
上单亏损加某个条件
上单盈利和另一个条件

是的啊,所以说tnumprofit(1)这个函数在设计的时候是否考虑了初始数值,要不就是死循环无触发机制了,如果在这之前手工去做个盈亏出来,那这个逻辑就没有意义了。老师说的其它条件影响,这个应该不存在,加入新函数前是正常开平仓的。
回复

使用道具 举报

31

主题

7766

帖子

7776

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-10-14 13:28 | 显示全部楼层
tnumprofit(1)这个函数初始返回的就是0,你没有触发信号可能和你其他条件有关系

因为你上面通过上次交易条件进行控制,还是那个原因你的条件是要求上次盈亏还有看上次交易时平多平空,但是
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

67

主题

177

帖子

177

积分

等级: 免费版

注册:
2023-4-11
曾用名:
 楼主| 发表于 2024-10-14 13:53 | 显示全部楼层
技术008 发表于 2024-10-14 13:28
tnumprofit(1)这个函数初始返回的就是0,你没有触发信号可能和你其他条件有关系

因为你上面通过上次交易 ...

老师你看这个情况肯定发生在新的交易日,
tnumprofit(1)函数初始返回是0,那我的开仓条件就应该成立

tnumprofit(1)是平仓时才算一次,所以在没有首次平仓出现前,这个函数返回值存在问题吧,
再次验证过,去掉tnumprofit(1)关联限制,开平仓就正常了。
回复

使用道具 举报

31

主题

7766

帖子

7776

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-10-14 13:55 | 显示全部楼层
直接使用输出的就是0
你自己用debugfile输出验证下就知道了

你上面还有上次信号条件做判断的,这些都可能产生问题

原因还是你要求之前开仓平仓后才能交易,这就是死循环

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 19:10 , Processed in 0.266611 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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