金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 文书平

仓位

[复制链接]

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2023-1-29 16:49 | 显示全部楼层
技术006 发表于 2023-1-29 16:31
这种等价于通过holding函数判断的。当holding=0时才开仓。
例如:
buy(开多条件 and holding=0,.....); ...

HOLDING是在仓位上面做限制,我想过滤同一种交易信号。 有持仓的时候过滤跟持仓一样的信号,用其他条件可以开仓。FILTER(DP1,20); 类似这个可以过滤20日内的重复信号
回复

使用道具 举报

37

主题

9978

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-1-29 16:58 | 显示全部楼层
本帖最后由 技术006 于 2023-1-29 16:59 编辑

没错,但是每次的问题都很泛泛,对解决问题没有实际意义。

你知道HOLDING 是什么意思吗?  -10<=HOLDING and HOLDING<=10
这句话只会让HOLDING 在正负10手之间。你现在没有限制住,是因为你代码逻辑有问题,不是这个限制条件的问题。
你代码逻辑中必然存在仓位限制遗漏的地方。

让你梳理自己的代码逻辑,剔除冗余和没有意义的代码。保证逻辑的清晰度,在你生搬硬套的代码结构上查问题,治标不治本。
如果你不打算整理,那你只能自己在代码中逐个语句增加输出,寻找逻辑漏洞。




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

使用道具 举报

37

主题

9978

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-1-29 17:10 | 显示全部楼层
文书平 发表于 2023-1-29 16:49
HOLDING是在仓位上面做限制,我想过滤同一种交易信号。 有持仓的时候过滤跟持仓一样的信号,用其他条件可 ...

如果你打算在一定周期范围内过滤那么使用FILTER函数,否者没有意义。你只能通过全局变量进行标记处理。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9978

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-1-29 17:21 | 显示全部楼层
本帖最后由 技术006 于 2023-1-29 17:22 编辑

截图202301291713573059.png
这种代码结构中,还有边界值你没有处理。例如:上图中的开空部分。当持仓确实等于-10时(其他条件同样成立时),依旧会进入下单语句体中。
【】K4空开1】的下单语句中,也会再执行一次开仓。
如果手数ordvol是动态计算或者是一个固定数量大于1的值,那么即使持仓没有达到-10,也可能会造成最后一次进入后超出期望的手数范围。(尤其是存在不同手数的加减仓情况下)
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2023-1-29 17:32 | 显示全部楼层
技术006 发表于 2023-1-29 17:10
如果你打算在一定周期范围内过滤那么使用FILTER函数,否者没有意义。你只能通过全局变量进行标记处理。

AUTOFILTER;  这个函数我是在金字塔论坛里面看到的,但是却用不了所以问下,在其他软件里面他的解释是可以直接过滤已经持仓的交易信号。另外我现在是图表交易,只能单向持仓,我仓位没有限制住好像不是  -10<= HOLDING<=10 的问题,我多条件开仓 用这个仓位限制在10手里面的,检查发现是有两个加仓语句里面没有做持仓限制,新的模型没用这句。
另外问下buy(开多条件 and holding<10,.....); 目前发现的是:当我持仓有8手了,符合新的开仓条件,新的开仓条件里面开仓是5手,这时候他开仓完成就是13手。达到13手以后不会再开仓。
还是说我有用holding<10 做限制,可以做到:当我持仓达到8手,新开仓条件大于2手他就不会开仓,或者说新开仓条件大于两手以后 他开仓但不会超过10手?
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2023-1-29 17:35 | 显示全部楼层
技术006 发表于 2023-1-29 17:10
如果你打算在一定周期范围内过滤那么使用FILTER函数,否者没有意义。你只能通过全局变量进行标记处理。

我是个新手,遇到的问题确实多,望理解
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2023-1-29 17:40 | 显示全部楼层
技术006 发表于 2023-1-29 17:21
这种代码结构中,还有边界值你没有处理。例如:上图中的开空部分。当持仓确实等于-10时(其他条件同样成 ...

就是超出了 ,但是超出了就不会再开仓
回复

使用道具 举报

37

主题

9978

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-1-29 17:40 | 显示全部楼层
本帖最后由 技术006 于 2023-1-29 18:30 编辑

1. AUTOFILTER就是一开一平原则。只能通过holding进行等价实现。
2. 不管你是图表还是后台逻辑处理基本都是相同的。
3.【另外问下buy(开多条件 and holding<10,.....); 目前发现的是:当我持仓有8手了,符合新的开仓条件,新的开仓条件里面开仓是5手,这时候他开仓完成就是13手。达到13手以后不会再开仓。还是说我有用holding<10 做限制,可以做到:当我持仓达到8手,新开仓条件大于2手他就不会开仓,或者说新开仓条件大于两手以后 他开仓但不会超过10手?】

逻辑中没有体现边界控制(一次加仓直接从小于10手的状态变成大于10手的状态).   这种情况需要你自己在开仓之前进行逻辑条件控制。

伪代码段:

if  开仓条件  then begin
    //进行开仓前判断,holding+将要开仓的手数是否大于10,然后再决定是否开仓,还是只开到10。   手数:=if(holding+ordvol<10,ordvol,10-holding);
    buy(1,手数......);
end

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

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2023-1-29 17:50 | 显示全部楼层
后者两个止损都符合预期,前者不知道为什么会止损
这是我上次发现的
回复

使用道具 举报

107

主题

813

帖子

813

积分

等级: 免费版

注册:
2022-12-12
曾用名:
 楼主| 发表于 2023-1-29 17:54 | 显示全部楼层
技术006 发表于 2023-1-29 17:40
1. AUTOFILTER就是一开一平原则。只能通过holding进行等价实现。
2. 不管你是图表还是后台逻辑处理基本都 ...

这个应该很有用,感谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-11 10:47 , Processed in 0.103280 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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