123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- from jqdatasdk import *
- from datetime import datetime as dt
- import pandas as pd
- from jqdatasdk.technical_analysis import *
- from sqlalchemy import create_engine
- import threading
- auth('18616891214', 'Ea?*7f68nD.dafcW34d!')
- # futures = ['IF9999.CCFX', 'IC9999.CCFX','IH9999.CCFX', 'IM9999.CCFX', 'FU9999.XSGE', 'RB9999.XSGE', 'MA9999.XZCE', 'TA9999.XZCE', 'SA9999.XZCE', 'M9999.XDCE', 'LH9999.XDCE']
- # futures = ['IF9999.CCFX', 'IC9999.CCFX','IH9999.CCFX', 'IM9999.CCFX']
- futures = ['FU9999.XSGE', 'RB9999.XSGE', 'MA9999.XZCE', 'TA9999.XZCE', 'SA9999.XZCE', 'M9999.XDCE', 'LH9999.XDCE']
- # futures = ['FU9999.XSGE']
- engine = create_engine('mysql+pymysql://root:r6kEwqWU9!v3@localhost:3307/futures?charset=utf8')
- # 获取各stock的去包含dataframe
- fut = locals()
- print(dt.now(), '开始赋值!')
- for fre in ['30m']:
- for future in futures:
- try:
- fut[future] = pd.read_sql_query('select date,open,close,high,low,volume,money from `%s_%s`' % (future, fre),
- engine)
- except BaseException:
- continue
- print(dt.now(), '数据库数据已赋值!')
- # print(fut['IF9999.CCFX'])
- start = dt.now()
- print(start)
- for f in futures:
- fut[f] = pd.concat([fut[f], pd.DataFrame(columns=['MA5', 'derta'])],axis=1)
- print(fut[f])
- for i in range(len(fut[f])):
- MA1 = MA(f, check_date=fut[f].loc[i, 'date'], timeperiod=5)
- MA1 = MA1[f]
- fut[f].loc[i, 'MA5'] = MA1
- # print(fut[f].loc[i, ['close','high','low']])
- if fut[f].loc[i, 'close'] > MA1:
- derta = fut[f].loc[i, 'high']/MA1 - 1
- else:
- derta = (fut[f].loc[i, 'low']/MA1 -1)
- fut[f].loc[i, 'derta'] = derta
- print('___________________________________')
- print(fut[f])
- fut[f].to_excel('/Users/daniel/Downloads/MA_derta/30m_%s.xlsx'% f)
- end= dt.now()
- print('总时长:', (end - start).seconds)
- # MA1 = MA('MA9999.XZCE', check_date='2022-09-25', timeperiod=5)
- # print(MA1['MA9999.XZCE'])
|