MT4でまた新たな自動売買システム(EA)を作ってみました。
色々なEAを作ってデモ口座で24時間体制で走らせていくうちに、
「やっぱレンジ相場とトレンド相場の戦略は分けないとダメだな…」
ということがわかってきました。
さっそくEAで相場の状況を判断するコードを書いてみましたので、紹介します。
EAにレンジ相場とトレンド相場を判断させる方法
当たり前ですが、逆張り用のシステムはレンジ相場の時には利益を出しやすいです。
でも、一旦レンジ相場が終わり、トレンドが発生してしまうと、逆張りシステムは損失続きになってしまいます。
なので、シンプルに、
・トレンド相場になっていると判断したら、素直に順張りを行う
・レンジ相場だと判断したら、逆張りに切り替える
という戦略を使い分けてトレードしてくれるようなプログラムを書いてみようと思いました。
さっそくメタトレーダーの自動売買言語であるMQLを使ってプログラミング。
「でも、具体的にどうなったらレンジ相場と判断して、どうなるとトレンド相場だと判断するんかい?」
という話ですよね。
相場の流れの転換ポイントがわかれば、誰も苦労しませんからね…汗w
とはいえ、単純化して考えれば、ある程度は相場の流れ方を読み解くことができます。
5分足でトレードしているのですが、上位足である1時間足の流れで相場の方向性を確認するようにプログラムしてみました。
あまり複雑に考えずに、シンプルに、
・現在の価格が、1本前の1時間足の中に収まっていたら、レンジ相場
・上にはみ出ていたら上昇相場
・下にはみ出ていたら下降相場
と、判断させます。
↓のようなイメージですね。
今の価格が、直近1時間のレンジ内に収まっているときは、レンジ相場だと判断して、逆張りで積極的に売ったり買ったりして、ドテン売買を仕掛けていきます。
この手法は特に日本時間の昼間〜午後などの動きがあまりない時間帯に、割といつも勝てています。
で、ニューヨーク市場が始まってトレンドが起きたりしやすい時間帯には、必然的に順張りに切り替わり、トレンドを追いかけるように素直にトレードしてくれるというわけですな。
もちろん、日本時間の日中にも大きなトレンドが発生することもあります。
逆にニューヨーク時間でも、ずっとレンジでヨコヨコの動きになったりもしますよね。
なので、
「何時〜何時まではレンジトレードで、何時〜何時は順張りにしよう」
と、時間で区切って決めてしまうと、ちょっと微妙。
「価格のことは価格に聞け!」
という格言にもあるように、シンプルに上位足である1時間足の状況を見るのが一番かなと思います。
1時間足の状況を関数にして宣言する
というわけで、相場の状況を把握するための関数をさっそく設定していきます。
まずは関数を宣言する必要があります。
「状況」ということなので、
JKという関数を宣言しておきます笑。
//レンジ相場
int JK1R
//上昇トレンド
int JK1UU
//下降トレンド
int JK1DD
こんな感じで、3パターンの関数を宣言しておきます。
で、プログラムの本文の方には、以下のように書いておきます。
//価格が1時間足よりも上抜けたら、上昇トレンドと判断。
if(Bid>(iHigh(NULL,PERIOD_H1,1)))
{JK1UU=1;JK1DD=0;JK1R=0;}
//価格が1時間足よりも下抜けたら、下降トレンドと判断。
if(Bid<(iLow(NULL,PERIOD_H1,1)))
{JK1DD=1;JK1UU=0;JK1R=0;}
//価格が1時間足内に収まっていたら、レンジと判断。
if(Bid<=iHigh(NULL,PERIOD_H1,1)&&Bid>=iLow(NULL,PERIOD_H1,1))
{JK1R=1;JK1UU=0;JK1DD=0;}
これで、その時のリアルタイムの相場の状況が、
JK1R
JK1UU
JK1DD
の3パターンのどれかに当てはまります。
あとはエントリー注文する際の条件にこの各関数を当てはめていって、利食いと損切りをそれぞれ設定すればOKになります。
まとめ
さあさあ…果たして、この3つの状況認識によって、トレードの勝率は上がるのでしょうか?
1日に2〜30トレードほど行う5分足のスキャル系のトレードなので、48時間くらい回してみれば、ある程度勝率がわかってきそうですね。
このくらいシンプルなトレードルールで、コンスタントに勝てたらかなりテンション上がるんですけどね〜。
とりあえず、オアンダジャパン のデモ口座にて、絶賛稼働中でございます。
また収支を報告しますね。
記事カテゴリ