Пример #1
0
 def update_data(self):
     print("-redis_start-")
     dm = DBManager("wm_details")
     code_list = dm.get_code_list()
     for item in code_list:
         try:
             code = item["code"][:6]
             _result = dm.find_by_id(item["code"])
             sorted_result = sorted(_result["price_list"],
                                    key=lambda x: cmp_datatime(x),
                                    reverse=True)
             self.set_data(code, sorted_result)
         except Exception:
             print("redis_error:501 " + str(item["code"]))
     print("-redis_close-")
Пример #2
0
 def update_data(self):
     add_info_logs("redis_start", "-开始同步缓存-")
     dm = DBManager("tk_details")
     code_list = dm.get_code_list()
     for item in code_list:
         try:
             code = item["code"][:6]
             _result = dm.find_by_id(item["code"])
             sorted_result = sorted(_result["price_list"],
                                    key=lambda x: cmp_datatime_02(x),
                                    reverse=True)
             self.set_data(code, sorted_result)
         except Exception:
             add_error_logs("redis_error", "501", item["code"])
             continue
     add_info_logs("redis_close", "-结束同步缓存-")
Пример #3
0
def fun_02():
    date_list = date_range("2017-05-04", "2018-05-21")
    for date in date_list:
        code = "000001.XSHE"
        price_list = list()
        tur_list = list()
        highest_list = list()
        open_list = list()
        # 获取wmacd数据
        db_manager_wm = DBManager("wm_details")
        tk_details = db_manager_wm.find_by_key({"code": code})[0]
        for tk_item in [
                x for x in tk_details["price_list"] if x["close_price"] != 0
        ]:
            if time_cmp(str(date), tk_item["date_list"][-2]):
                price_list.append(tk_item["close_price"])
                tur_list.append(tk_item["total_volume"])
                highest_list.append(tk_item["max_price"])
                open_list.append(tk_item["open_price"])
        print(price_list, date)
Пример #4
0
 def __init__(self):
     self.db_manager_wm = DBManager("wm_details")
     self.db_manager_tk = DBManager("tk_details")
Пример #5
0
                ]))
                current_position.remove(item_position)
        # 统计历史数据
        history_capital.append(capital_base)
        f_utils.insert_line("cash->" + str(capital_base))


def start_bp():
    ste = TsStrategyExpma()
    history_capital.append(capital_base)
    # 初始化时间轴
    date_list = date_range("2017-05-08", "2017-09-30")
    for index in range(len(date_list)):
        cur_date = date_list[index]
        print(cur_date)
        if datetime.datetime.strptime(cur_date, "%Y-%m-%d").weekday() == 0:
            buy_list = ste.get_buy_list(cur_date)
            if buy_list:
                fun_buy(buy_list, cur_date)
        else:
            fun_sell(cur_date)
    net_rate = (history_capital[-1] -
                history_capital[0]) / history_capital[0]  # 计算回测结果
    print(round(net_rate * 100, 2), "%")


if __name__ == "__main__":
    f_utils = FileUtils("bp_expma_result_1.txt", "a+")
    db_manager_tk = DBManager("tk_details")
    start_bp()
Пример #6
0
 def __init__(self):
     self.db_manager_wm = DBManager("fcr_w_details")
 def __init__(self):
     self.dm = DBManager("futures_d_table")
Пример #8
0
def parse_pager(content, ticker):
    timer_list = [
        x["date"] for x in dm.find_one_by_key({"ticker": ticker})["price_list"]
    ]
    while content.next():
        item_row = content.get_row_data()
        __dict = {
            "date": item_row[0],
            "code": item_row[1],
            "open": item_row[2],
            "high": item_row[3],
            "low": item_row[4],
            "close": item_row[5],
            "preclose": item_row[6],
            "volume": item_row[7],
            "amount": item_row[8],
            "adjustflag": item_row[9],
            "turn": item_row[10],
            "tradestatus": item_row[11],
            "pctChg": item_row[12]
        }
        if __dict["date"] not in timer_list:
            dm.add_tk_item(ticker, __dict)
    print(ticker, "success")


if __name__ == '__main__':
    dm = DBManager("fcr_details")
    init_table()
    start_crawl()
Пример #9
0
import os
import sys
sys.path.append('F:\\PYTHON\\TsSpiderServer\\')
from mongo_db.mongodb_manager import DBManager

base_path = os.path.abspath(os.path.join(os.getcwd(), "..")) + "/bean"

if __name__ == '__main__':
    dm = DBManager("wm_details")
    file_path = base_path + "/data_code.txt"
    _file = open(file_path, 'r', encoding='utf_-8')
    tk_list = list()
    while True:
        line = _file.readline()
        if '' == line:
            break
        str_code = line.split()[0]
        str_title = line.split()[1]
        dm.add_one({"code": str_code, "title": str_title, "price_list": []})
Пример #10
0
 def __init__(self):
     self.dm = DBManager("tk_details")
     self.headers = {
         "User-Agent": ":Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
     }
Пример #11
0
 def __init__(self, capital_base=1000000):
     self.capital_base = capital_base  # 起始资金
     self.capital_available = capital_base  # 可用资金
     self.position_list = list()  # 当前持仓
     self.history_order_list = list()  # 订单记录
     self.db_manager_tk = DBManager("fcr_details")
Пример #12
0
def draw_profit_bar(list1, list2):
    plt.subplot(111)
    lable_x = np.arange(len(list1))
    lable_y = [x * 0 for x in range(len(list1))]

    plt.plot(lable_x, lable_y, color="#404040", linewidth=1.0, linestyle="-")
    plt.bar(lable_x, list1, color="r", width=1.0)
    plt.bar(lable_x, list2, color="g", width=1.0)
    plt.xlim(lable_x.min(), lable_x.max() * 1.1)
    plt.ylim(min(list2) * 1.1, max(list1) * 1.1)
    plt.grid(True)
    plt.show()


if __name__ == '__main__':
    db_manager = DBManager("wm_details")
    code_list = db_manager.get_code_list()
    result_list = list()
    for item in code_list:
        code = item["code"]
        print(code)
        tk_data = db_manager.find_by_key({"code": code})[0]
        close_list = [
            float(x["cur_close_price"]) for x in tk_data["price_list"]
            if x["cur_close_price"] != 0
        ]
        len_list = len(close_list)
        if close_list:
            for index in range(expect, len(close_list)):
                rate_1 = (close_list[index - period] -
                          close_list[index]) / close_list[index - period]
Пример #13
0
    plt.subplot(111)
    lable_x = np.arange(len(list1))
    lable_y = [x * 0 for x in range(len(list1))]
    # 绘制中轴线
    plt.plot(lable_x, lable_y, color="#404040", linewidth=1.0, linestyle="-")
    plt.bar(lable_x, list1, color="r", width=1.0)
    plt.bar(lable_x, list2, color="g", width=1.0)
    plt.xlim(lable_x.min(), lable_x.max() * 1.1)
    plt.ylim(min(list2) * 1.1, max(list1) * 1.1)
    plt.grid(True)
    plt.show()


if __name__ == "__main__":
    # 获取数据
    db_manager_wm = DBManager("fcr_details")
    code_list = db_manager_wm.get_code_list()
    result_list = list()
    for item in code_list:
        code = item["code"]
        print(code)
        tk_data = db_manager_wm.find_by_key({"code": code})[0]
        colse_list = [
            float(x["close"]) for x in tk_data["price_list"] if x["close"] != 0
        ]
        len_list = len(colse_list)
        if colse_list:
            # 执行判断逻辑
            for index in range(expect, len(colse_list)):
                rate_1 = (colse_list[index - period] - colse_list[index]
                          ) / colse_list[index - period]  # 下跌幅度
Пример #14
0
                        item_position[0],
                        str(round(profit_rate * 100, 2)) + "%", capital_base
                    ]))
                    current_position.remove(item_position)
        # 统计历史数据
        history_capital.append(capital_base)
        f_utils.insert_line("cash->" + str(get_all_capital()))


def start_bp():
    st3 = TsStrategy3()
    history_capital.append(capital_base)
    # 初始化时间轴
    date_list = date_range("2017-01-01", "2017-12-31")
    for index in range(len(date_list)):
        cur_date = date_list[index]
        fun_sell(cur_date)
        if datetime.datetime.strptime(cur_date, "%Y-%m-%d").weekday() == 0:
            buy_list = st3.get_buy_list(cur_date)
            if buy_list:
                fun_buy(buy_list, cur_date)
    net_rate = (history_capital[-1] -
                history_capital[0]) / history_capital[0]  # 计算回测结果
    print(round(net_rate * 100, 2), "%")


if __name__ == "__main__":
    f_utils = FileUtils("bp_result3_1.txt", "w")
    db_manager_tk = DBManager("fcr_details")
    start_bp()