チャートから分足を保存(複数銘柄対応)

  • UWSCのスクリプトで、チャート上の右クリックで表示される「CSV形式でデータ出力」を行います。
  • 銘柄2.txtに記入したカテゴリ名,銘柄コードのCSVをカテゴリ毎のフォルダに順次保存します。
  • 銘柄.txtに記入した銘柄コードのCSVを順次保存します。
  • ジョイ・エクスプレス(野村証券)、ネットストック・ハイスピード(松井証券)のログインも実行します。

準備

  • 銘柄2.txt(ファイル名は指定出来ます)あるいは銘柄.txtには、一行ずつ記入します。
  • chart2.uws銘柄2.txt,銘柄.txtとは同じフォルダに入れておきます。
  • パスワードを設定します。
  • ネットストック・ハイスピード(松井証券)を利用するなら、証券会社をFALSEにします。
  • データを保存するフォルダパスを、folderPathに設定します。
  • 「CSV形式でデータ出力」の上でクリックされない場合は、x,yを調節して下さい。
  • 日付+銘柄コードのファイル名か、銘柄コードのファイル名(ファイル名日付利用=FALSE にする)で保存されます。

チャート表示を設定

ジョイ・エクスプレス、ネットストック・ハイスピードを起動した時に、上記画像のように株式チャートの画面が出てくるように設定しておきます。チャート画面は単独のウインドウで表示されるように、MDI画面(メインウインドウ内に子ウインドウが開く)ではなくてSDI画面(ドキュメント毎にウインドウが開く)にしておきます。

チャート画面

20110308fig2.png

CSVファイルを開くプログラムを変更

拡張子CSVのファイルは、Excelでは無くて、例えばメモ帳などのテキストエディタで常に開く設定にしておきます。

20110508fig1b.png

スクリプト

chart2.uwsとして、保存して下さい。

// チャートからCSVを保存するユーティリティ(複数銘柄対応)
// http://www.moderns.co.jp/trade/
// 2011-05-08


カテゴリ利用 = FALSE	//カテゴリ利用のfileNameを利用するならTRUE。銘柄.txtならFALSE
fileName = "銘柄2.txt"	//カテゴリ利用の銘柄リストのファイル名

password = "*****"	// 野村用 ログインパスワードを設定して下さい。
maID = "*****"	// 松井用 ログインIDを設定して下さい。
maPass = "*****"	// 松井用 ログインパスワードを設定して下さい。

証券会社 = TRUE	//野村ジョイ・エクスプレスにログインするならTRUE。ネットストック・ハイスピード(松井証券)を利用するなら、FALSE。
folderPath = "C:\"	//データを保存するフォルダパス。このフォルダ以下に、[日付 + Data]のフォルダが作成される。

//ジョイ・エクスプレスのプログラムパス
appPath = "C:\Program Files\joyExpress\Module\JoinvestExpress.exe"

//チャート画面上で右クリック後カーソル移動幅。調節して下さい。
x = 69
y = 260		//フォントがMS Pゴシックなら、220

//windowTitle = "指数先物OPチャート"
windowTitle = "株式チャート"	//株式のチャートの場合

IFB 証券会社 THEN
	appTitle = "ジョイ・エクスプレス"
	野村ログイン(appPath,password)
ELSE
	appTitle = "ネットストック・ハイスピード"
	松井ログイン(maID,maPass)
ENDIF

GETTIME(0)

//CSVを保存するフォルダ 
folderPath = folderPath + G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + " Data\"
ファイル名日付利用 = FALSE	// ファイル名に日付を付けるならTRUE



dateFileName = ""
//ファイル名の日付部分を設定する。
IFB ファイル名日付利用 THEN
	dateFileName = G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + " "	//例 20110508
ENDIF

//チャート画面が開くまで待機。
WHILE GETID( windowTitle ) < 0
	SLEEP(1)
WEND
SLEEP(10)		//長すぎるなら適宜修正

wNum = GETID(windowTitle)

DIM FSO = CreateOLEObj("Scripting.FileSystemObject")

//folderPathのフォルダが無ければ作成する。
IFB FSO.FolderExists(folderPath) = FALSE THEN
	FSO.CreateFolder (folderPath)
ENDIF

