MQL5におけるOOPに関する質問 - ページ 76

 
awsomdino:

例はセイバーから取られるべきである、私はそれの本当の目的を知らないが、私はそこに必要なものを得るために彼のイフ)ツリーを見た。私はここに来たとき、私は質問を持っていた、どのようにすぐにそれを行うには、それを実装する方法を探して、すべてを再読む - 本当に唯一の時間を失った、正しい実装はありません、記事のヒープとどこでも彼自身。コードのことをあまり理解せず、5つの道の交差点に立ってどっちに行こうか考えているようでは、本当にがっかりです。 ここで儲かる取引システムが見つかるかどうかという問題ですらなく、ここで正しい最適な道が見つかるかどうかが問題なのです) - これが私たちの愛するMQL5なのです。

まあ、彼は、常に有益なTSを探し、TSを適用できる楽器を探し、そして速く探さなければならない、と公言しているのです。

そして、シグナルでは彼のTSは結果を示し、その後動かなくなり、再びTSの電源を入れ(新しいパラメータで再オープンしたと思われる)、TSは再び上昇し、再び動かなくなった。

この機能が柔軟で、素早く最適化し、適用するツールを検索 できるのであれば、必要なものはすべて揃っていることになります。

しかし、ある特定のツールで利用可能なすべての履歴でテストされる単一のEAを探してください....まあそれはもうやったので、何もないと思います。

 

イゴール、私たちはここでコードの話をしているんだ)

そして、彼のシステムも好きではありません。

フェンシングや剣道を調べてみようかな。

 
awsomdino:

イゴール、私たちはここでコードの話をしているんだ)

私も彼のシステムは好きではありません、インチキです。

実はここで本を読んでいるのです))("Programming Without Fools")

私は彼のシステムを知りませんが、私はQBのコードを使用しています - 彼は本当の時間の節約、私も言うでしょう - 彼は私が取って使用することができ、より多くのように、彼は常に彼のコードを維持する堅牢なインフラを作成しました。

 
awsomdino:

クラス、継承、仮想化、テンプレート、独学で学んだ私にはとても理解しがたく、少し理解しただけでOOPを放棄してしまいました。せいぜい構造体。

セムカは絵を持って去っていった、誰がこんな絵を必要とするのか、ここには自分と愛する人のためにお金を稼ぎに来たのだ、もちろん開発者は彼に同情はしていない。ピーター、トレード以外なら何でもあり)。その不要な機能にプログラマーは困惑している。

#define  LOG(dText) CLog::Get().Log((string)__LINE__,__FUNCSIG__,dText)

class CLog{
   CLog() {}
public:
   static CLog* Get() {static CLog _log; return &_log;}
   void Log(string line,string sig,string text) {PrintFormat("Line: %s. Signature: %s. %s",line,sig,text);}
};
//+------------------------------------------------------------------+
void OnStart()
{
   LOG("Example 1");
   Test();
}
//+------------------------------------------------------------------+
void Test(){
   string t="Example 2";
   LOG(t);
}

ここでは、OOPとマクロ置換、そして(スピードを重視する人のために)ドジな一匹狼も用意されています。これは例として書いたものですが、当然、コンストラクタでログ用のファイルを作成し、Log(...)でそのファイルに書き込み、デストラクタで閉じることができます。このような例もあるのです。もちろん、関数で何とかすることもできますが、自作のファイルの場合、コードが増えるし、グローバル変数も出て くるし、あまりオーソドックスではありません))))

 
Vladimir Simakov:

ここでは、OOPやマクロの代入、さらには簡単なシングルトンも用意されています(これはスピード重視の人向けです)。例として書いていますが、当然、コンストラクタでログ用のファイルを作成し、Log(...)で書き込み、デストラクタで閉じることができます。このような例もあるのです。もちろん、関数と連携することもできますが、自作のファイルの場合、コードが増えるし、グローバル変数も 増えるし、あまりオーソドックスな方法ではありません))))

ありがとうございます、例を保存しておきます

 
awsomdino:

ありがとうございます、例のものは保存しておきます。

面白いのは、保存する必要はなく、理解する必要があることです。わかる人はすぐに「一匹狼はここでは必要ない」と書くだろうし、すべてが還元されるのは

#define  LOG(dText) CLog::Log((string)__LINE__,__FUNCSIG__,dText)

class CLog{
public:
   static void Log(string line,string sig,string text) {PrintFormat("Line: %s. Signature: %s. %s",line,sig,text);}
};
//+------------------------------------------------------------------+
void OnStart()
{
   LOG("Example 1");
   Test();
}
//+------------------------------------------------------------------+
void Test(){
   string t="Example 2";
   LOG(t);
}
 
Vladimir Simakov:

面白いのは、保存する必要はなく、理解する必要があることです。理解ある人なら、一匹狼はここでは必要ないとすぐに書くだろうし、すべては次のように還元される。

ありがとうございます、ずっと理解していたコードです)

ところで、コードをデフォルトのフォーマットで書くと、このような微妙なニュアンスで引っかかります。

_Symbol
Symbol();

symbolinfoなどのワンパターンなものは、私の注意力と時間を本当に狂わせました。

とはいえ、まだ100%の情報を持っているわけではなく、何を使っていいのか分からないというのが正直なところです。

 
Vladimir Simakov:

面白いのは、保存する必要はなく、理解する必要があることです。わかる人は、ここではシングルトンは必要ないと書くだろうし、すべては、以下のように縮小できる。

勘違いしている人は、ここではOOPは必要ない、関数呼び出しで 置き換えられると書くだろう。

と、またまた二手に分かれて数ページにわたって大混乱に陥ります )))

 
Igor Makanu:

理解ある人は、ここではOOPは不要で、関数呼び出しに 置き換えることができると書くでしょう。

と、また2つの陣営に分かれて数ページにわたってゴチャゴチャに)))

よくぞ言ってくれました。そうなんだ!そして、これは?

#define  LOG(dText) CLog::Ptr().Log((string)__LINE__,__FUNCSIG__,dText)

class CLog{
   int cHndl;
   CLog():cHndl(FileOpen(MQLInfoString(MQL_PROGRAM_NAME)+_Symbol+(string)(int)TimeCurrent()+".log",FILE_TXT|FILE_WRITE)){}
  ~CLog() {FileClose(cHndl);}
public:
   static CLog* Ptr() {static CLog _log; return &_log;}
   void Log(string line,string sig,string text){
      string _text=StringFormat("Line: %s. Signature: %s. %s",line,sig,text);
      PrintFormat(_text);
      FileWrite(cHndl,_text);}
};

より複雑であることに同意していただけると思います)))

 
Vladimir Simakov:

よくぞ言ってくれました。そうなんだ!そして、これは?

もっと複雑なことを認めなければならない)))

クラスがあればバギーもある)

* と&は、意外と知られていないかもしれません。

複雑なコードではなく、唯一の便利なクラス、デストラクタを持つコンストラクタ、私はまだ他のプラスを見ることはありません。

の構造は、より便利で習得が簡単です)。

構造物の能力も知らない、理解していない人が多い。彼が公然とコードに広く使い始めたのは、それほど昔の話ではない。