PU-METALのブログ

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

ドル円システムのEA化

ほんと良いのでEA化しようと思った

 

昔々fx-onがEAプログラミングセミナーをされていてそれを受けさせて頂きました。それから225に集中して触ってなかったのでほとんど忘れたような

 

でも簡単なロジックなので作れるだろうと、そのセミナー資料引っ張り出して作ってはみたもののどうしてもエントリーしてくれない

 

それでセミナーに無料質問チケットというのが10枚付いていて全く使ってなかったので使えるか聴いてみたところ、もうセミナーもやってないし・・・

でEAつくーるというソフトを紹介され、月1980円で使えますの、それを使ってみました

 

ロジック全て実装は出来ませんでしたが改造すれば良いやと

 

出て来たプログラムが難解・・・僕作ったの150行くらいだったのにこれは500行以上(汗

1日掛けてやっとこういう構造かと分かった程度。まだ改造するためには何日かかかりそうなのです

 

使えるサイトなんかここにメモしとこうと

mt4-traders.com

 

 

 

 

 

 

 

ドル円完成

取り敢えずグラフ

f:id:kohnodechu:20170225142826p:plain

ポンドルと同様にやってみたら良いの出来ました

ポンドルはっぱ癖が悪い。ドル円は素直

良いわ~DD小さいから1万で千通貨ってところか

複利でやったら年利100%目指せるかも?

捕らぬ狸の皮算用の可能性大だけどね

 

引き続きユーロドルやってみよう。きっと素直

 

追記

日単位でDDを計算してみた

 

2001ー2016のMAXDD6600円ほど

複利でやるんじゃ余裕見て1万3千円で千通貨てとこか

 

ついでにDD求めるプロシージャ置いとこう

Sub maxdd() 'MDDの計算。上から下へ横へ
Dim P As Long '縱
Dim Q As Long '横
Dim Pd As Single 'DD
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Q = 1 To 5
For P = 0 To Range("a1048576").End(xlUp).Row - 28 '都度変える
With Range("a28") '初日 都度変える
If .Offset(P, Q).Value <> "" Then
Pd = Pd + .Offset(P, Q).Value
If Pd >= 0 Then
Pd = 0
ElseIf Pd < Range("a15").Offset(, Q).Value Then 'MDD欄。都度変える
Range("a15").Offset(, Q).Value = Pd '都度変える
End If
End If
End With
Next
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

カーブフィッテイング

損益の比率を変えて最適値を探してみた

フィボナッチ使って62、50、38の組み合わせ9通りで1番良いのを使って出来た損益累計曲線

f:id:kohnodechu:20170210153629p:plain

2011年迄は当然上がったのだがフォアード期間がパッとしない

カーブフィッテイングてもんだったのね

スパッと半値で行こう

これ単独では使う気しないので他の通貨ペアでもやってみよう

 

 

 

ポンドルブレイクアウトシステム一応完成

取り敢えず損益累計曲線

f:id:kohnodechu:20170210102556p:plain

2012年からのフォアード期間に入ってもMAXDD更新することも無く横這い

ここ2年なんか年利100%有りそう。150ドルで1000通貨くらい

長い目で見たら年利20~30%でこのまま上がって行くのでは?

 

使った条件は前日の高値安値更新と上下とレンジの大小

この組み合わせで勝率の高そうなものを使ってみました

 

基本この方法で損益の比率を変えてみたり時間を変えてみたりして利益の向上を図ってみます

 

 

 

条件付き書式

EXcel2007から簡単にセルの色付けが出来るようになり

フィルターを検討するのにそれを使っている

こんな感じ

f:id:kohnodechu:20170208110136p:plain

取り敢えず条件にもよるが、水曜日はトレンドが出にくいのかブレイクアウトには向いてない気がした。今日も下に行くのかと思いきや戻ったものね

良い条件を探すが

今日のポンドルまた21時間線に跳ね返されるだろうと適当に売り上がりつつ、使えるパターンを求めてを求めてマクロ動かしてみた

前日高値安値ブレイクは取り敢えず正義ということは判ったが、どのパターンも勝率が60%行かない。DDはまだ計算してないが大きいことが予想され・・・

時間、曜日フィルターでも使ってみて、駄目だったら損益の比率を変えてみるかってところなのです

 

ここまでの表とプロシージャ

f:id:kohnodechu:20170207124318p:plain

Sub それぞれ()
Dim P As Long '行
Dim Q As Long '列
Dim Rp As Range
Set Rp = Range("a21")
Dim Tk As Long, Ys As Long, Jg As Long, Ds As Long '条件一致
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Rp
For Q = 12 To 75 '買い
For P = 29 To Range("a1048576").End(xlUp).Row
If .Offset(, Q) = "" Or .Offset(, Q).Value = Range("c" & P).Value Then
Tk = 1
End If
If .Offset(1, Q) = "" Or .Offset(1, Q).Value = Range("d" & P).Value Then
Ys = 1
End If
If .Offset(2, Q) = "" Or .Offset(2, Q).Value = Range("e" & P).Value Then
Jg = 1
End If
If .Offset(3, Q) = "" Or .Offset(3, Q).Value = Range("f" & P).Value Then
Ds = 1
End If
If Tk * Ys * Jg * Ds = 1 And Range("i" & P) <> "" Then
.Offset(P - 21, Q).Value = .Offset(P - 21, 8).Value
End If
Tk = 0: Ys = 0: Jg = 0: Ds = 0
Next
Next
For Q = 76 To 139 '売り
For P = 29 To Range("a1048576").End(xlUp).Row
If .Offset(, Q) = "" Or .Offset(, Q).Value = Range("c" & P).Value Then
Tk = 1
End If
If .Offset(1, Q) = "" Or .Offset(1, Q).Value = Range("d" & P).Value Then
Ys = 1
End If
If .Offset(2, Q) = "" Or .Offset(2, Q).Value = Range("e" & P).Value Then
Jg = 1
End If
If .Offset(3, Q) = "" Or .Offset(3, Q).Value = Range("f" & P).Value Then
Ds = 1
End If
If Tk * Ys * Jg * Ds = 1 And Range("l" & P) <> "" Then
.Offset(P - 21, Q).Value = .Offset(P - 21, 11).Value
End If
Tk = 0: Ys = 0: Jg = 0: Ds = 0
Next
Next
End With
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub