示例#1
0
def kdj_select():
    ResultSymbols = list()
    ResultDf = pd.DataFrame()
    iNum = 0
    for iSymbol in da.symbol_list():
        print(iSymbol[:-4], ':', iNum)
        iNum += 1
        df = da.data_read(iSymbol)
        startDate = '20180501'
        df1 = df[df['trade_date'] > startDate]
        df2 = df1[df1['kdX'] == 1]  #满足金叉的数据
        df2_success = df2[(df2['ROC+1'] > 0) | (df2['ROC+2'] > 0) |
                          (df2['ROC+3'] > 0)]  #把预测出金叉中后三天内上涨的画出来
        if len(df2) != 0:
            success_rate = len(df2_success) / len(df2)
        else:
            continue
        if success_rate > 0.6:
            ResultSymbols.append(iSymbol)
            if df.iloc[-1, :]['kdX'] == 1:
                ResultDf = ResultDf.append(df.iloc[-1, :])
                print(iSymbol, ':',
                      '--------------------OK----------------------')

    #ResultDf.to_pickle('result_data/Select_macd.pkl')
    return ResultDf
示例#2
0
from abc import ABCMeta, abstractmethod
import datetime
try:
    import Queue as queue
except ImportError:
    import queue

import numpy as np
import pandas as pd
from data import TSPro_DataHandler
from data import DataProcess
import dataAnalysis as da
all_return_info = pd.DataFrame(
    columns=['ts_code', 'hold_day_num', 'return_final'])
all_return_info['ts_code'] = da.symbol_list()
all_return_info.set_index('ts_code', inplace=True)


class Strategy(object):
    """
    Strategy is an abstract base class providing an interface for
    all subsequent (inherited) strategy handling objects.

    The goal of a (derived) Strategy object is to generate Signal
    objects for particular symbols based on the inputs of Bars 
    (OHLCV) generated by a DataHandler object.

    This is designed to work both with historic and live data as
    the Strategy object is agnostic to where the data came from,
    since it obtains the bar tuples from a queue object.
示例#3
0
# -*- coding: utf-8 -*-
"""
Created on Sat Apr 20 20:47:27 2019
@author: MI
macd_select_backtest
策略:macd 预测
"""
import pandas as pd
import numpy as np
import dataAnalysis as da
import kplot as kp
import matplotlib.pyplot as plt
symbols = da.symbol_list()
df_symbols_income = pd.DataFrame()

#for iSymbol in symbols[50:100]:
Symbollist = pd.read_pickle('Symbollist.pkl')

for iSymbol in Symbollist[:]:

    df = da.data_read(iSymbol)
    df.loc[:, 'Long'] = 0
    #for i in df.loc['trade_date']:
    Long_columns_index = df.columns.get_loc('Long')
    for i in range(30, len(df)):
        df_hist = df.iloc[:i, :]
        df2 = df_hist[df_hist['MACDXPre'] >= 1]
        df2_success = df2[(df2['ROC+1'] > 1) | (df2['ROC+2'] > 1) |
                          (df2['ROC+3'] > 2)]  #把预测出金叉中后三天内上涨的画出来
        if len(df2) != 0:
            success_rate = len(df2_success) / len(df2)