相場判定 エクセル活用ロジック

1月20日21日にアップした暴落判定エクセルシートのロジックを書いてみます。
これは、ある程度VBAができる方とSBI証券口座をお持ちの方しか向かない記事ですので悪しからず。

イザナミ基本画面で全データをCSVコピーし
エクセルシートに配置した貼付けボタンを押すだけで以下の2つを処理します。

① 画面にあるように、各分析数値をエクセル上に表示させる機能
② 本日の結果データをハイパーSBI仕様のCSVファイルとして書き出す機能

②の機能により、ハイパーSBIの登録銘柄一覧に『CSVインポート』ができるようになります。
私が書き出しているのは

●新興市場売買代金10億以上の銘柄一覧(不定)
●前日比降順、昇順(各36銘柄)
●25日乖離降順、昇順(各36銘柄)
●5日乖離降順(36銘柄)

36銘柄としたのは、ハイパーSBI登録画面が1画面12銘柄表示となっており3ページで見終わるように、また集中してチャートを見るのに適した銘柄数であるからです。
ここで、表示された銘柄の3ケ月チャートを毎日見ていくと、毎日の旬の銘柄が手に取るようにわかってきます。
そのうえで、自分のシステムでは、なぜ、この銘柄が選択されなかったんだろうかなどと考えたりします。

さてロジックですが、B列からN列までに以下の計算式を配置します。
セルB2の計算式 =COUNTIF(AA2:AA
6000,">0.1")
セルC2の計算式 =COUNTIF(AA2:AA
6000,"<-0.1")
セルD2の計算式 =COUNTIF(AB2:AB
6000,">0.10")
セルE2の計算式 =COUNTIF(AB2:AB
6000,"<-0.10")
セルF2の計算式 =D2/(D2+E2)
セルG2の計算式 =COUNTIF(AA2:AA
6000,">0")
セルH2の計算式 =COUNTIF(AA2:AA
6000,"<0")
セルI2の計算式 =G2/(G2+H2)
セルJ2の計算式 =COUNTIFS(AB2:AB
6000,"<-0.25",AC2:AC5988,"<-0.10")
セルK2の計算式 =VLOOKUP(1000,T2:AB6000,9,FALSE)
セルL2の計算式 =VLOOKUP(1000,T2:Z6000,7,FALSE)
セルM2の計算式 =VLOOKUP(1002,T2:Z6000,7,FALSE)
セルN2の計算式 =AD2

イザナミ側の順番は以下のとおりです。
①コード
②市場
③銘柄
④始値
⑤高値
⑥安値
⑦終値
⑧前日比
⑨移動平均乖離率25日
⑩移動平均乖離率5日
⑪期間上昇率10日(任意でかまいません。)
⑫売買代金
⑬STOP高(終値)
⑭東証一部騰落レシオ
以下は任意です。

以下のコードをコピペしてください。
下記コードの中にある ***パス*** の部分には
CSVファイルを書き出す自分のパスとしてください。

また、Documentsフォルダ内に Aランキング銘柄 というフォルダを作ってください。これは、フォルダ名を Aランキング銘柄 とすることで、ハイパーSBIからインポートするときにフォルダを先頭に並ばせ見つけやすくするためです。
もちろん、自分独自の任意のパスを記入していただいてかまいません。


Sub Macro2()
Dim i As Integer
Dim fileNo As Integer

Application.ScreenUpdating = False

Columns("T:AL").Select
Selection.ClearContents
Range("T1").Select
ActiveSheet.PasteSpecial Format:="Unicode テキスト", Link:=False, _
DisplayAsIcon:=False, NoHTMLFormatting:=True

Range("AG:AG").Select
Selection.Replace What:="百万円", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

'最終行を代入
endr = Cells(Rows.Count, 2).End(xlUp).Row

Cells(endr + 1, 1) = Date
Cells(endr + 1, 2) = Range("B2")
Cells(endr + 1, 3) = Range("C2")
Cells(endr + 1, 4) = Range("D2")
Cells(endr + 1, 5) = Range("E2")
Cells(endr + 1, 6) = Range("F2")
Cells(endr + 1, 7) = Range("G2")
Cells(endr + 1, 8) = Range("H2")
Cells(endr + 1, 9) = Range("I2")
Cells(endr + 1, 10) = Range("J2")
Cells(endr + 1, 11) = Range("K2")
Cells(endr + 1, 12) = Range("L2")
Cells(endr + 1, 13) = Range("M2")
Cells(endr + 1, 14) = Range("N2")
Cells(endr + 1, 18) = WorksheetFunction.CountIf(Range("AE4:AE6000"), "○")
Cells(endr + 1, 40) = CLng(WorksheetFunction.SumIf(Range("U2:U6000"), "東証1部", Range("$AG2:AG6000")) / 1000)
Cells(endr + 1, 41) = CLng(WorksheetFunction.SumIf(Range("U2:U6000"), "東証2部", Range("$AG2:AG6000")) / 1000)
Cells(endr + 1, 42) = CLng(WorksheetFunction.SumIf(Range("U2:U6000"), "JASDAQ", Range("$AG2:AG6000")) / 1000)
Cells(endr + 1, 43) = CLng(WorksheetFunction.SumIf(Range("U2:U6000"), "マザーズ", Range("$AG2:AG6000")) / 1000)
Cells(endr + 1, 19) = Cells(endr + 1, 40) & " " & Cells(endr + 1, 41) & " " & Cells(endr + 1, 42) & " " & Cells(endr + 1, 43) & " " & Cells(endr + 1, 42) + Cells(endr + 1, 43) & " " & Cells(endr + 1, 40) + Cells(endr + 1, 41) + Cells(endr + 1, 42) + Cells(endr + 1, 43)
Cells(endr + 1, 17) = (Cells(endr + 1, 41) + Cells(endr + 1, 42) + Cells(endr + 1, 43)) / (Cells(endr + 1, 40) + Cells(endr + 1, 41) + Cells(endr + 1, 42) + Cells(endr + 1, 43))

fileNo = FreeFile

'前日比大銘柄エクスポート
Range("T:AJ").Sort Key1:=Range("AA2"), Order1:=xlDescending, Header:=xlYes

Open "C:\Users\***パス***\Documents\Aランキング銘柄\①比大.CSV" For Output As #fileNo
For i = 2 To 37
Print #fileNo, "'" & Cells(i, 20) & "," & Cells(i, 22) & ",TKY,,,,,----/--/--"
Next
Close #fileNo


'新興市場売買代金大エクスポート
Range("T:AJ").Sort Key1:=Range("AG2"), Order1:=xlDescending, Header:=xlYes

Open "C:\Users\***パス***\Documents\Aランキング銘柄\②代金.CSV" For Output As #fileNo
For i = 2 To 6000
If Cells(i, 21) = "JASDAQ" Or Cells(i, 21) = "マザーズ" Or Cells(i, 21) = "東証2部" Then
Print #fileNo, "'" & Cells(i, 20) & "," & Cells(i, 22) & ",TKY,,,,,----/--/--"

End If
If Cells(i, 33) < 1000 Then Exit For
Next
Close #fileNo

'25日高乖離銘柄エクスポート
Range("T:AJ").Sort Key1:=Range("AB2"), Order1:=xlDescending, Header:=xlYes
Open "C:\Users\***パス***\Documents\Aランキング銘柄\③25離大.CSV" For Output As #fileNo
For i = 2 To 37
Print #fileNo, "'" & Cells(i, 20) & "," & Cells(i, 22) & ",TKY,,,,,----/--/--"
Next
Close #fileNo

'5日高乖離銘柄エクスポート
Range("T:AJ").Sort Key1:=Range("AC2"), Order1:=xlDescending, Header:=xlYes
Open "C:\Users\***パス***\Documents\Aランキング銘柄\④5離大.CSV" For Output As #fileNo
For i = 2 To 37
Print #fileNo, "'" & Cells(i, 20) & "," & Cells(i, 22) & ",TKY,,,,,----/--/--"
Next
Close #fileNo

'前日比小銘柄エクスポート
Range("T:AJ").Sort Key1:=Range("AA2"), Order1:=xlAscending, Header:=xlYes

Open "C:\Users\***パス***\Documents\Aランキング銘柄\⑤比小.CSV" For Output As #fileNo
For i = 2 To 37
Print #fileNo, "'" & Cells(i, 20) & "," & Cells(i, 22) & ",TKY,,,,,----/--/--"
Next
Close #fileNo

'25日低乖離銘柄エクスポート
Range("T:AJ").Sort Key1:=Range("AB2"), Order1:=xlAscending, Header:=xlYes
Open "C:\Users\***パス***\Documents\Aランキング銘柄\⑥25離小.CSV" For Output As #fileNo
For i = 2 To 37
Print #fileNo, "'" & Cells(i, 20) & "," & Cells(i, 22) & ",TKY,,,,,----/--/--"
Next
Close #fileNo

ActiveWindow.ScrollRow = endr - 25

End Sub


運用結果への責任は負いません。各自自己責任でお願いします。
どこかにミスがあるかもしれませんので、その場合はコメントしてください。


相場観測表



株式システムトレード ブログランキングへ
スポンサーサイト

コメント

承認待ちコメント

このコメントは管理者の承認待ちです

  • 2016/01/31 (Sun) 20:32
  • #
Re: エクセルに取り込むイザナミの設定

コンチさま はじめまして

コメントをいただきありがとうございます。
ブログにT列以降の配置画像をアップします。
実際に貼付けが終わった段階での画像です。
イザナミ側をこの順序に配置してください。

また不明な点がありましたらコメントください。

  • 2016/01/31 (Sun) 21:40
  • キー坊 #-
  • URL
Re: エクセルに取り込むイザナミの設定

それと、プロシージャをもう一度コピーしなおしてVBA画面に張り付けてください。
1か所変更しています。
最終行判定を1列としておりましたが下記のとおり2列目に変更しています。

endr = Cells(Rows.Count, 2).End(xlUp).Row

  • 2016/01/31 (Sun) 22:05
  • キー坊 #-
  • URL

コメントの投稿


管理者にだけ表示を許可する