[MT4]チャートを分析して、一番多いパターンが来たらトレードするEA

パターン分析トレードとは

今回はMT4のファイル関数を使って、パターン分析トレードシステムを作成しました。

何を言っているかというと、「このパターンが来たら次にこのパターンになる確率が最も高い」みたいなものを分析して、トレードします。

良く人間がやるパターン別のトレード法みたいなものをちょっと簡単に機械にやらせてみようって回です。

実はプログラミングでは「パターンが来たらトレードする」というのは得ですが、「どのパターンが多いか調べる」ということになると意外とやっている人が少ないって点もあります。

分析方法

まずチャートの状態をカテゴライズします。

ロウソク足で分類しても良いのですが、一度試してみた結果、出現パターンが均一化してしまう※ので、今回は移動平均線を使いました。

※これってロウソク足パターン分析&トレードが意味ないってことを表していると思うんですけどね… ロウソク足が陽線→陰線→陽線になったら次は〇線みたいな分析は50%50%になってしまうので、丁半賭博をやっていたということでしょうか…

それは置いといて..短期、中期、長期の3種類の移動平均線を用意し、それぞれの位置関係から、相場の状態を分類します。

分かりやすく全パターン羅列すると、
(短期、中期、長期)に並んでいる状態(1)
(短期、長期、中期)に並んでいる状態(2)
(中期、短期、長期)に並んでいる状態(3)
(中期、長期、短期)に並んでいる状態(4)
(長期、短期、中期)に並んでいる状態(5)
(長期、中期、短期)に並んでいる状態(6)
の6状態が存在することになります。

つまり、移動平均線が3本あれば必ずこの6つのどれかの状態にカテゴライズされるという訳です。

”状態”と”パターン”の定義

次に、
それぞれの状態に番号をつけ、

どのようにその状態が推移していったかをファイル関数を使って記録していきます。

例:状態1 → 状態2 → 状態1 → 状態3 →・・・

これをずーーと記録していくと、3つの移動平均線の状態推移を表した数字群が出来上がります。

次に、その長い数列の中から、もっとも出現確率が高いパターンを分析します。

このパターンは連続する数によって大きく変わるので、今回は3桁までとしました。

つまり、連続した3つの数字において、もっとも出現確率が高いパターンを割り出します。状態1→状態2ときたら次に状態?が最も気やすいというのが確率的にわかるって訳です。

ここが比較的大変なポイントですが、連続した3つの数字のパターンをすべて書き出し、それぞれに番号を振ります。先ほどのまでの数字は”状態”に対するナンバリングでしたが、これは”パターン”に対するナンバリングです。

具体的には、

状態1→状態2→状態1 のパターンをパターン1とする。

状態1→状態2→状態3 のパターンをパターン2とする。

のような感じです。

記録と検索

そして、その文字列を数列に対して検索し、何回検索できるかをカウントします。これならMQLの関数でも可能ですね。

それがすべて終了すると、もっとも出現頻度が高いパターンの番号が分かります。

そして、出現頻度が高いパターンが現れた際に、利益が取れる方向にエントリーするようにプログラムを組みます。

バックテストすると、レポートに下記のような表示がでます。
bandicam-2016-12-28-16-49-21-075

スタートする前のロウソク足1000本では、状態の変化回数は92回で、
652のパターンが最も出現頻度が高いということを示しています。

このコードの問題点としては、過去のロウソク足は1000本までしか参照できないというMT4の仕様がネックになっています。(この記事はかなり古いので今やればもっといけるかも)

推移だけを元にしているので、テストモデルはコントロールポイントでOKです。

下手に全ティックなどにすると、かなり重くなるかもしれません。

forex-mt4-mt5-ea

2019/1/1~2019/12/31 EURUSD H1バックテスト結果

ソースコード

EAのダウンロード

ソースコードのダウンロード

この投稿は役に立ちましたか? 役に立った 役に立たなかった 30 人中 29 人がこの 投稿 は役に立ったと言っています。

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

MT4EAを実際にデコンパイルしてみて、対策を考える

逆コンパイルとは 逆コンパイルというのは実行ファイルからソースコードファイルを復元することで、デコ

記事を読む

(MQL4)WEBサイトの情報を取得するやり方[EA]WebRequest

MT4のチャート上にWEBサイトの情報を参照する方法について紹介します。   背景

記事を読む

[MQL4]MT4でマルチタスク/マルチスレッド処理

MT4/MT5は基本的にC言語ベースなのでマルチスレッドはできません。 しかし、複数のチャート上で

記事を読む

[MT4]EAに口座縛り/期間限定縛りをかける種類と方法(MT5)

良いEAができた場合、身内で配布したい場合があります。しかし、知らない間に自分のEAが出回っていた場

記事を読む

利用可能なトレード系金融APIまとめ FIX API,REST API,OPEN API

今まで当たり前のようにMT4/MT5/TradeStationで開発をしてきましたが、そういえばAP

記事を読む

 

Translate »
上に戻る