Wizard In The Market
システムトレードの魔術師

*

インジケータ導入時と稼動時の表示が違う

公開日: : 最終更新日:2015/01/13 その他

こんにちは。キリンです。
タイトルの件、巷に出回ってるインジケータによくある現象ですよね。

インジケータ導入時はちゃんとサインが出るのに….
・稼動し続けてると表示しなくなる
・連続してサインが出続ける
・サインが消えたり点いたり(リペイント)する・・・etc

リペイントの問題はどうしようもないというか、
仕様なので仕方ないですが、
連続してサインが出続けたり、
稼動し続けているとちゃんと表示しなくなるのは困りますよね。
どうしてそのようなことが起こるのでしょうか?
■リペイントの問題
作成者の意図からして仕方ないことが多いですが、
リペイントの問題は、インジケータを表示している足より右側の表示を参照することより起こります。
ZigZagのインジケータなどがその典型です。
矢印やインジケータの曲がりの位置を、表示部の右側の動きを参照して表示させているのです。
言い換えれば、未来の動きをあらかじめ参照した上で表示させている。
リペイントするインジケータが勝てそうに見えるのは仕方ありません・・・。
この問題については有名ですよね。
■連続してサインが出続ける
このインジケータに出会ったときは、何が目的で作っているのかよく分かりませんでした。
作成者がちょっと調べれば動作がおかしいことは分かっているはずなのに。
しかも、僕が見つけたのは有償の商材でなんですよね・・・。
名前の明記は避けますが、こういうのも出回っているみたいです。
もちろん、表示させたときはすごい勝てるように見えるけど・・・
■超直感!MT4(MQL)プログラミング講座■
動かしてみるとひどい。
■超直感!MT4(MQL)プログラミング講座■
原因は作成者の怠慢としか言えません・・・。
せめてリペイントくらいにしようよ….
■稼動し続けていると表示しなくなる
改善の余地がある内容かもしれません。
不具合であることは間違いないでしょう。
考えうる原因の多くは、初回起動時はちゃんと動くが、
通常稼動状態になると、データが当てはめられていない変数を使用してしまっています。
たとえば、下記のようなプログラムがあったとします。

int start() {
 //—-

 EX="";
 int limit = BarsIndicatorCounted();
 double atr[];
 ArrayResize(atr,Bars);
 for(int i=i=limit1;i>=0;i–){
  atr[i]=iATR(NULL, 0, 16, i);
  if(atr[i]>atr[i+1]){
    //インジケータのバッファに値を代入する
  }
 }
 return(0);
}

一見、正常に動作しそうですよね。
確かに初回起動時はさほど問題ありません。
しかし、常時稼動時には問題が生じます。
それはなぜでしょうか?
問題はこの部分にあります。
if(atr[i]>atr[i+1])
このatr[i+1]には値が割り当てられていない可能性があるのです。
常時稼動時、変数limit基本的に i には1か2しか割り当てられません。
i=limitのときの動作を考えて見ましょう。
atr[limit]>atr[limit+1]となりますよね。
atr[limit]には、
atr[i]=iATR(NULL, 0, 16, i);
によって値が割り当てられています。
しかしながら、
atr[limit+1]には値が割り当てられていないのです。
(atrはローカル変数だということが重要です。)
このようなプログラムを組む場合には、atrをグローバル変数にしなければなりません。
(もしくはatr[limit+1]にあらかじめ値を割り当てておく)
僕の場合、このようにします。

atrをグローバル変数にして、ローソク足が新しくなった際に値を自動で移動させます。
(インジケータのバッファにすれば勝手に移動してくれます。)
こうすれば、atrには常に値が代入され保存されているので、
動作不良を起こすことはありません。
ご参考になれば幸いです。
お読みいただきまして、ありがとうございます。

にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 51 follow us in feedly

関連記事

no image

11/1のFXの成績

趣味でFXをしているので、その成績を今日からまとめていきたいと思います。そのぐらいしないと、資金管理なんてできないよ

