Giter Site home page Giter Site logo

vespa314 / chan.py Goto Github PK

View Code? Open in Web Editor NEW
608.0 33.0 209.0 19.71 MB

开放式的缠论python实现框架,支持形态学/动力学买卖点分析计算,多级别K线联立,区间套策略,可视化绘图,多种数据接入,策略开发,交易系统对接;

License: MIT License

Python 100.00%
python chanlun automl machinelearning plot quant stock stragety

chan.py's People

Contributors

vespa314 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chan.py's Issues

是否需要讨论群?

tg?Discord?slack?不太清楚可以用科学上网的人的比例;

还是用我自建私用的mattermost?暂时不太想用微信或QQ。。

或者就用github的discussions吧?

交易引擎与策略类

大佬,v3开发进度如何了,交易引擎与策略类这两个剥离出来了吗,有打算在v3版本开放交易引擎与策略类这两个模块吗

新特征:画图引擎改成plotly

根据反馈,当前画图是基于matplotlib的静态图,其实查看和调试都不方便;

调用后看起来可行的是再支持一个基于plotly的画图引擎,画可交互的图。

trigger load后bs_point_lst 未更新

问题:chan对象trigger load后bs_point_lst 未自动更新

过程:

代码

image

chan原始数据

7f4c5bc0df24ed19aa8c71e5ad99e33

trigger load后

90394e968234f4bb9552baa831e2b13

trigger load后调用.cal_seg_and_zs()计算

1641c3d89dd0977b8365dd399afb008

描述

trigger load后bi_list有更新,bs_point_lst未自动更新,需要手动调用计算函数

strategy_demo.py 里面的一买好像有点问题

main.py 画图是对的,但是这个demo里面打印出来的信息是错的,比如浪潮信息,demo里面2022/9/22出了个买点,但是实际并不是,main.py画的图应该是在10月11号。
祝大佬元旦快乐。

逐帧动画问题

逐帧动画好像有问题,每帧都是新开一个窗口一闪而过,没有逐帧播放动画

删除

猛一看功能很全啊,仔细一看……

trigger_load耗时问题请教

image
请问我这里是使用有问题还是怎么回事,刚开始执行一次是0.01s。后续这个执行时间一直在增长。频率5m和30m
当前Bar:2020-01-02 09:35:00,耗时: 0.00秒
当前Bar:2020-01-02 09:40:00,耗时: 0.00秒
...
当前Bar:2020-03-31 14:25:00,耗时: 0.77秒

语法错误

`Traceback (most recent call last):

File "D:\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 2963, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)

File "", line 1, in
from Chan import CChan

File "D:\chan.py\Chan.py", line 12, in
from KLine.KLine_List import CKLine_List

File "D:\chan.py\KLine\KLine_List.py", line 5, in
from BuySellPoint.BSPointList import CBSPointList

File "D:\chan.py\BuySellPoint\BSPointList.py", line 8, in
from Seg.SegListComm import CSegListComm

File "D:\chan.py\Seg\SegListComm.py", line 92
if peak_bi := FindPeakBi(bi_lst[last_seg_end_bi.idx+3:], is_high=True):
^
SyntaxError: invalid syntax`
^_^语法错误是我没想到的,哈哈哈哈

futu数据源获取报错

git下来跑README.md的demo示例代码
chan = CChan(
code="HK.00700",
begin_time="2012-01-01",
end_time=None,
data_src=DATA_SRC.FUTU, # 数据来源,
lv_list=[KL_TYPE.K_DAY], # 多级别可以从大到小传入
config=config,
autype=AUTYPE.QFQ,
extra_kl=None,
)
里的DATA_SRC.FUTU在Chan.py里没有定义
def GetStockAPI(src):
_dict = {}
if src == DATA_SRC.BAO_STOCK:
from DataAPI.BaoStockAPI import CBaoStock
_dict[DATA_SRC.BAO_STOCK] = CBaoStock
if src == DATA_SRC.CCXT:
from DataAPI.ccxt import CCXT
_dict[DATA_SRC.CCXT] = CCXT
只有如上两个

你好.trigger_load 喂给cchan的新增k线数据如果有多区间应该怎么写

我看回测案例中 stragety_demo2.py 的模板只有一个区间.如果是多区间
lv_list = [KL_TYPE.K_60M, KL_TYPE.K_15M, KL_TYPE.K_3M]
data_src = stockapi_cls(code, k_type = lv_list, begin_date=begin_time, end_date=end_time, autype=AUTYPE.QFQ)

如果这样写 在进行循环是会报错的 data_src.get_kl_data()
能帮写个例子吗

想联系你

老板,看了你发布的东西,很感兴趣,怎么联系你呢

跨区间获取笔和线段的逻辑如何改写

我学习的缠论需要同时获取上一级别和下一级别的笔和线段线.应该如何改写更加合理
1.本级别和次级别同笔的处理方式 本级别 当笔,次级别 当段
2.本级别不够笔,次级别够线段 本级别 当笔

`Seg\EigenFX.py`中`can_be_end`函数存在一个逻辑错误

can_be_end函数的作用是判断特征序列分型是否结束,并考虑线段的两种情况:特征序列中第一和第二元素间存在特征序列的缺口。其中如果存在缺口时调用find_revert_fx函数寻找反向分型。
break_thred参数的含义是为了判断判断特征序列缺口是否笔合,那么当线段是向上时,break_thred应该是self.ele[0].high,反向特征序列的第二个元素的低点低于此值即表明闭合,这个逻辑可以从find_revert_fx函数逻辑得到佐证。
因此break_thred = self.ele[0].low if self.is_up() else self.ele[0].high应改为
break_thred = self.ele[0].high if self.is_up() else self.ele[0].low

def can_be_end(self, bi_lst: CBiList):
    """判断特征序列分型是否结束,并考虑线段的两种情况:特征序列中第一和第二元素间存在特征序列的缺口"""
    assert self.ele[1] is not None
    if self.ele[1].gap: # 第二特征序列相对第一个特征序列有缺口,线段的第二种情况
        assert self.ele[0] is not None
        end_bi_idx = self.GetPeakBiIdx()
        thred_value = bi_lst[end_bi_idx].get_end_val() #线段的端点
        break_thred = self.ele[0].low if self.is_up() else self.ele[0].high #TODO:此处写错了,break_thred值是为了判断特征序列缺口是否笔合,那么当线段是向上时,break_thred应该是self.ele[0].high
        return self.find_revert_fx(bi_lst, end_bi_idx+2, thred_value, break_thred)
    else:
        return True

x_tick_num 没生效

1.x_tick_num 没生效
建议:
only_top_lv 改为需要展示的层级,比如我日线,60分钟,30分钟,我只想看30分钟.但是其实60分钟的特殊笔需要根据上一级别或者下一级别来判断.这样我list里面就有数据了.

web端页面

为了方便体验和调试,不知道有没有前端大佬想一起来开发个页面工具?

后端功能基本是具备的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.