PU-METALのブログ

日銀にはウンザリなので外貨専になりました

フィボナッチ数列を計算するマクロ

頭の体操にトレーダーらしくフィボナッチに挑戦

 

やはり頭弱いもんだから図描いたり色々悩みまくったが結局解らなかった

それで適当にプロシージャああでも無いこうでも無いやって完成

理解はあとでゆっくりlol

 

Sub fibo()
Dim P As Long
Dim F As Long
Dim F1 As Long
Dim F2 As Long
F1 = 1
For P = 1 To 10
F1 = F1 + F2
F2 = F
F = F1
Range("a" & P).Value = F
Next
End Sub

f:id:kohnodechu:20171115172201p:plain

 

丸を描くマクロ

少し頭の体操にとやり出したが、頭弱いもんで30分以上かかってしまった

Cellsって普段使わないから.Offsetでやってみたり・・・

こんなのには非常に便利

 

Sub maru()
Dim x As Long
Dim y As Long
For x = 4 To 260
For y = 4 To 260
If Int(Sqr((x - 132) * (x - 132) + (y - 132) * (y - 132))) = 128 Then
Cells(x, y).Interior.ColorIndex = 1
End If
Next
Next
End Sub

f:id:kohnodechu:20171113174033p:plain

4本値並べて日時が狂ってたら挿入するやつ

この頃NT倍率に興味が出てやってるところ

日経とTOPIX並べて同日時で比較したいのだが、日時がズレる場合が有るのよね~

通貨ペア同士の比較でも常に有ることだし基本として置いとこう

 

これは2011/2/14~11/18で225先物は昼休みが無くなったのにTOPIXの方には有る

それを修正するのに

225の4本値までをコピー。TOPIXに挿入。11時の4本値を挿入したセルに貼付

f:id:kohnodechu:20171110104828p:plain

をこれに

f:id:kohnodechu:20171110105353p:plain

 

マクロの自動記録

Sub Macro2()
Range("A49444:F49448").Select
Application.CutCopyMode = False
Selection.Copy
Range("H49444").Select
Selection.Insert Shift:=xlDown
Range("J49443:M49443").Select
Application.CutCopyMode = False
Selection.Copy
Range("J49444:M49448").Select
ActiveSheet.Paste
End Sub

 

選択した範囲で使えるように整理した

Sub 挿入()
Dim Rp As Range 'rpは日付
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Rp In Selection
With Rp
If .Offset(, 1).Value = 0.46875 Then
.Resize(5, 6).Copy
.Offset(, 7).Insert Shift:=xlDown
.Offset(-1, 9).Resize(1, 4).Copy
.Offset(, 9).Resize(5, 4).PasteSpecial
End If
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

 

 

 

民主党相場を懐かしむシステム完成

家の選挙区は共産党公明党2者択一と云う究極の選択みたいな

誠に残念ながら熱心な学会員の勝利

 

しかし恐い時代になったもんだ

アメリカと北朝鮮やり出したら絶対ミサイル飛んでくるで

損切りだけはしっかり入れて。土日またぐのは注意しよう

今朝は買いポジばかりでV決済でしたが

 

民主党時代の逆張り有利相場で使えるブレイクアウトならいつでも使えるだろうシステムその2か3

114円ブレイクしたら買い50銭指値指値入れて刺さらなきゃ半日後か翌日決済な感じ

 

グラフ

f:id:kohnodechu:20171023110245p:plain

 

良い感じなので早速EA化してみる

 

 

 

 

 

足の色だけ見たシステム

見るのは前日当日の日足の色と今と前回の4時間足の色あと30分足の色

エントリーするきっかけは30分足の反転で買いのみ

指値1円刺さらなければ翌朝決済

それといつもと違うのはミンス党時代の成績でパターンを選んでみたこ

あの糞相場に使えるんじゃいつでもいけるんじゃ?と思ったから

 

で損益累計曲線

f:id:kohnodechu:20170927164048p:plain

 

EA化してみよう

 

 

フラクタルでシステム

使えそうなの1つ出来た気がする

 

こんな

f:id:kohnodechu:20170913111955p:plain

 

フラクタルフラクタルの期間を11にした物だけを使用

30分足フラクタルの点灯でエントリーし逆指値は1円。逆指値に刺さらなきゃ翌朝決済

その条件で2010年迄のデータから良いパターンを選んでみました

民主党が政権取らない限り使えるでしょうlol

 

DDが少し大きいがEAにしてから逆指値を少し最適化してみようと思う

 

 

マクロの実行を途中で止める

無限ループじゃCtrl+Breakですが

処理量が膨大でいつまでも終わらず帰られへんやんけな時、それじゃまたいつになったら止まるか判らないのね。そんな時用

 

先ずタスクマネージャーからエディターを再起動して保存ボタンを

これで実行途中の状態が保存されます

エクセル本体はまだ固まったままなのでタスクマネージャーから終了

これで帰れます

 

昨夕やっちまった例

こんな表

f:id:kohnodechu:20170908132950p:plain

この水色の20万行*4列に有る価格で1行下の価格が同じならそれを消すマクロ

 

Sub 下が同じなら消す()

Dim Rp As Range 'rpはk-n全部
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Rp In Selection
With Rp
 If .Value = .Offset(1).Value Then
  .Offset(1).ClearContents
 End If
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

こんな簡単なやつですぐ終わるだろうと思ってたらところがどっこい

1時間20分で9万行しか処理出来てませんでした

 

それでプロシージャに少し手を加えてみました

If .Value = .Offset(1).Value Then

 .Offset(1).ClearContents
End If

この部分を

If Rp <> "" Then
 If .Value = .Offset(1).Value Then
  .Offset(1).ClearContents
 End If
End If

とそのレンジにデータが有れば処理するというのを追加

 

すると何と5分30秒で終了

 

早く処理させるプロシージャ書くよう心がけましょうね