Python的fengwo模块筹码峰函数(COST,WINNER)及调用通达信DLL示例

经常炒股的朋友们都知道,在使用通达信行情软件的时候,经常会使用各种各样的通达信公式进行选股,股票监测、预警,甚至使用指标进行排序,这些操作很方便,可以快速锁定我们想要的目标股票。

量化炒股者为了使用这些类似于通达信的指标,发明了麦语言。但是现在网上流传的麦语言库包括一直流行的TAlib库,均未对定义筹码峰COST、WINNER等函数,这两个函数对于计算股票平均成本和获利盘比例非常重要。网上有大量的关于COST、WINER的Python算法实现教程。但实际计算结果不是和通达信、同花顺等软件的计算结果相差甚远,就是计算速度爆慢,用之对全市场选一次股可能已经收市。

为此,fengwo模块实现了这两个函数,甚至实现了对通达信公式dll的调用(通达信dll都是32位动态链接库,即便是64位fengwo模块也可以直接绑定调用)。

fengwo模块式采用C/C++语言编译制作,运行效率极高,比如SLOPE函数,比循环调用numpy的相关函数快很多;破除了Python全局线程锁(GIL)的限制,所有函数均可在多线程环境下发挥并行计算的优势(包含64位python对32位通达信dll的调用)。所有基础函数均支持变量,比如MA,EMA,SMA函数的周期值均可使用序列值计算,全面模仿通达信公式系统的设计,使得通达信公式可以通过较小的改造就可以使用到Python量化程序上来。

fengwo模块的安装:

pip install fengwo
  • fengwo模块支持Python3.4~Python3.12的32位和64位版本(暂仅支持Windows版,Linux版开发中,
### 关于通达信 WINNER 函数Python 实现 在进行股票数据分析或交易自动化过程中,确实存在对特定技术指标的需求,比如通达信中的`WINNER`函数。该函数用于计算获利盘比例,即当前价格下已获利的流通股占总流通股本的比例[^2]。 由于现有的 TAlib 库并未提供 `WINNER` 和 `COST` 的直接支持,因此需要自行实现这些功能。下面是一个基于 Python 的自定义实现方案: #### 自定义 WINNER 函数 ```python def winner(close_prices, cost_price): """ 计算给定收盘价序列中超过指定成本的价格所占比率 参数: close_prices (list): 收盘价列表 cost_price (float): 成本价 返回: float: 获利盘比率 """ above_cost = sum(1 for p in close_prices if p >= cost_price) total_days = len(close_prices) return round((above_cost / total_days), 4) * 100 if total_days != 0 else None ``` 此方法通过遍历历史收盘价来统计高于设定的成本价位的数量,并据此得出获利百分比。需要注意的是,这只是一个简化版本,在实际应用中还需要考虑更多因素如成交量加权等以更贴近真实情况。 另外一种方式是从源码层面入手,尝试理解并模仿通达信内部算法逻辑编写相应的 Python 版本。不过这种方式较为复杂且耗时较长,适合有一定开发经验和技术背景的人士探索。 对于希望提高性能的情况,可以利用 NumPy 或 Pandas 来加速数值运算过程,从而减少执行时间。例如使用Pandas DataFrame结构存储和操作数据会更加方便快捷。 最后值得注意的一点是,尽管可以通过上述手段获得近似的结果,但由于不同平台间可能存在细微差异以及各自独特的优化措施,完全一致或许难以达成。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值