ブログタイトルを「FX自動売買システム開発部」から「autoFX」に変更しました!

1本の足で1回だけ仕掛ける機能 最終版…ではなかった

Volume[0]を使うだけで良かった良くなかった

※2019/11/6追記
コメントで指摘いただいた件、2019/11/5 16時~2019/11/6 3時(サーバ時間)の約半日かけてTradeviewのILCデモサーバーでEURUSDの1分足を調査したところ、足切替り619回のうち、なんと162回(26%!!)もVolume[0]が1からではなく2以上でスタートしていました。中には30からスタートなんていう時もありましたし、足の切り替わりでもないのにVolumeが減るということも1回だけありました(おいおい)。足切り替わりの4回に1回は失敗するようでは、とても実用に耐えられないレベルですね。結局のところ、改善版の記事がベストということになってしまいました。残念です。朝倉さん、貴重なご指摘ありがとうございました。

1本の足で1回だけ仕掛ける機能1本の足で1回だけ仕掛ける機能 改善版で取り上げてきた1本の足で1回だけ仕掛ける機能シリーズ。

ついに最もシンプルなコードを発見しました。ソースはMT4に標準で付属しているMoving Average.mq4です。

1本の足で1回だけ仕掛けるには、現在のティックがちょうど足生成時(確定時あるいは切替り時と言い換えても可)かどうかを判定することがポイントになります。

過去の方法では何かしらごにょごにょしないといけなかったのですが、実はMT4に存在するVolume[0]を使えば良かったのです。

そうすれば1行で済みます。具体的にはこんな感じです。

// 足生成時ではないので処理を中断  
if(Volume[0] > 1) return;
// この後ろにエントリーに関するロジックを記述

Volume[]はその足におけるティックの数を返してくれます。

Volume[0]の場合、現在の足のティック数ということですね。

それが1ということは足ができたばかりということです。

足生成時のみ何かしたい、それ以外の時のみ何かしたいといったときに有効です。

Moving Average.mq4はサンプルEAとしては品質がよろしくありませんが、そんなものでも学びがあるんですね。

時々は他人の書いたプログラムを見てみように書いた通り、他人様のコードに触れることは良い勉強になります。

MQL4プログラミングの最新記事8件

>完全放ったらかしEA 「AutoEndlessCatchRange」

完全放ったらかしEA 「AutoEndlessCatchRange」

「本業が忙しい!」「でも資産運用したい!」そんなあなたに最適なEAです。兼業トレーダーの方はチャートを毎日みて分析してトレードする時間はなかなか確保できないものです。トレードは本EAに任せて、本業やプライベートの時間をもっと増やしませんか?元々は自分自身のために開発したEAですので、手抜き無しのガチものです。

CTR IMG