記事を読む

no image

uninitialized constant Rake::DSL rails 3.2.1

なんかあちこちで rake-0.8.7 を使えという記述を見てきましたが、全然動かなかった。rake 0.9.2.2

記事を読む

no image

11/13, 14 運用結果

<colgroup> </colgroup>バイナリオプション日付曜日取

記事を読む

no image

12/1, 2, 3, 5, 6 運用結果

<colgroup> </colgroup>バイナリオプション日付曜日取引

記事を読む

no image

チャーチストへの夢 part2

おはようございます。キリンです。 ブログのタイトルでもある「チャーチスト」ですが、 チャートだけで分析を行っていく人のこ

記事を読む

no image

【日記】「リアル」(井上雄彦) という漫画

こんにちは。キリンです。 今日はちょっと気乗りしないので、FXに関係しないこと書いちゃいます。 毎日1時間くらい読書をす

記事を読む

no image

EA除去時のstart()とdeini()の挙動

こんばんは。キリンです。 IsStopped()関数を調べていて気づいたことは、start()関数はEA除去時に2.5秒

記事を読む

no image

日本のFX業者はなぜスプレットが低いのか?

みなさんは考えたことはございますか? それを考えると、 なぜmixiを見ていても「スキャルピング」という言葉が そこらじ

記事を読む

no image

Sakura VPS Ubuntu 12.04 に Ruby on rails と PHP、 メールサーバ構築までまとめてみる。 その4

SASL の設定 http://www.kazutoyo.com/ubuntu/?page_id=524Dovec

記事を読む

no image

安値ベース下位線・高値ベース上位線のボリンジャーバンド作成

お久しぶりです。キリンです。 新しく作成したインジケータのご紹介です。 ボリンジャーバンドの上位線はすべて高値ベースで算

記事を読む

Comment

  1. おやっさん より:

    SECRET: 0
    PASS:
    ブログ記事とは全然関係ないですが、TOPGUN FXはヒストリーバーの本数を何本必要としているのでしょう?
    MT4を軽くしたいので本数を減らしたいのですがEAが誤動作をすると良くないので質問します。
    また、他の通貨ペアの価格参照を行っていないですよね?
    上記の事とはまた関係ないですが、EA作成で質問します。
    同じマジックナンバーを持つロット数がそれぞれ違う複数のポジション(勿論buyとsellは別のマジックナンバーです)の取得平均価格と総ロット数を簡単に算出する方法は無いでしょうか?
    何か質問ばかりですいません。

  2. SECRET: 0
    PASS:
    >おやっさんさん
    返答したつもりでいました・・
    遅れて申し訳ございません。
    100本あれば充分に動作すると思います。
    ただ、検証をしていないので2000本くらいが妥当かなと思います。
    2つ目の質問の件は、
    繰り返しと条件分岐で全部計算させるしかないですね。
    プログラムの基本は繰り返しをどれだけ効率よく使えるかということから身についてくると思います。
    for文をうまく使えば大丈夫ですよ^^
    具体的なアドバイス希望であれば記事にしますね。

Message

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

Adsense

システムトレードを始める前に知っておきたかったこと

今日の勉強会で発表してきました。nbviewer に共有しておきます。 システムトレードを始め

chmod で やらかしてしまったときの対処法

メモ書きです。 find | xargs とかを普通にやってしまうと、すぐに argument

AMD Ryzen & Nvidia GTX 1080 BTO PC 構成・組立と Ubuntu インストール

まだググっても、構成例とか出てないので参考になるんじゃないかなと。機械学習用ですが、全然ゲーム用

Windows のデスクトップアプリをSSHクライアントから再起動する

シェルスプリクト一発で、システムトレードの設定を一括で更新して、MT4を再起動したいとかそういう

UX21A のディスプレイが壊れたので修理

UX21A のディスプレイがぶっ壊れた。 画面にラインが入ったり、ディスプレイが揺れたりするよ

→もっと見る

PAGE TOP ↑