IFB カテゴリ利用 THEN
	fid = FOPEN(fileName, F_READ)
ELSE
	fid = FOPEN("銘柄.txt", F_READ)
ENDIF


FOR 行 = 1 TO FGET(fid, -1)		// 行数分を繰り返す

	IFB カテゴリ利用 THEN
		
		カテゴリ = FGET(fid, 行, 1)
		code銘柄 = FGET(fid, 行, 2)	// 行の2つめの列のデータを取り出す
		IFB FSO.FolderExists(folderPath + カテゴリ) = FALSE THEN
			FSO.CreateFolder (folderPath + カテゴリ)
		ENDIF
		
	ELSE
		code銘柄 = FGET(fid, 行)	// 行のデータを取り出す
	ENDIF

	//PRINT code銘柄
	FileName = dateFileName + code銘柄

	//ウインドウの座標・大きさを取得
	xx = STATUS( wNum, ST_X )
	yy = STATUS( wNum, ST_Y )
	width = STATUS( wNum, ST_CLWIDTH )
	height =  STATUS( wNum, ST_CLHEIGHT )

	SLEEP(2)

	//銘柄のCode入力処理開始。
	w_ID = GetID(windowTitle)
	o_HND = GetCtlHND(w_ID, "ComboBox")
	o_ID = HNDtoID(o_HND)
	CTRLWIN(w_ID, ACTIVATE)
	SENDSTR(o_ID, code銘柄, 1, True)	
	KBD(VK_RETURN)
	//銘柄のCode入力処理終了

	wNum = GETID( windowTitle )
	CTRLWIN( wNum, ACTIVATE)

	//CSVを保存
	BTN(RIGHT, CLICK, xx+200, yy+height/3, 300)	//右クリック
	BTN(LEFT, CLICK, xx+200+x, yy+height/3+y, 300)	//「CSV形式でデータ出力」の文字列の上をクリック

	//「出力」ダイアログが開くまで待機。
	WHILE GETID("出力") < 0
		SLEEP(0.5)
	WEND
	SLEEP(0.5)
	wNum2 = GETID("出力")

	IFB カテゴリ利用 THEN
		SENDSTR(wNum2, folderPath + カテゴリ + "\"+ FileName)
	ELSE
		SENDSTR(wNum2, folderPath + FileName)
	ENDIF


	KBD(VK_RETURN, DOWN, 40)
	SLEEP(0.5)

	CTRLWIN(wNum, ACTIVATE)

NEXT
FCLOSE( fid )


EXIT //アプリケーションを閉じるなら、この行を削除

// アプリケーションを閉じる
CTRLWIN(GETID(appTitle), CLOSE2 )
SLEEP(2)
CLKITEM(GETID(appTitle,"#32770"), "はい", clk_acc or clk_short, true, 1)


Procedure 松井ログイン(maID,maPass)

	IE = CREATEOLEOBJ("InternetExplorer.Application")
	IE.visible = True
	IE.navigate("https://www.deal.matsui.co.jp/ITS/login/MemberLogin.jsp")
	BusyWait(IE)

	IESETDATA(IE,maID,"clientCD")
	IESETDATA(IE,maPass,"passwd")
	IESETDATA(IE,True,"","alt=ログイン")
	BusyWait(IE)

	IELINK(IE,"ネットストック・ハイスピード")
	BusyWait(IE)
	IE.Document.Frames("CT").Document.all.item("kidouButton").click

Fend

Procedure 野村ログイン(appPath,password)
	Exec(appPath)		//アプリを起動。

	WHILE GETID("ログイン","#32770") < 0
		SLEEP(1)
	WEND
	CTRLWIN( GETID("ログイン","#32770"), ACTIVATE)

	IDnum = GETID("ログイン","#32770")
	SENDSTR(IDnum, password , 2, true)	//パスワード入力
	KBD(VK_RETURN, CLICK, 40)

Fend

Procedure BusyWait(ie)
	repeat
	Sleep(0.2)
	until (! ie.busy) and (ie.readyState=4)
Fend

銘柄.txt

銘柄.txtとして、保存して下さい。

9501
9502
9503

銘柄2.txt

通常は、銘柄2.txtとして、保存して下さい。ファイル名はスクリプト内で指定できます。
カテゴリ名,銘柄のコード の順に記載します。
ここでは、「電力」「225」カテゴリの2つを記載してあります。

電力,1939
電力,1941
電力,1942
電力,1959
電力,9501
電力,9502
電力,9503
電力,9504
電力,9505
電力,9506
電力,9507
電力,9508
電力,9509
電力,9511
225,1332
225,1334
225,1605
225,1721
225,1801
225,1802
225,1803
225,1812
225,1925
225,1928
225,1963
225,2002
225,2269
225,2282
225,2501
225,2502
225,2503
225,2531
225,2768
225,2801
225,2802
225,2871
225,2914
225,3086
225,3099
225,3101
225,3103
225,3105
225,3110
225,3382
225,3401
225,3402
225,3405
225,3407
225,3436
225,3861
225,3864
225,3865
225,3893
225,4004
225,4005
225,4021
225,4041
225,4042
225,4061
225,4063
225,4151
225,4183
225,4188
225,4208
225,4272
225,4324
225,4452
225,4502
225,4503
225,4506
225,4507
225,4519
225,4523
225,4543
225,4568
225,4689
225,4704
225,4901
225,4902
225,4911
225,5002
225,5020
225,5101
225,5108
225,5201
225,5202
225,5214
225,5232
225,5233
225,5301
225,5332
225,5333
225,5401
225,5405
225,5406
225,5407
225,5411
225,5541
225,5631
225,5701
225,5706
225,5707
225,5711
225,5713
225,5714
225,5715
225,5801
225,5802
225,5803
225,5901
225,6103
225,6301
225,6302
225,6305
225,6326
225,6361
225,6366
225,6367
225,6471
225,6472
225,6473
225,6479
225,6501
225,6502
225,6503
225,6504
225,6506
225,6508
225,6674
225,6701
225,6702
225,6703
225,6752
225,6753
225,6758
225,6762
225,6767
225,6770
225,6773
225,6841
225,6857
225,6902
225,6952
225,6954
225,6971
225,6976
225,7003
225,7004
225,7011
225,7012
225,7013
225,7201
225,7202
225,7203
225,7205
225,7211
225,7261
225,7267
225,7269
225,7270
225,7731
225,7733
225,7735
225,7751
225,7752
225,7762
225,7911
225,7912
225,7951
225,8001
225,8002
225,8015
225,8031
225,8035
225,8053
225,8058
225,8233
225,8252
225,8253
225,8267
225,8270
225,8303
225,8306
225,8308
225,8309
225,8316
225,8331
225,8332
225,8354
225,8355
225,8404
225,8411
225,8601
225,8604
225,8606
225,8628
225,8630
225,8725
225,8750
225,8766
225,8795
225,8801
225,8802
225,8803
225,8804
225,8815
225,8830
225,9001
225,9005
225,9007
225,9008
225,9009
225,9020
225,9021
225,9022
225,9062
225,9064
225,9101
225,9104
225,9107
225,9202
225,9301
225,9412
225,9432
225,9433
225,9437
225,9501
225,9502
225,9503
225,9531
225,9532
225,9602
225,9613
225,9681
225,9735
225,9737
225,9766
225,9983
225,9984

トラブルシューティング

  • ジョインベスト・エクスプレスからジョイ・エクスプレスに自動的にアップデートされた場合、ファイルのパスは変わらないようです。
    従って、スクリプトを次のように変更して下さい。
    appPath = "C:\Program Files\joinvestExpress\Module\JoinvestExpress.exe"
    
  • Windows VISTA,7の場合、「ユーザーアカウント制御の設定」を「通知しない」にする必要があるかもしれません。

    ユーザーアカウント制御の設定


使用規約

  • このソフトウェアを使用したことによる一切の損害について作者は責任を負いません。

履歴

2011-05-08
ネットストック・ハイスピード(松井証券)のログインに対応。CSVファイルをExcelで開かない前提に変更した。
2010-11-07
銘柄2.txtを利用し、カテゴリ名のフォルダ毎にCSVを保存できるようにした。銘柄のCode入力処理を変更。CSVにデータが無くファイルが開かれない場合に対処。
2010-08-12
スクリプトを改良。
2009-11-26
「ジョインベスト・エクスプレス」から「ジョイ・エクスプレス」に変更。
2008-08-25
掲載