PU-METALのブログ

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

フラクタルでシステム

使えそうなの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秒で終了

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一目均衡表

あまりにもダメダメシステムが出来たので久々の更新

 

2001年から2010年までの日足データを使い、一目均衡表の各線や雲の位置を見て売買したら儲かったというパターンを選んでみた

 

それで2011年からも右肩上がりならOKなのですが

 

結果

f:id:kohnodechu:20170830132104p:plain

 

試行回数が少ないとこうなることが多々あるんです

もうちょっと別のパラメータを試してみてあかん様じゃ捨てよう

 

 

 

 

日足ブレイクアウト改修

最近パッとしたのが出来ず・・・

でも経験値だけは上がっててそれを踏まえてメインにしている日足ブレイクアウトを改修してみた

f:id:kohnodechu:20170723144748p:plain

 

この売りと買いが補完し合う感じが最高!

早速EAも直してみるとしよう

変数使って範囲指定したりするとき

頭悪いのでダブルクォーテーションの位置でいつも悩む

適当に色々やってみて何とかなるのだが

最近使ったのちょっとメモ

 

.Value = "=sum(" & Retu & "$" & Sho & ":" & Retu & "$" & Matu & ")"

 

.Offset(, 19).Value = WorksheetFunction.Average(Range("g" & .Row - 84 & ": g" & .Row - 1))

 

利大損小型システム

225時代から長らくPIVOTの研究をしています

しろふくろうさんのトレンドステップというシステムが使えるんじゃ無いかとシステムを作ってみました

負けるときはサクッと負けるのだが利益が乗ると暫く持つような。勝率は40%行けば良い方

 

損益累計曲線

ドル円

f:id:kohnodechu:20170623164848p:plain

 

ポン円

f:id:kohnodechu:20170623164945p:plain

 

ポンドル

f:id:kohnodechu:20170623165055p:plain

 

相変わらずパッとしないのだが取り敢えずドル円ドル円EA化してみよう

久々にメモ

エクセルには向かってるのですが最近パッとしないので更新する気も起こらず

今日はちょっと悩んだのでメモしとこうと

 

今向かってるのはこんな表

f:id:kohnodechu:20170617134325p:plain

 

この使えるパターンを探す表でO9から有る、サンプリングした年ごとの損益を見るやつ

これには=SUM(O$16931:O$17988)こんな関数が入っていて

毎回行を調べて置換置換で使っていたのですが、面倒くさくなりマクロで自動化しようと

で作ったマクロは最下ですが

これをFor Eachで全部選択し実行すると時間がかかるかかる

15分たっても終わらなくて、こら手でやった方が早いわと途中でブレイクした次第です

 

それで最初に行を調べさせて横に動かせば早いかとか色々考えましたが

結局、1列目だけマクロを使いコピーして全体に貼付で落ち着きました

こうすればものの1分もかかりません

 

あ~スッキリ

 

Sub 年別集計() '
Dim Rp As Range
Dim P As Long
Dim Retu As String
Dim Sho As Long
Dim Matu As Long
Dim Nen As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Rp In Selection
With Rp
Retu = Split(.Address, "$")(1)
Nen = Range("n" & .Row).Value
For P = 40 To Range("a1048576").End(xlUp).Row
If Left(Range("a" & P).Value, 4) = Nen And Left(Range("a" & P).Offset(-1).Value, 4) <> Nen Then
Sho = P
ElseIf Left(Range("a" & P).Value, 4) = Nen And Left(Range("a" & P).Offset(1).Value, 4) <> Nen Then
Matu = P
Exit For
End If
Next
.Value = "=sum(" & Retu & "$" & Sho & ":" & Retu & "$" & Matu & ")"
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub