Автоматизация биржевой торговли

Виды биржевой торговли. Методология автоматизации биржевых операций: структура, функции и алгоритм работы. Методы анализа движения биржевых цен. Блок работы с базой данных. Тестирование результатов анализа. Алгоритм работы системы, основной функционал.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 25.08.2017
Размер файла 942,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

CloseDataBi = pd.DataFrame(db.Get_Close_Direction(Stock_Name,dt.datetime(int(Stock_Start_Year), int(Stock_Start_Month), int(Stock_Start_Day)),dt.datetime(int(Stock_End_Year),int(Stock_End_Month), int(Stock_End_Day))))CloseDataTrBi = pd.DataFrame(db.Get_Close_Direction(Stock_Name,dt.datetime(int(Stock_Start_Year_Tr), int(Stock_Start_Month_Tr), int(Stock_Start_Day_Tr)),dt.datetime(int(Stock_End_Year_Tr),int(Stock_End_Month_Tr), int(Stock_End_Day_Tr))))listErrors = []fig, axes = plt.subplots(nrows=3, ncols=1)axes[0].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)axes[0].plot(ab.SimpleMovingAverage(ts,10),Label='SMA-10')axes[0].plot(ab.SimpleMovingAverage(ts,50),Label='SMA-50')axes[0].plot(ab.SimpleMovingAverage(ts,100),Label='SMA-100')axes[0].legend(fontsize = 'xx-small')axes[0].set_title('SMA time series')axes[1].plot(pd.DataFrame(CloseData1.Today).diff(),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)axes[1].plot(ab.SimpleMovingAverage(ts,10).diff(),Label='SMA-10')axes[1].plot(ab.SimpleMovingAverage(ts,50).diff(),Label='SMA-50')axes[1].plot(ab.SimpleMovingAverage(ts,100).diff(),Label='SMA-100')axes[1].legend(fontsize = 'xx-small')axes[1].set_title('SMA diffs')TrendList1 = ab.DataTrend(ab.SimpleMovingAverage(ts,10),'SMA-10',ab.SimpleMovingAverage(ts,50),'SMA-50',100)TrendList2 = ab.DataTrend(ab.SimpleMovingAverage(ts,10),'SMA-10',ab.SimpleMovingAverage(ts,100),'SMA-100',100)TrendList3 = ab.DataTrend(ab.SimpleMovingAverage(ts,50),'SMA-50',ab.SimpleMovingAverage(ts,100),'SMA-100',100)axes[2].plot(TrendList1.Trend,Label='SMA-10-50')axes[2].plot(TrendList2.Trend,Label='SMA-10-100')axes[2].plot(TrendList3.Trend,Label='SMA-50-100')axes[2].legend(fontsize = 'xx-small')axes[2].set_title('SMA trends')fig.tight_layout()fig.savefig("SMA111.png")sma1 = ab.SimpleMovingAverage(ts,10)['Today'].values.tolist()ts1 = ts['Today'].values.tolist()sma2 = ab.SimpleMovingAverage(ts,50)['Today'].values.tolist()ts2 = ts['Today'].values.tolist()sma3 = ab.SimpleMovingAverage(ts,100)['Today'].values.tolist()ts3 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('SMA-10',ts1[10:],sma1[10:]))listErrors.append(tb.get_all_mistakes('SMA-50',ts2[50:],sma2[50:]))listErrors.append(tb.get_all_mistakes('SMA-100',ts3[100:],sma3[100:]))#TMAfig, axes = plt.subplots(nrows=3, ncols=1)axes[0].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)axes[0].plot(ab.TriangMovingAverage(ts,10),Label='TMA-10')axes[0].plot(ab.TriangMovingAverage(ts,50),Label='TMA-50')axes[0].plot(ab.TriangMovingAverage(ts,100),Label='TMA-100')axes[0].legend(fontsize = 'xx-small')axes[0].set_title('TMA time series')axes[1].plot(pd.DataFrame(CloseData1.Today).diff(),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)axes[1].plot(ab.TriangMovingAverage(ts,10).diff(),Label='TMA-10')axes[1].plot(ab.TriangMovingAverage(ts,50).diff(),Label='TMA-50')axes[1].plot(ab.TriangMovingAverage(ts,100).diff(),Label='TMA-100')axes[1].legend(fontsize = 'xx-small')axes[1].set_title('TMA time series')TrendList1 = ab.DataTrend(ab.TriangMovingAverage(ts,10),'TMA-10',ab.TriangMovingAverage(ts,50),'TMA-50',100)TrendList2 = ab.DataTrend(ab.TriangMovingAverage(ts,10),'TMA-10',ab.TriangMovingAverage(ts,100),'TMA-100',100)TrendList3 = ab.DataTrend(ab.TriangMovingAverage(ts,50),'TMA-50',ab.TriangMovingAverage(ts,100),'TMA-100',100)axes[2].plot(TrendList1.Trend,Label='TMA-10-50')axes[2].plot(TrendList2.Trend,Label='TMA-10-100')axes[2].plot(TrendList3.Trend,Label='TMA-50-100')axes[2].legend(fontsize = 'xx-small')axes[2].set_title('TMA time series')fig.tight_layout()fig.savefig("TMA111.png")sma1 = ab.TriangMovingAverage(ts,10)['Today'].values.tolist()ts1 = ts['Today'].values.tolist()sma2 = ab.TriangMovingAverage(ts,50)['Today'].values.tolist()ts2 = ts['Today'].values.tolist()sma3 = ab.TriangMovingAverage(ts,100)['Today'].values.tolist()ts3 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('TMA-10',ts1[10:],sma1[10:]))listErrors.append(tb.get_all_mistakes('TMA-50',ts2[50:],sma2[50:]))listErrors.append(tb.get_all_mistakes('TMA-100',ts3[100:],sma3[100:]))#EMAfig, axes = plt.subplots(nrows=3, ncols=1)axes[0].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)axes[0].plot(ab.ExponentialMovingAverage(ts,10.0),Label='EMA-10')axes[0].plot(ab.ExponentialMovingAverage(ts,50.0),Label='EMA-50')axes[0].plot(ab.ExponentialMovingAverage(ts,100.0),Label='EMA-100')axes[0].legend(fontsize = 'xx-small')axes[0].set_title('EMA time series')axes[1].plot(pd.DataFrame(CloseData1.Today).diff(),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)axes[1].plot(ab.ExponentialMovingAverage(ts,10.0).diff(),Label='EMA-10')axes[1].plot(ab.ExponentialMovingAverage(ts,50.0).diff(),Label='EMA-50')axes[1].plot(ab.ExponentialMovingAverage(ts,100.0).diff(),Label='EMA-100')axes[1].legend(fontsize = 'xx-small')axes[1].set_title('EMA time series')TrendList1 = ab.DataTrend(ab.ExponentialMovingAverage(ts,10.0),'EMA-10',ab.ExponentialMovingAverage(ts,50.0),'EMA-50',100)TrendList2 = ab.DataTrend(ab.ExponentialMovingAverage(ts,10.0),'EMA-10',ab.ExponentialMovingAverage(ts,100.0),'EMA-100',100)TrendList3 = ab.DataTrend(ab.ExponentialMovingAverage(ts,50.0),'EMA-50',ab.ExponentialMovingAverage(ts,100.0),'EMA-100',100)axes[2].plot(TrendList1.Trend,Label='EMA-10-50')axes[2].plot(TrendList2.Trend,Label='EMA-10-100')axes[2].plot(TrendList3.Trend,Label='EMA-50-100')axes[2].legend(fontsize = 'xx-small')axes[2].set_title('EMA time series')fig.tight_layout()fig.savefig("EMA111.png")sma1 = ab.ExponentialMovingAverage(ts,10.0)['Today'].values.tolist()ts1 = ts['Today'].values.tolist()sma2 = ab.ExponentialMovingAverage(ts,50.0)['Today'].values.tolist()ts2 = ts['Today'].values.tolist()sma3 = ab.ExponentialMovingAverage(ts,100.0)['Today'].values.tolist()ts3 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('EMA-10',ts1[10:],sma1[10:]))listErrors.append(tb.get_all_mistakes('EMA-50',ts2[50:],sma2[50:]))listErrors.append(tb.get_all_mistakes('EMA-100',ts3[100:],sma3[100:]))fig, axes = plt.subplots(nrows=3, ncols=1)axes[0].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)list2 = ab.DoubleExponentialSmoothing(CloseData1.Today,10.0,0.25)axes[0].plot(pd.DataFrame(list2,index = CloseData1.index.tolist()),Label='DEMA-10-0.25')list3 = ab.DoubleExponentialSmoothing(CloseData1.Today,10.0,0.5)axes[0].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='DEMA-10-0.5')axes[0].legend(fontsize = 'xx-small')axes[0].set_title('DEMA-10 time series')ts1 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('DEMA-10-0.25',ts1,list2))listErrors.append(tb.get_all_mistakes('DEMA-10-0.5',ts1,list3))axes[1].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)list2 = ab.DoubleExponentialSmoothing(CloseData1.Today,50.0,0.25)axes[1].plot(pd.DataFrame(list2,index = CloseData1.index.tolist()),Label='DEMA-50-0.25')list3 = ab.DoubleExponentialSmoothing(CloseData1.Today,50.0,0.5)axes[1].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='DEMA-50-0.5')axes[1].legend(fontsize = 'xx-small')axes[1].set_title('DEMA-50 time series')ts1 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('DEMA-50-0.25',ts1,list2))listErrors.append(tb.get_all_mistakes('DEMA-50-0.5',ts1,list3))axes[2].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)list2 = ab.DoubleExponentialSmoothing(CloseData1.Today,100.0,0.25)axes[2].plot(pd.DataFrame(list2,index = CloseData1.index.tolist()),Label='DEMA-100-0.25')list3 = ab.DoubleExponentialSmoothing(CloseData1.Today,100.0,0.5)axes[2].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='DEMA-100-0.5')axes[2].legend(fontsize = 'xx-small')axes[2].set_title('DEMA-100 time series')ts2 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('DEMA-100-0.25',ts2,list2))listErrors.append(tb.get_all_mistakes('DEMA-100-0.5',ts2,list3))fig.tight_layout()fig.savefig("DEMA111.png")fig, axes = plt.subplots(nrows=3, ncols=1)axes[0].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)a = ab.HoltWinters(CloseData1.Today,100,2.0/(10.0+1),0.25,0.05,0)a.triple_exponential_smoothing()list1 = a.resultaxes[0].plot(pd.DataFrame(list1,index = CloseData1.index.tolist()),Label='TEMA-10-0.25-0.05')a = ab.HoltWinters(CloseData1.Today,100,2.0/(10.0+1),0.5,0.05,0)a.triple_exponential_smoothing()list2 = a.resultaxes[0].plot(pd.DataFrame(list2,index = CloseData1.index.tolist()),Label='TEMA-10-0.5-0.05')a = ab.HoltWinters(CloseData1.Today,100,2.0/(10.0+1),0.25,0.1,0)a.triple_exponential_smoothing()list3 = a.resultaxes[0].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='TEMA-10-0.25-0.1')a = ab.HoltWinters(CloseData1.Today,100,2.0/(10.0+1),0.5,0.1,0)a.triple_exponential_smoothing()list4 = a.resultaxes[0].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='TEMA-10-0.5-0.1')axes[0].legend(fontsize = 'xx-small')axes[0].set_title('TEMA-10 time series')ts1 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('TEMA-10-0.25-0.05',ts1,list1))listErrors.append(tb.get_all_mistakes('TEMA-10-0.5-0.05',ts1,list2))listErrors.append(tb.get_all_mistakes('TEMA-10-0.25-0.1',ts1,list3))listErrors.append(tb.get_all_mistakes('TEMA-10-0.5-0.1',ts1,list4))axes[1].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)a = ab.HoltWinters(CloseData1.Today,100,2.0/(50.0+1),0.25,0.05,0)a.triple_exponential_smoothing()list1 = a.resultaxes[1].plot(pd.DataFrame(list1,index = CloseData1.index.tolist()),Label='TEMA-50-0.25-0.05')a = ab.HoltWinters(CloseData1.Today,100,2.0/(50.0+1),0.5,0.05,0)a.triple_exponential_smoothing()list2 = a.resultaxes[1].plot(pd.DataFrame(list2,index = CloseData1.index.tolist()),Label='TEMA-50-0.5-0.05')a = ab.HoltWinters(CloseData1.Today,100,2.0/(50.0+1),0.25,0.1,0)a.triple_exponential_smoothing()list3 = a.resultaxes[1].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='TEMA-50-0.25-0.1')a = ab.HoltWinters(CloseData1.Today,100,2.0/(50.0+1),0.5,0.1,0)a.triple_exponential_smoothing()list4 = a.resultaxes[1].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='TEMA-50-0.5-0.1')axes[1].legend(fontsize = 'xx-small')axes[1].set_title('TEMA-50 time series')ts1 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('TEMA-50-0.25-0.05',ts1,list1))listErrors.append(tb.get_all_mistakes('TEMA-50-0.5-0.05',ts1,list2))listErrors.append(tb.get_all_mistakes('TEMA-50-0.25-0.1',ts1,list3))listErrors.append(tb.get_all_mistakes('TEMA-50-0.5-0.1',ts1,list4))axes[2].plot(pd.DataFrame(CloseData1.Today),Label='General Open Data')ts=pd.DataFrame(CloseData1.Today)a = ab.HoltWinters(CloseData1.Today,100,2.0/(100.0+1),0.25,0.05,0)a.triple_exponential_smoothing()list1 = a.resultaxes[2].plot(pd.DataFrame(list1,index = CloseData1.index.tolist()),Label='TEMA-100-0.25-0.05')a = ab.HoltWinters(CloseData1.Today,100,2.0/(100.0+1),0.5,0.05,0)a.triple_exponential_smoothing()list2 = a.resultaxes[2].plot(pd.DataFrame(list2,index = CloseData1.index.tolist()),Label='TEMA-100-0.5-0.05')a = ab.HoltWinters(CloseData1.Today,100,2.0/(100.0+1),0.25,0.1,0)a.triple_exponential_smoothing()list3 = a.resultaxes[2].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='TEMA-100-0.25-0.1')a = ab.HoltWinters(CloseData1.Today,100,2.0/(100.0+1),0.5,0.1,0)a.triple_exponential_smoothing()list4 = a.resultaxes[2].plot(pd.DataFrame(list3,index = CloseData1.index.tolist()),Label='TEMA-100-0.5-0.1')axes[2].legend(fontsize = 'xx-small')axes[2].set_title('TEMA-100 time series')ts1 = ts['Today'].values.tolist()listErrors.append(tb.get_all_mistakes('TEMA-100-0.25-0.05',ts1,list1))listErrors.append(tb.get_all_mistakes('TEMA-100-0.5-0.05',ts1,list2))listErrors.append(tb.get_all_mistakes('TEMA-100-0.25-0.1',ts1,list3))listErrors.append(tb.get_all_mistakes('TEMA-100-0.5-0.1',ts1,list4))fig.tight_layout()fig.savefig("TEMA111.png")ts1,ts2 = ab.LogisticRegressionModel(2,CloseData,CloseDataTr)listErrors.append('LogReg-N-2 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(5,CloseData,CloseDataTr)listErrors.append('LogReg-N-5 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(10,CloseData,CloseDataTr)listErrors.append('LogReg-N-10 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(25,CloseData,CloseDataTr)listErrors.append('LogReg-N-25 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(100,CloseData,CloseDataTr)listErrors.append('LogReg-N-100 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(2,CloseDataBi,CloseDataTrBi)listErrors.append('LogReg-B-2 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(5,CloseDataBi,CloseDataTrBi)listErrors.append('LogReg-B-5 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(10,CloseDataBi,CloseDataTrBi)listErrors.append('LogReg-B-10 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(25,CloseDataBi,CloseDataTrBi)listErrors.append('LogReg-B-25 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LogisticRegressionModel(100,CloseDataBi,CloseDataTrBi)listErrors.append('LogReg-B-100 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(2,CloseData,CloseDataTr)listErrors.append('LDA-N-2 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(5,CloseData,CloseDataTr)listErrors.append('LDA-N-5 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(10,CloseData,CloseDataTr)listErrors.append('LDA-N-10 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(25,CloseData,CloseDataTr)listErrors.append('LDA-N-25 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(100,CloseData,CloseDataTr)listErrors.append('LDA-N-100 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(2,CloseDataBi,CloseDataTrBi)listErrors.append('LDA-B-2 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(5,CloseDataBi,CloseDataTrBi)listErrors.append('LDA-B-5 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(10,CloseDataBi,CloseDataTrBi)listErrors.append('LDA-B-10 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(25,CloseDataBi,CloseDataTrBi)listErrors.append('LDA-B-25 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.LinearDiscriminantModel(100,CloseDataBi,CloseDataTrBi)listErrors.append('LDA-B-100 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(2,CloseData,CloseDataTr)listErrors.append('QDA-N-2 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(5,CloseData,CloseDataTr)listErrors.append('QDA-N-5 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(10,CloseData,CloseDataTr)listErrors.append('QDA-N-10 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(25,CloseData,CloseDataTr)listErrors.append('QDA-N-25 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(100,CloseData,CloseDataTr)listErrors.append('QDA-N-100 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(2,CloseDataBi,CloseDataTrBi)listErrors.append('QDA-B-2 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(5,CloseDataBi,CloseDataTrBi)listErrors.append('QDA-B-5 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(10,CloseDataBi,CloseDataTrBi)listErrors.append('QDA-B-10 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(25,CloseDataBi,CloseDataTrBi)listErrors.append('QDA-B-25 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))ts1,ts2 = ab.QuadraticDiscriminantModel(100,CloseDataBi,CloseDataTrBi)listErrors.append('QDA-B-100 MPE_tr: ' + str(ts1) + ' MPE_test: '+ str(ts2))for i in range(len(listErrors)): print listErrors[i]

import pyodbcimport pandas as pddef Get_Stocks(): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "select I.[Industry_Code],[Industry_Name],[Stock_Code],[Company_Name] from [dbo].[Company_Stocks] CS inner join [dbo].[Industries] I on CS.[Industry_Code]=I.[Industry_Code] order by 1,3 " cursor.execute(querry) list=[] for row in cursor: list.append([j for j in row]) cnxn.commit() return listdef Get_Results(): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "select TR.Test_Code,M.Model_Name,EF.Parametr_Name,tr.Result_Value from [dbo].[Effectiveness_Parametrs] EF inner join [dbo].[Test_Result] TR on EF.Parametr_Code=TR.Parametr_Code inner join [dbo].[Model] M on TR.Model_Code=M.Model_Code order by 1" cursor.execute(querry) list=[] for row in cursor: list.append([j for j in row]) cnxn.commit() return listdef Insert_Test(Test_Name): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "insert into [dbo].[Test] values ((select count(*)+1 from Test),'"+Test_Name+"' + (select count(*)+1 from Test))" cursor.execute(querry) cnxn.commit() cursor = cnxn.cursor() querry = "select count(*) from Test" cursor.execute(querry) list=[] for row in cursor: list.append([j for j in row]) cnxn.commit() return list[0][0]def Insert_Industry(Code,Name): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "select * from [dbo].[Industries]" cursor.execute(querry) list=[] for row in cursor: list.append([j for j in row]) cnxn.commit() a=0 for row in list: if(row[0]==Code and row[1]==Name): a = 1 if (a==0): cursor = cnxn.cursor() querry = "Insert into [dbo].[Industries] values ('" +Code + "','" + Name+"')" cursor.execute(querry) cnxn.commit()def Insert_Stocks(Code,Name,ICode): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "select * from [dbo].[Stocks]" cursor.execute(querry) list=[] for row in cursor: list.append([j for j in row]) cnxn.commit() a=0 for row in list: if(row[0]==Code and row[1]==Name and row[2]==ICode): a = 1 if (a==0): cursor = cnxn.cursor() querry = "Insert into [dbo].[Stocks] values ('" +Code + "','" + Name+"','"+ICode+"')" cursor.execute(querry) cnxn.commit()def Insert_Params(Code,Name,Description): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "select * from [dbo].[Effectiveness_Parametrs]" cursor.execute(querry) list=[] for row in cursor: list.append([j for j in row]) cnxn.commit() a=0 for row in list: if(row[0]==Code): a = 1 if (a==0): cursor = cnxn.cursor() querry = "insert into [dbo].[Effectiveness_Parametrs] ([Parametr_Code],[Parametr_Name],[Parametr_Description]) values ('" +Code + "','" + Name+"','"+Description+"')" cursor.execute(querry) cnxn.commit()def Insert_Model(Code,Name,Features,Description): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "select * from [dbo].[Model]" cursor.execute(querry) list=[] for row in cursor: list.append([j for j in row]) cnxn.commit() a=0 for row in list: if(row[0]==Code): a = 1 if (a==0): cursor = cnxn.cursor() querry = "insert into [dbo].[Model] ([Model_Code],[Model_Name],[Model_Features],[Model_Description]) values ('" +Code + "','" + Name+"','"+Features+"','"+Description+"')" cursor.execute(querry) cnxn.commit()def Insert_Test_Result(Test,Parametr,Model,Value): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "insert into [dbo].[Test_Result] ([Test_Code],[Result_Value],[Parametr_Code],[Model_Code]) values ('"+Test+"','"+Value+"','"+Parametr+"','"+Model+"')" cursor.execute(querry) cnxn.commit()def Insert_Raw_Data(Date,Open,Close,High,Low,Adj_CLose,Volume,Stock,Test): cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ASUS\SERVER;DATABASE=DiplomaDataBase;Trusted_Connection=True') cursor = cnxn.cursor() querry = "insert into [dbo].[Raw_Data] values ('"+Date+"',"+str(Open)+","+str(Close)+","+str(High)+","+str(Low)+","+str(Adj_CLose)+","+str(Volume)+",'"+Stock+"',"+str(Test)+")" cursor.execute(querry) cnxn.commit()def Insert_Raw_Data_Series(Series,test_number,stock_name): Series = pd.DataFrame(Series) list2 = Series.values.tolist() list1 = [] for i in range(len(list2)): list1.append(str(Series.index[i])) for i in range(len(list2)): Insert_Raw_Data(list1[i], list2[i][0], list2[i][1], list2[i][2], list2[i][3], list2[i][5], list2[i][4], stock_name, test_number)

from __future__ import (absolute_import, division, print_function, unicode_literals)import backtrader as btimport DataBlock as dbimport pandas as pdimport datetime as dtfile = open('TestFile.Txt','r')n = file.readlines()Stock_Name = 'G00G'Stock_Start_Year = 2014Stock_Start_Month = 1Stock_Start_Day = 1Stock_End_Year = 2014Stock_End_Month = 5Stock_End_Day = 1GeneralData = pd.DataFrame(db.Get_Data(Stock_Name,dt.datetime(int(Stock_Start_Year), int(Stock_Start_Month), int(Stock_Start_Day)),dt.datetime(int(Stock_End_Year),int(Stock_End_Month), int(Stock_End_Day))))class TestStrategy(bt.Strategy): params = ( ('maperiod', 15), ) def log(self, txt, dt=None): ''' Logging function fot this strategy''' dt = dt or self.datas[0].datetime.date(0) print('%s, %s' % (dt.isoformat(), txt)) def __init__(self): self.dataclose = self.datas[0].close self.order = None self.buyprice = None self.buycomm = None self.sma = bt.indicators.SimpleMovingAverage( self.datas[0], period=self.params.maperiod) bt.indicators.ExponentialMovingAverage(self.datas[0], period=25) bt.indicators.WeightedMovingAverage(self.datas[0], period=25, subplot=True) bt.indicators.StochasticSlow(self.datas[0]) bt.indicators.MACDHisto(self.datas[0]) rsi = bt.indicators.RSI(self.datas[0]) bt.indicators.SmoothedMovingAverage(rsi, period=10) bt.indicators.ATR(self.datas[0], plot=False) def notify_order(self, order): if order.status in [order.Submitted, order.Accepted]: return if order.status in [order.Completed]: if order.isbuy(): self.log( 'BUY EXECUTED, Price: %.2f, Cost: %.2f, Comm %.2f' % (order.executed.price, order.executed.value, order.executed.comm)) self.buyprice = order.executed.price self.buycomm = order.executed.comm else: self.log('SELL EXECUTED, Price: %.2f, Cost: %.2f, Comm %.2f' % (order.executed.price, order.executed.value, order.executed.comm)) self.bar_executed = len(self) elif order.status in [order.Canceled, order.Margin, order.Rejected]: self.log('Order Canceled/Margin/Rejected') self.order = None def notify_trade(self, trade): if not trade.isclosed: return self.log('OPERATION PROFIT, GROSS %.2f, NET %.2f' % (trade.pnl, trade.pnlcomm)) def next(self): self.log('Close, %.2f' % self.dataclose[0]) if self.order: return if not self.position: if self.dataclose[0] > self.sma[0]: self.log('BUY CREATE, %.2f' % self.dataclose[0]) self.order = self.buy() else: if self.dataclose[0] < self.sma[0]: self.log('SELL CREATE, %.2f' % self.dataclose[0]) self.order = self.sell()if __name__ == '__main__': cerebro = bt.Cerebro() cerebro.addstrategy(TestStrategy) data = bt.feeds.PandasData( dataname=GeneralData) cerebro.adddata(data) cerebro.broker.setcash(100000.0) cerebro.addsizer(bt.sizers.FixedSize, stake=10) cerebro.broker.setcommission(commission=0.05) print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue()) cerebro.run() print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())

Размещено на Allbest.ru


Подобные документы

  • Назначение и цели создания системы автоматизации, ее устройство, принципы работы. Характеристика комплекса задач и функциональная структура, анализ входной и выходной информации. Логическая модель данных и алгоритм работы с ними. Инструкция пользователя.

    курсовая работа [1,0 M], добавлен 06.07.2016

  • Назначение и требования к автоматизированной системе обработки экономической информации. Общая структура отдела биржевых операций как объекта автоматизации. Техническое, системное программное, информационное и сетевое обеспечение, организация баз данных.

    аттестационная работа [415,7 K], добавлен 30.03.2010

  • Описание разработанной подсистемы автоматизации, алгоритм ее работы. Структуры базы данных и составных частей подсистемы. Затраты на разработку программного продукта и эффект от внедрения подсистемы. Руководство по работе с программным комплексом.

    дипломная работа [3,0 M], добавлен 02.02.2009

  • Принципы автоматизации делопроизводства. Общие понятия документооборота. Проектирование программного обеспечения. Стадии и этапы создания информационных систем, средства их разработки. Анализ алгоритмов работы с базой данных, разработка интерфейса.

    дипломная работа [3,4 M], добавлен 07.11.2015

  • Выполнение операций, хранения, редактирования, систематизации данных. Рассмотрение подсистем разрабатываемой системы управления базами данных продуктового магазина. Разработка алгоритма функционирования системы и приложения для работы с базой данных.

    курсовая работа [399,1 K], добавлен 26.08.2019

  • Анализ аналогов и выбор прототипа, разработка алгоритма и графического интерфейса, кодирование и тестирование. Логическая модель данных "Нотариальная контора". Особенности реализации в MS SQL. Требования к функциональным характеристикам базы данных.

    курсовая работа [1,3 M], добавлен 12.01.2013

  • Разработка программного обеспечения, моделирующего работу банкомата. Особенности области применения терминала и выделение главных функциональных частей. Разработка алгоритма работы программы и реализация системы. Ее тестирование и анализ результатов.

    курсовая работа [5,5 M], добавлен 12.10.2011

  • Анализ предметной области и требований пользователей для разработки программного средства по автоматизации работы склада строительных материалов. Описание работы с базой данных Access, позволяющей добавлять и редактировать информацию, оформлять накладную.

    курсовая работа [601,1 K], добавлен 25.01.2013

  • Методы статического и динамического анализа зависимостей по данным для последовательных программ. Разработан и реализован алгоритм гибридного анализа, объединяющий достоинства обоих методов. Статическая библиотека представления базы данных САПФОР.

    дипломная работа [169,6 K], добавлен 21.11.2010

  • Разработка комплекса интеллектуального анализа данных, получаемых в процессе работы коммерческого предприятия розничной торговли. Исследование стационарности ассоциаций, выявление частоты появления ассоциаций. Скрипты для создания баз данных и таблиц.

    курсовая работа [706,3 K], добавлен 07.08.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.