取引結果やバックテストをMT4のチャート上に表示するインジケータ

 

ダブルオーという方のブログにこういうインジケータがあります。

http://kimama00.atgj.net/indicators-a%20to%20e-/00-disptrade_v102

 

10年くらい前に更新が止まってますので、勝手に掲載してもいいかなという安易な気持ちで自分の簿微禄として書いています。

よく取引履歴のスクショをTwitterに呟いている人がいますが、そういう取引履歴やゴゴジャン等で取得できるバックテストの結果をMT4のチャート上に表示するツールとして使えます。

3年前くらいに見つけて、テキストファイル入力で使っていたのですが、最近CSV入力でも表示できました。やっと正しい使い方がわかりました。

 

・00-DispTrade_v102を使ってMT4チャート上に表示する方法。

方法は3種類あります。

①パラメータの入力に直接入力

f:id:motiofx:20200824103310p:plain

直接入力

tEntry0:エントリー時間

pEntry0:エントリーレート(買いの場合はそのまま、売りの場合は"-"をつける。)

tExit0:エグジット時間

pExit0:エグジットレート

9個までしか入力できません。


②テキストファイルに入力

f:id:motiofx:20200824103208p:plain

テキストファイルに入力

上図のようにtrade.txtとした場合は、trade.txtを下図のFilesフォルダ内に置いておきます。

f:id:motiofx:20200824103638j:plain

ファイルの保存場所

フォーマットは以下のようになります。

USDJPY, 2019/04/29 15:30:00,111.700, 2019/04/29 16:55:00,111.800
USDJPY, 2019/04/29 19:35:00,-111.776, 2019/04/29 23:55:00,111.630

トレード数100個まで表示できました。

 

③csvファイルに入力

f:id:motiofx:20200824103233p:plain

CSVファイルに入力


上のtrade.txtと同様にFilesの中にtrade.csvを保存します。

フォーマットは、下図のようになります。これも100個まで。

 

f:id:motiofx:20200826174059p:plain

CSV入力



・MT4に表示

 

f:id:motiofx:20200826175009p:plain

MT4に表示

分析に役立つと思います。

ソースも公開されてますので、デフォルトの数字など修正して使っています。

 

・ 追記。

ゴゴジャンからダウンロードできるCSVは1回テキストエディタで開いてUTF-8からANSIでsaveしないとだめです。と下記の記事を発見しております。

 

note.com

 

また、ゴゴジャンCSVから上記フォーマットに変換するのがめんどくさいのでマクロを使って変換するわけですが、下記のように記述して使っています。

' Macro3 Macro gogojungle
'
Dim rowData As Long
rowData = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox "最終行は" & rowData & "です"

Range("C1").Select
For i = 1 To rowData Step 1
baibai = Left(Cells(i, "C"), 2)
If baibai = "売り" Then
kakaku = Left(Cells(i, "D"), 7)
Cells(i, "D") = -kakaku
End If
Next i
Columns("E").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft

Columns("G").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft

Columns("C").Select
Selection.Delete Shift:=xlToLeft

Currency1 = Left(Cells(2, "B"), 3)
Currency2 = Right(Cells(2, "B"), 3)
Currencypare = Currency1 + Currency2

Columns("B").Select
Selection.Delete Shift:=xlToLeft

Columns("A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

For i = 1 To rowData Step 1
Cells(i, "A") = Currencypare
Next i

 

とりあえず、こんな形で行けると思います。

 以上です。