Ejemplo n.º 1
0
def recog_history_boll(pl, x, p, code):
    """在历史数据中找到相似的曲线
    x : np.ndarray 基准曲线
    p : float pearson相似度
    """
    df = stock.getFiveHisdatDf(code, method='local')
    upper, middle, lower = stock.TDX_BOLL(df['c'].values)
    df['upper'] = upper
    df = df[-1000:]
    #upper = upper[np.isnan(upper) == False]
    upper = df['upper'].values
    n = 30
    report_list = []
    x = stock.GuiYiHua(x - np.min(x))
    for i in range(0, len(upper) - 30, 2):
        y = upper[i:i + n]
        assert (len(y) == 30)
        y = stock.GuiYiHua(y - np.min(y))
        pearson_v = pearson(x, y)
        if pearson_v > p:
            df2 = pd.DataFrame(x)
            df2['2'] = y
            df2.plot()
            pl.show()
            pl.close()
            fimg = pl.get_CurImgFname()
            report_list.append([code, pearson_v, df.index[i], fimg])
    return report_list
Ejemplo n.º 2
0
def run():
    fpath = env.get_root_path()
    for code in stock.get_codes():
        fname = '/datasources/%s.csv' % (code)
        fname = fpath + fname
        df = stock.getFiveHisdatDf(code)
        df.to_csv(fname)
Ejemplo n.º 3
0
def watch_four():
    """观察当前数据源的four情况"""
    from autoxd.pinyin import stock_pinyin3 as jx
    code = jx.ZXJT
    df = stock.getFiveHisdatDf(code, method='tdx')
    #print(df)
    four = stock.FOUR(df['c'].values)
    print(four)
    from autoxd import ui
    from autoxd.pypublish import publish
    pl = publish.Publish()
    ui.DrawTs(pl, four)
Ejemplo n.º 4
0
def get_boll_up_base():
    """获取一个用来作为标准的曲线
    return : np.ndarray
    """
    code = jx.HCGD华灿光电
    t = '2018-12-3 10:30:00'
    t = '2018-11-30 10:00:00'
    key = myredis.gen_keyname(__file__, get_boll_up_base)
    df = myredis.createRedisVal(
        key, lambda: stock.getFiveHisdatDf(code, method='tdx')).get()
    upper, middle, lower = stock.TDX_BOLL(df['c'].values)
    df['upper'] = upper
    df = df[t:]
    df = df[df.index[20]:]
    df = df[:df.index[29]]
    #ui.DrawTs(pl, df['upper'].values)
    #pl.show()
    return df['upper'].values
Ejemplo n.º 5
0
def example2():
    """测试排版输出, 让单元数据在一行内"""
    from autoxd import stock
    import pandas as pd
    print(example2.__doc__)
    pl = Publish(explicit=True)
    codes = stock.get_codes(flag=stock.myenum.randn, n=6)
    result = []
    for code in codes:
        df_five = stock.getFiveHisdatDf(code, method='tdx')
        df_five.plot()
        pl.show()
        pl.close()
        img_name = pl.get_CurImgFname()
        result.append([code, img_name, img_name])
    df = pd.DataFrame(result)
    pl.reset(df_to_html_table(df, df_img_col_indexs=[-2, -1]))
    pl.publish()
Ejemplo n.º 6
0
 def _test_horizontal(self):
     code = jx.THS
     df = stock.getFiveHisdatDf(code)
     df = df['2017-5-1':]
     df = df['2017-11-1':]
     rects = []
     bHit = False
     for i in range(100, len(df), 5):
         cur_df = df[:i]
         #bFind, (h,l,left,right) = horizontal(cur_df)
         bFind, (h, l, left, right) = Combo(cur_df)
         if bFind:
             bHit = True
             print(cur_df.index[-1], bFind, (h, l, left, right))
             left = i + left
             right = i
             rects.append((h, l, left, right))
     if bHit:
         ui.drawKlineUseDf(pl, df, rects)
Ejemplo n.º 7
0
def load_data(code):
    df = stock.getFiveHisdatDf(code, method='tdx')
    upper, middle, lower = stock.TDX_BOLL(df['c'].values)

    df['upper'] = upper
    df['middle'] = middle
    df['lower'] = lower

    highs = pd.Series(df[colname.high]).values
    lows = pd.Series(df[colname.low]).values
    closes = pd.Series(df[colname.close]).values
    adx, pdi, mdi = stock.TDX_ADX2(highs, lows, closes)

    df[colname.adx] = adx
    df[colname.pdi] = pdi
    df[colname.mdi] = mdi
    rsi = stock.RSI(closes)
    df[colname.rsi] = rsi

    return df
Ejemplo n.º 8
0
    def test_AsynDrawKline(self):
        from autoxd import stock
        code = jx.ZCKJ.b
        start_day = '2017-8-25'
        #df = stock.getHisdatDataFrameFromRedis(code, start_day)
        df = stock.getFiveHisdatDf(code, start_day=start_day, method='tdx')
        import account
        account = account.LocalAcount(account.BackTesting())
        #随机找三个交易点
        indexs = agl.GenRandomArray(len(df), 3)
        trade_bSell = [0,1,0]
        df_trades = df[df.index.map(lambda x: x in df.index[indexs])]
        df_trades = df_trades.copy()
        df_trades[AsynDrawKline.enum.trade_bSell] = trade_bSell

        plt.ion()
        for i in range(10):
            AsynDrawKline.drawKline(df[i*10:], df_trades)

        plt.ioff()
Ejemplo n.º 9
0
 def _test_drawKline2(self):
     code = jx.CYJM
     start_day = '2017-8-25'
     df = stock.getFiveHisdatDf(code, start_day=start_day)
     drawKlineUseDf(pl, df)
Ejemplo n.º 10
0
 def _test_DrawZZ(self):
     code = '300033'
     df_five_hisdat = stock.getFiveHisdatDf(code)
     closes = df_five_hisdat['c'][-500:]
     zz = stock.ZigZag(closes,percent=1)
     DrawDvsAndZZ(pl, closes, zz)
Ejemplo n.º 11
0
 def loadData(self, code):
     """ return: df  five hisdat"""
     data_path = self._getPath()
     return stock.getFiveHisdatDf(code, method='path', path=data_path)