PU-METALのブログ

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

ポンドル前日高値安値ブレイクアウトシステム

単純に前日レンジをブレイクして、前日レンジか5日間レンジ平均の半値行ったら勝ち、戻ったら負け

 2001年から2011年迄動かしたら使い物になりそう

 あと負けやすいパターンを見つけそれをパスして、フォアードに取ってある2012年から2017年まで動かしてみて、ドローダウンも小さく儲かるようならこれからも行けるだろうと云うことで使い出します

 

表とプロシージャ一応

f:id:kohnodechu:20170203133738p:plain

Sub テスト()
Dim Rp As Range 'rpは日付
Dim Ek As Single, Eu As Single '前日半値エントリー -1はエントリーしない
Dim Ek1 As Single, Eu1 As Single '平均半値エントリー
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Rp In Selection
With Rp
If .Offset(, 1).Value = 83000 Then '8:45決済
If Ek > 0 Then
.Offset(, 16).Value = .Offset(, 6).Value - Ek
End If
If Ek1 > 0 Then
.Offset(, 18).Value = .Offset(, 6).Value - Ek1
End If
If Eu > 0 Then
.Offset(, 17).Value = Eu - .Offset(, 6).Value - 0.0002
End If
If Eu1 > 0 Then
.Offset(, 19).Value = Eu1 - .Offset(, 6).Value - 0.0002
End If
Ek = 0: Ek1 = 0: Eu = 0: Eu1 = 0
If .Offset(, 6).Value > .Offset(, 8).Value Then '8:45に超してたらやらない
Ek = -1: Ek1 = -1
End If
If .Offset(, 6).Value < .Offset(, 9).Value Then
Eu = -1: Eu1 = -1
End If
ElseIf .Offset(, 1).Value < 83000 And .Offset(, 1).Value > 64500 Then
'あさ8:30まではエントリーしない
If Ek = 0 Then
Ek = -1
End If
If Ek1 = 0 Then
Ek1 = -1
End If
If Eu = 0 Then
Eu = -1
End If
If Eu1 = 0 Then
Eu1 = -1
End If
Else
'勝ち
If Ek > 0 And Ek + .Offset(, 12).Value / 2 < .Offset(, 4).Value Then
.Offset(, 16).Value = .Offset(, 12).Value / 2
Ek = -1
End If
If Ek1 > 0 And Ek1 + .Offset(, 11).Value / 2 < .Offset(, 4).Value Then
.Offset(, 18).Value = .Offset(, 11).Value / 2
Ek1 = -1
End If
If Eu > 0 And Eu - .Offset(, 12).Value / 2 - 0.0002 > .Offset(, 5).Value Then
.Offset(, 17).Value = .Offset(, 12).Value / 2
Eu = -1
End If
If Eu1 > 0 And Eu1 - .Offset(, 11).Value / 2 - 0.0002 > .Offset(, 5).Value Then
.Offset(, 19).Value = .Offset(, 11).Value / 2
Eu1 = -1
End If
'負け
If Ek > 0 And Ek - .Offset(, 12).Value / 2 > .Offset(, 5).Value Then
.Offset(, 16).Value = -.Offset(, 12).Value / 2
Ek = -1
End If
If Ek1 > 0 And Ek1 - .Offset(, 11).Value / 2 > .Offset(, 5).Value Then
.Offset(, 18).Value = -.Offset(, 11).Value / 2
Ek1 = -1
End If
If Eu > 0 And Eu + .Offset(, 12).Value / 2 - 0.0002 < .Offset(, 4).Value Then
.Offset(, 17).Value = -.Offset(, 12).Value / 2
Eu = -1
End If
If Eu1 > 0 And Eu1 + .Offset(, 11).Value / 2 - 0.0002 < .Offset(, 4).Value Then
.Offset(, 19).Value = -.Offset(, 11).Value / 2
Eu1 = -1
End If
'エントリー
If Ek = 0 And Ek <> -1 And Ek1 <> -1 And .Offset(, 8).Value < .Offset(, 4).Value Then
Ek = .Offset(, 8).Value + 0.0002: Ek1 = .Offset(, 8).Value + 0.0002
.Offset(, 16).Value = 0: .Offset(, 18).Value = 0
End If
If Eu = 0 And Eu <> -1 And Eu1 <> -1 And .Offset(, 9).Value > .Offset(, 5).Value Then
Eu = .Offset(, 9).Value: Eu1 = .Offset(, 9).Value
.Offset(, 17).Value = 0: .Offset(, 19).Value = 0
End If
End If
End With
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub