2015年05月16日
MATLABによるMYSQLデータベースへのアクセス6
Pan Active Market Databaseの全証券データーをMATLABでMySQLに格納できた。次にMySQLが動いていない別のコンピュータからMATLABでデーターベースへアクセスし、株価データを取得するコードを作成する。ここでは日経平均のデータがあるテーブル(code1001)にアクセスし、およそ過去10年分の安値を取得しプロットする。以下のコードの赤字の部分が実行するSQL文。
TABLE "code1001"
'2005/06/20' 11539 11539 11455 11483 152116
'2005/06/21' 11474 11511 11464 11488 122869
'2005/06/22' 11487 11560 11445 11547 133063
'2005/06/23' 11539 11576 11530 11576 128244
'2005/06/24' 11480 11537 11472 11537 119032
'2005/06/27' 11445 11445 11378 11414 122160
'2005/06/28' 11421 11519 11413 11513 143199
'2005/06/29' 11567 11594 11547 11577 177364
'2005/06/30' 11573 11589 11542 11584 179822
'2005/07/01' 11573 11663 11540 11630 154464
'2005/07/04' 11664 11664 11629 11651 126403
'2005/07/05' 11645 11658 11606 11616 140798
'2005/07/06' 11648 11676 11603 11603 131177
'2005/07/07' 11586 11602 11567 11590 128320
'2005/07/08' 11563 11653 11563 11565 161338
'2005/07/11' 11676 11713 11668 11674 130064
'2005/07/12' 11737 11738 11672 11692 124246
'2005/07/13' 11705 11707 11659 11659 115574
'2005/07/14' 11715 11784 11715 11764 125497
'2005/07/15' 11825 11828 11758 11758 124944
'2005/07/19' 11761 11770 11731 11764 142708
'2005/07/20' 11780 11816 11761 11789 152458
'2005/07/21' 11808 11867 11786 11786 160204
'2005/07/22' 11751 11753 11650 11695 132740
'2005/07/25' 11721 11782 11718 11762 133266
'2005/07/26' 11762 11772 11719 11737 133593
'2005/07/27' 11770 11848 11770 11835 178513
'2005/07/28' 11881 11889 11853 11858 195571
'2005/07/29' 11900 11913 11826 11899 175167
'2005/08/01' 11907 11972 11906 11946 183064
'2005/08/02' 11954 11982 11920 11940 173989
'2005/08/03' 11987 12009 11950 11981 197725
'2005/08/04' 11945 11945 11823 11883 196191
'2005/08/05' 11842 11863 11724 11766 166378
'2005/08/08' 11670 11794 11614 11778 154551
'2005/08/09' 11797 11958 11797 11900 164802
'2005/08/10' 11996 12138 11991 12098 224823
'2005/08/11' 12178 12284 12167 12263 223694
'2005/08/12' 12276 12324 12228 12261 189702
'2005/08/15' 12254 12308 12236 12256 189262
'2005/08/16' 12324 12336 12277 12315 201555
'2005/08/17' 12286 12369 12270 12273 225698
'2005/08/18' 12322 12369 12292 12307 187313
'2005/08/19' 12276 12291 12219 12291 173792
'2005/08/22' 12330 12478 12330 12452 195072
'2005/08/23' 12511 12612 12472 12472 223577
'2005/08/24' 12421 12515 12416 12502 169358
'2005/08/25' 12443 12466 12401 12405 177946
'2005/08/26' 12458 12482 12385 12439 179661
'2005/08/29' 12386 12386 12274 12309 159212
'2005/08/30' 12411 12457 12396 12453 187756
'2005/08/31' 12428 12443 12393 12413 157743
'2005/09/01' 12501 12573 12501 12506 205125
'2005/09/02' 12571 12600 12544 12600 186713
'2005/09/05' 12616 12655 12580 12634 200065
'2005/09/06' 12686 12730 12581 12599 251590
'2005/09/07' 12682 12682 12574 12607 193241
'2005/09/08' 12601 12601 12498 12533 188454
'2005/09/09' 12561 12692 12556 12692 303846
'2005/09/12' 12841 12926 12813 12896 223530
'2005/09/13' 12896 12940 12847 12901 263996
'2005/09/14' 12847 12871 12830 12834 239738
'2005/09/15' 12817 12986 12806 12986 301313
'2005/09/16' 12992 12992 12888 12958 274877
'2005/09/20' 12991 13159 12991 13148 326131
'2005/09/21' 13181 13235 13108 13196 369898
'2005/09/22' 13120 13170 13090 13159 281651
'2005/09/26' 13229 13392 13229 13392 307907
'2005/09/27' 13370 13373 13282 13310 346376
'2005/09/28' 13307 13487 13306 13435 332205
'2005/09/29' 13515 13617 13440 13617 360524
'2005/09/30' 13677 13678 13539 13574 304024
'2005/10/03' 13566 13584 13454 13525 306648
'2005/10/04' 13597 13738 13593 13738 314227
'2005/10/05' 13761 13783 13655 13689 295187
'2005/10/06' 13554 13554 13285 13359 281557
'2005/10/07' 13279 13332 13221 13227 269189
'2005/10/11' 13280 13556 13241 13556 272161
'2005/10/12' 13565 13704 13463 13463 315405
'2005/10/13' 13388 13475 13266 13449 229770
'2005/10/14' 13581 13581 13361 13420 271003
'2005/10/17' 13486 13510 13341 13400 268170
'2005/10/18' 13376 13441 13321 13352 303766
'2005/10/19' 13297 13304 13073 13129 305468
'2005/10/20' 13221 13264 13175 13190 268572
'2005/10/21' 13065 13243 12996 13199 220201
'2005/10/24' 13232 13244 13083 13106 202272
'2005/10/25' 13227 13336 13219 13280 248287
'2005/10/26' 13291 13406 13285 13395 262482
'2005/10/27' 13440 13501 13387 13417 284527
'2005/10/28' 13344 13373 13272 13346 255255
'2005/10/31' 13459 13606 13456 13606 271248
'2005/11/01' 13606 13867 13606 13867 179744
'2005/11/02' 13865 13927 13807 13894 370358
'2005/11/04' 14040 14099 13978 14075 364433
'2005/11/07' 14084 14097 13982 14061 368812
'2005/11/08' 14067 14071 13982 14036 455805
'2005/11/09' 13989 14136 13951 14072 392275
'2005/11/10' 14058 14121 13981 14080 296818
'2005/11/11' 14170 14206 14133 14155 251884
'2005/11/14' 14218 14218 14105 14116 250390
'2005/11/15' 14069 14142 14043 14091 251275
'2005/11/16' 14035 14170 14015 14170 282173
'2005/11/17' 14192 14448 14169 14411 260860
'2005/11/18' 14542 14633 14542 14623 240631
'2005/11/21' 14719 14808 14590 14680 260295
'2005/11/22' 14726 14763 14650 14708 208278
'2005/11/24' 14816 14866 14721 14742 232216
'2005/11/25' 14693 14784 14613 14784 226431
'2005/11/28' 14847 14986 14821 14986 204645
'2005/11/29' 14900 14995 14868 14927 208411
'2005/11/30' 14981 15013 14872 14872 243642
'2005/12/01' 14914 15130 14880 15130 264303
'2005/12/02' 15272 15421 15245 15421 332492
'2005/12/05' 15413 15563 15379 15551 371707
'2005/12/06' 15518 15572 15423 15423 300359
'2005/12/07' 15520 15558 15467 15484 276712
'2005/12/08' 15470 15523 15183 15183 249875
'2005/12/09' 15127 15447 15117 15404 370102
'2005/12/12' 15549 15764 15548 15738 313029
....
"activemarket_sql.m"
clear all;clc;
% Set this to the path to your MySQL Connector/J JAR
javaaddpath '/Users/Library/Java/Extensions/JDBC/mysql-connector-java-5.1.27-bin.jar'
% Database Server*
host = 'IP Address';
% Database Username/Password
user = 'Username';
password = 'Password';
% Database Name
dbName = 'pan_active_market_adjust';
% JDBC Parameters
jdbcString = sprintf('jdbc:mysql://%s/%s', host, dbName);
jdbcDriver = 'com.mysql.jdbc.Driver';
% Create the database connection object
dbConn = database(dbName,user,password,jdbcDriver,jdbcString);
% Check to make sure that we successfully connected
if isconnection(dbConn)
sqlquery = sprintf('SELECT * FROM code1001');
curs = exec(dbConn,sqlquery);
setdbprefs('DataReturnFormat','cellarray')
curs = fetch(curs);
else
% If the connection failed, print the error message
disp(sprintf('Connection failed: %s', dbConn.Message));
end
% Close the connection so we don't run out of MySQL threads
close(dbConn);
% Plot
x = datenum(curs.Data(:,1),'yyyy/mm/dd');
y = cell2mat(curs.Data(:,4));
plot(x,y)
xlim([x(1),x(end)])
xlabel('Date')
ylabel('Price (YEN)')
datetick('x','yy/mm/dd','keeplimits','keepticks')
これでMATLABを使って取引手法の探索や最適化、株価の予測なども出来そうだ。
TABLE "code1001"
'2005/06/20' 11539 11539 11455 11483 152116
'2005/06/21' 11474 11511 11464 11488 122869
'2005/06/22' 11487 11560 11445 11547 133063
'2005/06/23' 11539 11576 11530 11576 128244
'2005/06/24' 11480 11537 11472 11537 119032
'2005/06/27' 11445 11445 11378 11414 122160
'2005/06/28' 11421 11519 11413 11513 143199
'2005/06/29' 11567 11594 11547 11577 177364
'2005/06/30' 11573 11589 11542 11584 179822
'2005/07/01' 11573 11663 11540 11630 154464
'2005/07/04' 11664 11664 11629 11651 126403
'2005/07/05' 11645 11658 11606 11616 140798
'2005/07/06' 11648 11676 11603 11603 131177
'2005/07/07' 11586 11602 11567 11590 128320
'2005/07/08' 11563 11653 11563 11565 161338
'2005/07/11' 11676 11713 11668 11674 130064
'2005/07/12' 11737 11738 11672 11692 124246
'2005/07/13' 11705 11707 11659 11659 115574
'2005/07/14' 11715 11784 11715 11764 125497
'2005/07/15' 11825 11828 11758 11758 124944
'2005/07/19' 11761 11770 11731 11764 142708
'2005/07/20' 11780 11816 11761 11789 152458
'2005/07/21' 11808 11867 11786 11786 160204
'2005/07/22' 11751 11753 11650 11695 132740
'2005/07/25' 11721 11782 11718 11762 133266
'2005/07/26' 11762 11772 11719 11737 133593
'2005/07/27' 11770 11848 11770 11835 178513
'2005/07/28' 11881 11889 11853 11858 195571
'2005/07/29' 11900 11913 11826 11899 175167
'2005/08/01' 11907 11972 11906 11946 183064
'2005/08/02' 11954 11982 11920 11940 173989
'2005/08/03' 11987 12009 11950 11981 197725
'2005/08/04' 11945 11945 11823 11883 196191
'2005/08/05' 11842 11863 11724 11766 166378
'2005/08/08' 11670 11794 11614 11778 154551
'2005/08/09' 11797 11958 11797 11900 164802
'2005/08/10' 11996 12138 11991 12098 224823
'2005/08/11' 12178 12284 12167 12263 223694
'2005/08/12' 12276 12324 12228 12261 189702
'2005/08/15' 12254 12308 12236 12256 189262
'2005/08/16' 12324 12336 12277 12315 201555
'2005/08/17' 12286 12369 12270 12273 225698
'2005/08/18' 12322 12369 12292 12307 187313
'2005/08/19' 12276 12291 12219 12291 173792
'2005/08/22' 12330 12478 12330 12452 195072
'2005/08/23' 12511 12612 12472 12472 223577
'2005/08/24' 12421 12515 12416 12502 169358
'2005/08/25' 12443 12466 12401 12405 177946
'2005/08/26' 12458 12482 12385 12439 179661
'2005/08/29' 12386 12386 12274 12309 159212
'2005/08/30' 12411 12457 12396 12453 187756
'2005/08/31' 12428 12443 12393 12413 157743
'2005/09/01' 12501 12573 12501 12506 205125
'2005/09/02' 12571 12600 12544 12600 186713
'2005/09/05' 12616 12655 12580 12634 200065
'2005/09/06' 12686 12730 12581 12599 251590
'2005/09/07' 12682 12682 12574 12607 193241
'2005/09/08' 12601 12601 12498 12533 188454
'2005/09/09' 12561 12692 12556 12692 303846
'2005/09/12' 12841 12926 12813 12896 223530
'2005/09/13' 12896 12940 12847 12901 263996
'2005/09/14' 12847 12871 12830 12834 239738
'2005/09/15' 12817 12986 12806 12986 301313
'2005/09/16' 12992 12992 12888 12958 274877
'2005/09/20' 12991 13159 12991 13148 326131
'2005/09/21' 13181 13235 13108 13196 369898
'2005/09/22' 13120 13170 13090 13159 281651
'2005/09/26' 13229 13392 13229 13392 307907
'2005/09/27' 13370 13373 13282 13310 346376
'2005/09/28' 13307 13487 13306 13435 332205
'2005/09/29' 13515 13617 13440 13617 360524
'2005/09/30' 13677 13678 13539 13574 304024
'2005/10/03' 13566 13584 13454 13525 306648
'2005/10/04' 13597 13738 13593 13738 314227
'2005/10/05' 13761 13783 13655 13689 295187
'2005/10/06' 13554 13554 13285 13359 281557
'2005/10/07' 13279 13332 13221 13227 269189
'2005/10/11' 13280 13556 13241 13556 272161
'2005/10/12' 13565 13704 13463 13463 315405
'2005/10/13' 13388 13475 13266 13449 229770
'2005/10/14' 13581 13581 13361 13420 271003
'2005/10/17' 13486 13510 13341 13400 268170
'2005/10/18' 13376 13441 13321 13352 303766
'2005/10/19' 13297 13304 13073 13129 305468
'2005/10/20' 13221 13264 13175 13190 268572
'2005/10/21' 13065 13243 12996 13199 220201
'2005/10/24' 13232 13244 13083 13106 202272
'2005/10/25' 13227 13336 13219 13280 248287
'2005/10/26' 13291 13406 13285 13395 262482
'2005/10/27' 13440 13501 13387 13417 284527
'2005/10/28' 13344 13373 13272 13346 255255
'2005/10/31' 13459 13606 13456 13606 271248
'2005/11/01' 13606 13867 13606 13867 179744
'2005/11/02' 13865 13927 13807 13894 370358
'2005/11/04' 14040 14099 13978 14075 364433
'2005/11/07' 14084 14097 13982 14061 368812
'2005/11/08' 14067 14071 13982 14036 455805
'2005/11/09' 13989 14136 13951 14072 392275
'2005/11/10' 14058 14121 13981 14080 296818
'2005/11/11' 14170 14206 14133 14155 251884
'2005/11/14' 14218 14218 14105 14116 250390
'2005/11/15' 14069 14142 14043 14091 251275
'2005/11/16' 14035 14170 14015 14170 282173
'2005/11/17' 14192 14448 14169 14411 260860
'2005/11/18' 14542 14633 14542 14623 240631
'2005/11/21' 14719 14808 14590 14680 260295
'2005/11/22' 14726 14763 14650 14708 208278
'2005/11/24' 14816 14866 14721 14742 232216
'2005/11/25' 14693 14784 14613 14784 226431
'2005/11/28' 14847 14986 14821 14986 204645
'2005/11/29' 14900 14995 14868 14927 208411
'2005/11/30' 14981 15013 14872 14872 243642
'2005/12/01' 14914 15130 14880 15130 264303
'2005/12/02' 15272 15421 15245 15421 332492
'2005/12/05' 15413 15563 15379 15551 371707
'2005/12/06' 15518 15572 15423 15423 300359
'2005/12/07' 15520 15558 15467 15484 276712
'2005/12/08' 15470 15523 15183 15183 249875
'2005/12/09' 15127 15447 15117 15404 370102
'2005/12/12' 15549 15764 15548 15738 313029
....
"activemarket_sql.m"
clear all;clc;
% Set this to the path to your MySQL Connector/J JAR
javaaddpath '/Users/Library/Java/Extensions/JDBC/mysql-connector-java-5.1.27-bin.jar'
% Database Server*
host = 'IP Address';
% Database Username/Password
user = 'Username';
password = 'Password';
% Database Name
dbName = 'pan_active_market_adjust';
% JDBC Parameters
jdbcString = sprintf('jdbc:mysql://%s/%s', host, dbName);
jdbcDriver = 'com.mysql.jdbc.Driver';
% Create the database connection object
dbConn = database(dbName,user,password,jdbcDriver,jdbcString);
% Check to make sure that we successfully connected
if isconnection(dbConn)
sqlquery = sprintf('SELECT * FROM code1001');
curs = exec(dbConn,sqlquery);
setdbprefs('DataReturnFormat','cellarray')
curs = fetch(curs);
else
% If the connection failed, print the error message
disp(sprintf('Connection failed: %s', dbConn.Message));
end
% Close the connection so we don't run out of MySQL threads
close(dbConn);
% Plot
x = datenum(curs.Data(:,1),'yyyy/mm/dd');
y = cell2mat(curs.Data(:,4));
plot(x,y)
xlim([x(1),x(end)])
xlabel('Date')
ylabel('Price (YEN)')
datetick('x','yy/mm/dd','keeplimits','keepticks')
これでMATLABを使って取引手法の探索や最適化、株価の予測なども出来そうだ。
【このカテゴリーの最新記事】
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/3665955
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック