記事"不変なジグザグ"についてのディスカッション

 

新しい記事 不変なジグザグ はパブリッシュされました:

ジグザグは、MT5のユーザーの間で人気の高いインジケーターです。この記事では、ジグザグのさまざまなパターンを作成する可能性について分析します。この結果はEAの開発に有用であるばかりでなく、その関数を拡張する不変なインジケーターとなりえます。

ジグザグ (図 1) は、メタト レーダー 5のユーザーの間でも人気の高いインジケーターの一つです。日に日に、さまざまなジグザグの亜種が開発されました。しかし、そのいくつかは遅すぎて、EAを作成するのには不向きです。常にエラーが発生し、目視であっても使用が困難なものもあります。高速かつエラーなしで動作するインジケーターのために、EA または別のインジケーターを開発します。ジグザグ データを解釈することは簡単ではないので、こういう事態が発生します。


図1。ジグザグ インジケーター

作者: Dmitry Fedoseev

 

せっかくOOPインジケータができたのだから、Expert Advisor(iCustom)から呼び出す意味はあるのだろうか。Expert Advisor自体で計算インジケータオブジェクトを作成し、特定の演算子[]を使って頂点にアクセスできるのに。その方が速いはずだ。

ソースデータには十分なティックがありません。おそらく、現在(CopyTicksの高速でバグがない実装が登場した)すべての記事は、この事実を考慮に入れているはずです。バーしかないふりはできない。

ありがとうございます。初心者の方には、おそらくこれがベストでしょう。

 
fxsaber:

1.せっかくOOPインジケータができたのだから、Expert Advisor(iCustom)から呼び出す意味はあるのだろうか。Expert Advisor自体で計算されたインジケータ・オブジェクトを作成し、特定の演算子[]を使って頂点にアクセスできるのに。その方が速いはずだ。

2.ソースデータに十分な目盛りがありません。おそらく、現在(CopyTicksの実装が高速でバグがないように見える)すべての記事は、この事実を考慮に入れているはずです。バーしかないふりはできない。

3.記事に感謝。初心者にとっては、おそらく良いものでしょう。

1.これは間違った考えです。このインジケーターはインジケーターバッファと パラメータrates_totalとprev_calculateを使って動作します。インジケータのポイントはバッファを使用することにあります。Expert Advisorには、rates_totalとprev_calculateだけでなく、インジケータ・バッファもありません。

2.同意できない。個人的な問題です。また、一般的には、各バーでティックを再計算することだけがポイントです。

3.哲学的な疑問が生じます-誰が初心者なのでしょうか?

 
Dmitry Fedoseev:

1. これは間違った考えです。このインジケーターは、インジケーター・バッファと パラメータrates_totalとprev_calculateを使用して動作する。インジケータのポイントはバッファを使用することです。Expert Advisorにはインジケータ・バッファはなく、rates_totalとprev_calculateもありません。

なぜZZオブジェクトをExpert Advisorの本格的なデータソースにできないのですか?異なるエンティティ(異なるプログラム)を作成し、iCustomを介してそれらを接続するには、Expert Advisorで直接オブジェクトを作成する方が簡単です。詳細」が少なければ少ないほど、「仕組み」の信頼性は高まる。

しかし、これは永遠の議論だろう。OOPはそれをさらに一方に傾けるだけだ。

2.私はそうは思わない。個人的な問題だ。そして、とにかくポイントは、ティックはすべてのバーで再計算されるべきであるということだけだ。

ティックは無視されるべき。

3.哲学的な疑問が生じる-誰が初心者なのか?

誰がこの記事を役に立つと思うだろうか。
 
fxsaber:

1.なぜ ZZ オブジェクトを Expert Advisor の本格的なデータソースにできないのですか?異なるエンティティ(異なるプログラム)を作成し、iCustomを介してそれらを接続するには、Expert Advisorで直接オブジェクトを作成する方が簡単です。詳細」が少ないほど、「仕組み」の信頼性は高まる。

2.しかし、これは永遠の論争だろう。OOPはそれをさらに一方に傾けるだけである。

3.無視するダニを与えた。

この記事で得をしそうな人

1.OOPはこの問題の解決には何の関係もありません。その上、Expert Advisorの最も完全なデータ源はインジケーターです。Expert Advisorは、インジケータのように時系列を処理する機能的な機能を提供していません。

2.OOPの問題は、大人のプログラマーの多くが子供の頃にOOPを勉強していないため、OOPを理解し適用することが難しいことです。

3.ティックチャートはどこにある?ティックチャートがなければならない。もしティックチャートがなければ、ティックチャート上に指標を作る のは職人芸となる。

4.誰にでも使える。これこそジグザグの真髄である。)私見では、この記事の価値はOOPが適用されていることにあるのではない。OOPを使った部分はルーティンワークのようなもので、特別な価値はないと思う。しかし、冒頭のハイローとクロースによるインジケータの作成についての考察は、(稀な例外を除いて)誰にとっても一読の価値がある。

 
Dmitry Fedoseev:

1.OOPはこの問題の解決とは何の関係もない。その上、Expert Advisorの最も完全なデータ源はインジケーターです。Expert Advisorは、インジケータが提供する時系列を処理する機能的機能を提供していません。

少なくとも1つの論点があります。唯一繰り返したがるのは、OnCalculateを入力する際に、インジケータで時系列の準備が保証されていることです。そして、OnTickにはそのような保証はありません。OnTickでは99.99999999%であり、100%ではありません。

2.OOPの問題は、多くの大人のプログラマーが子供の頃にOOPを勉強していないため、OOPを理解し適用することが難しいことです。

インジケータはオブジェクトです。OOPではオブジェクトを作ることもできます。しかし、別のプログラムという形で追加の実体を作ることはできない。

3.ティックチャートはどこにありますか?ティックチャートがなければなりません。もしティックチャートがなければ、ティックチャート上にインジケータを作成する のは職人技です。

ティックチャートとティック形式の初期データに何の関係があるのでしょうか?Expert Advisorはチャートがあろうがなかろうが関係ありません。そして、ティックの履歴を分析できるインジケーターがあるとすれば、それはティックの上に成り立っているということです。そして、ビジュアライゼーションの欠如はVPSへの挨拶です。つまり、状況によっては不要なのです。

4.誰にとっても役に立つ。これこそジグザグの真髄である。)私の考えでは、この記事の価値はOOPが適用されていることにあるのではない。OOPを使った部分はルーティンワークのようなもので、特別な価値はないと思う。しかし、冒頭のハイローとクロースによるインジケータの作成についての考察は、(稀な例外を除いて)誰にとっても一読の価値がある。

私はすぐに言った。
 
fxsaber:

少なくとも1つの引数。唯一、彼らが繰り返したがるのは、OnCalculateを入力する際に、インジケータの時系列の準備が保証されていることだ。そしてOnTickにはそのような保証はない。OnTickでは99.99999999%であり、100%ではありません。

インジケータはオブジェクトです。OOPではオブジェクトを作成することもできます。しかし、別のプログラムという形で追加エンティティを作成しないでください。

ティックチャートとティック形式の初期データに何の関係があるのでしょうか?Expert Advisorは、チャートの有無は気にしません。ティックの履歴を分析できるインジケーターは、ティックに基づいているということです。そして、ビジュアライゼーションの欠如はVPSへの挨拶です。つまり、状況によっては必要ないのです。

私はすぐに初心者向けと言った。
あなたの文章を読む限り、あなたは初心者ではなく、幼稚園児と考えるべきでしょう。
 

一番難しいのは初心者向けの記事を書く こと。誰にでもできるわけではない。

初心者にも上級者にも役立つ記事を書くのはさらに難しい。

それぞれの記事に、その記事が誰を対象にしているのかを書いておくといいだろう。どのセクションが初心者向けなのか、どのセクションが専門家向けなのか、どのセクションがドキュメントを補足しているのか、このトピックに関する既存の出版物との相互参照など。

もしその記事が初心者向けであれば、理解するのに十分な資料があるかどうか--そして、もし資料の理解に困難がありそうであれば、読む前にどのような資料に親しんでおくのがよいか--が書かれているのが普通である。

p.s. あらゆる技術文献の中で、ベストセラーになるのは初心者向けの教科書である。

 
Dmitry Fedoseev:

1. これは間違った考えです。このインジケーターは、インジケーター・バッファと パラメータrates_totalとprev_calculateを使用して動作する。インジケータのポイントはバッファを使用することです。Expert Advisorには、rates_totalとprev_calculateと同様に、インジケータ・バッファはありません。

ドミトリー、あなたはここが間違っています。iCustomをバイパスしてクラスを通してジグザグを操作するというアイデアは非常に正しい。実際、ジグザグはラインのリストであり、各ラインは多くのプロパティを持っている:

  • 線の方向(上下)
  • 線が始まるバーのインデックス
  • 線が終わるバーのインデックス
  • 線の始点の価格;
  • ラインが終了する価格;
  • ライン開始時間;
  • ライン終了時間;
  • ...

線がある/ないという2ビットの情報をバッファで処理する代わりに、可能なすべての情報が自動的に計算され、エキスパートアドバイザーやインジケーターに直接入力される便利なクラスを作成する必要があります。同時に、1つのクラスで異なるタイプのデータ、例えば、バー、終値、ティックストリームを扱うことができなければなりません。

まとめると、OOPは初心者にとって便利です。しかし、OOPを使うと、初心者は怖がるでしょう。

 
Andrey F. Zelinsky:

p.s. 技術書の中でベストセラーになるのは初心者向けの教科書である。

専門家向けの作品がベストセラーになることは定義上ありえない。

念のため言っておくが、私自身はその中には含まれていない。この記事は、マスターし始めたばかりか、これからマスターしようとしている人たちのためのものである。それはいい。

正しく理解してもらうために、2つの記事へのリンクを貼っておこう。

  1. インジケーターを書く - OOP初心者向け。
  2. エキスパート・アドバイザーを書く - エキスパート向け。
MQL's OOP notes: Singleton, Command queue, and Template method patterns in simple order manager
MQL's OOP notes: Singleton, Command queue, and Template method patterns in simple order manager
  • 2016.10.06
  • //www.mql5.com/en/users/marketeer">
  • www.mql5.com
As the title says this time we'll try to implement a simple object-oriented framework for trading. It's surely simple as a framework, but is probably most complex thing among all that we've discussed...
 
Vasiliy Sokolov:

ドミトリー、君は間違っている。iCustomをバイパスしてクラスを通してジグザグを扱うというアイデアは非常に正しい。要するに、ジグザグは線のリストであり、それぞれの線は多くのプロパティを持っている:

  • 線の方向(上下)
  • 線が始まるバーのインデックス
  • 線が終わるバーのインデックス
  • 線の始点の価格;
  • ライン終了時の価格;
  • ライン開始時間;
  • ライン終了時間;
  • ...

1.行がある/ない」という2ビットの情報をバッファを通して扱う代わりに、可能なすべての情報が自動的に計算され、エキスパート・アドバイザーに直接、またはインジケーターに直接、便利に供給されるクラスを作成する必要があります。同時に、1つのクラスで異なるタイプのデータ、例えば、バー、終値、ティックストリームを扱えるようにする必要があります。

2.2.結論:初心者には便利。しかし、OOPを使用すると、初心者は怖気づくでしょう。

1.いいえ。インジケーターにちょっと手を加えただけだ。ただ、このままでは記事が膨大になってしまう。私は、このような追加を行い、数式を解くクラス(パターンを認識する機能を持つジグザグが得られ、その数式はプロパティ・ウィンドウに書かれる)を検討するためだけに、別の記事を書くというアイデアを持っていた。しかし、ラシッドはその話題に興味を示さなかった。そして、すべてを1つの記事に詰め込むことは不可能である。気づいた人がいるとすれば、私はジグザグのバリエーションをもう一つ持っていた(最後の最大/最小値からのプルバックに基づく)。

それに、この記事はまだ頂点値に直接アクセスする方法を扱っています。一般的なOOPはこの問題に非常に間接的に関係しており、何を包むかは好みの問題で、OOPなしでも解決できる。頂点が現れたら、順番に追加のバッファに入れ、バッファの最初にその番号を書くだけだ。この場合、任意の頂点へのアクセスは、頂点の数を取得し、指定された頂点を 末尾から取得するという2つのステップで行われる。クローズ時のようなジグザグには少々難があるが(新しいレイのキャンセルのため)、解決可能である。しかし、OOPはそれと何の関係があるのだろうか?

2.OOPを怖がる人のために、この記事は2部構成になっている。OOPの前(2つのインジケータの作成)は、ジグザグの書き方を理解するのに十分である。