参議院の実施について議論。

 

こんにちは、mql5を勉強しているのですが、なかなか踏み出せないでいます。それは、みんな違うプログラムを書いていて、みんな自分のやり方に自信を持っていて、どれが最適なのか、初心者にはわかりにくいからです。

私自身も理解したいと思いますし、代表的なEAブロックに対する最適解の実装について公開討論することは、コミュニティにとって有益なことだと考えています。例えば、初期化でほとんど何も書かない人と、このブロックを非常に多く埋める人がいます。EAが行うべきチェック、行ってはいけないチェック。Virtual Takes and Stopsの有無など。まさに戦略の実行の仕方も興味深い。

そこで提案なのですが、もし知識を共有したい人がいるのであればその上で、例えばネトゲの例で言えば、平均から乖離したら、平均に戻るのを待つといった、移動平均をベースにしたシンプルなExpert Advisorの実装を検討することができます。その他、見せたい戦略があれば教えてください。なぜこのような書き方をしようと思ったのか、コメントを添えてコードを投稿してください。

オープンソースコミュニティにおけるコードの教育や品質向上に貢献することを決断した人たちに、前もって感謝します。

 
Ivan_Invanov:

こんにちは、mql5を勉強しているのですが、なかなか踏み出せないでいます。みんなそれぞれ違うプログラムを書いているので、自分のやり方に確信があり、どれが最適なのか初心者にはわかりにくいのです。

私自身も理解したいと思いますし、代表的なEAブロックに対する最適解の実装について公開討論することは、コミュニティにとって有益なことだと考えています。例えば、初期化でほとんど何も書かない人と、このブロックを非常に多く埋める人がいます。EAが行うべきチェック、行ってはいけないチェック。Virtual Takes and Stopsの有無など。まさに戦略の実行の仕方も興味深い。

そこで提案なのですが、もし知識を共有したい人がいるのであればその上で、例えばネトゲの例で言えば、平均から乖離したら、平均に戻るのを待つといった、移動平均をベースにしたシンプルなExpert Advisorの実装を検討することができます。その他、見せたい戦略があれば教えてください。なぜこのような書き方をしようと思ったのか、コメントを添えてコードを投稿してください。

オープンソースコミュニティにおけるコードの教育や品質向上に貢献することを選択された方に、前もって感謝します。

このサイトのEA開発 に関する記事を全部読んで、足りないと思ったんですか? しかも文盲ですか?)

 
Aleksey Mavrin:

このサイトのEA開発 に関する記事を全部読んで、それで十分だと思わないのか? とリテラシスト)

プログラム実行のパラダイムを形成するのは難しいと感じています。はい、時間短縮の記事、拝見しました、とても参考になります。しかし、1枚の実行時間を短縮することに何の意味があるのでしょうか。例えば、ソリューションアプローチ自体が他のソリューションアプローチと比較して著しく速度が低下する場合。本当に自分より優れたEAの書き方はないのでしょうか。おめでとうございます、あなたは最高レベルでなければなりません。それならコード例を示してくれるのでは?
 
Ivan_Invanov:
プログラムを運営するためのパラダイムを形成するのは難しいと感じています。はい、時間短縮の記事を拝見しました、とても参考になります。しかし、1枚の実行時間を短縮することに何の意味があるのでしょうか。例えば、ソリューションアプローチ自体が他のソリューションアプローチと比較して著しく速度が低下する場合。本当に自分より優れたEAの書き方はないのでしょうか。おめでとうございます、あなたは最高レベルでなければなりません。その時は、コードの例を示してくれるかもしれませんね?
あなたはあなたのすることをする。そして、やがて自分なりのパラダイムを構築していくことになります。
 
Ivan_Invanov:
プログラム実行のパラダイムを形成することができない。はい、時間短縮の記事を拝見しましたが、とても参考になりました。しかし、別フラグメントのランニングタイムを短くする意味はありません。例えば、ソリューションアプローチ自体が他のソリューションアプローチと比較して著しく速度が低下する場合。本当に自分より優れたEAの書き方はないのでしょうか。おめでとうございます、あなたは最高レベルでなければなりません。それならコード例を示してくれるのでは?

こちらの記事へのリンクは、キーワードで自動的に挿入されます。

そして、私は、著者があなたのような人々のために特別にコードを説明する、既製のExpert Advisorを持つ多くの記事を意味します。ご覧になられましたか?そこには十分な事例があります。

最適な方法というのは、状況に応じた考え方です。

システムアプローチも良いですね。

EA制作の プロセスを2段階に分ける。

1. アルゴリズム

2.コード

要は、アルゴリズムの組み方を学ぶことです。そして、いろいろな方法でコーディングできますので、都合の良いほうを選んでください。

フィードバックが複数ある有限オートマトンは身近な存在ですか?そうでない場合は、理論を勉強すれば、何から手をつければいいのかが見えてくるはずです。

 
Ivan_Invanov:

こんにちは、mql5を勉強しているのですが、なかなか踏み出せないでいます。みんなそれぞれ違うプログラムを書いているので、自分のやり方に確信があり、どれが最適なのか初心者には分かりにくいのです。

私自身も理解したいと思いますし、代表的なEAブロックに対する最適解の実装について公開討論することは、コミュニティにとって有益なことだと考えています。例えば、初期化でほとんど何も書かない人と、このブロックを非常に多く埋める人がいます。EAが行うべきチェック、行ってはいけないチェック。Virtual Takes and Stopsの有無など。まさに戦略の実行の仕方も興味深い。

話題のポイントがわからない。

コーダーにはそれぞれ好みや主義主張、プログラム構造に対する考え方があることは明らかです。 あなたにもあるでしょう。 それを発展させるには、コードを書き、テストする必要があります。規則性やエラーが分かると、どのプログラム構成が一番自分に合っているのかが分かってきます。

具体的な実装 - KodoBaseでは、多くのオプションがあります。どれかを選んで、探検し、使い、修正する。

他に必要なものはありますか?

 
Georgiy Merts:

話題のポイントがわからない。

コーダーにはそれぞれ好みや主義主張、プログラム構造に対する見解があることは明らかです。 あなたにもあるはずです。 それらを解決するためには、コードを書き、それをテストすることが必要です。規則性やエラーが分かると、どのプログラム構成が一番自分に合っているのかが分かってきます。

具体的な実装 - KodoBaseでは、多くのオプションがあります。どれかを選んで、探検し、使い、修正する。

他に必要なものはありますか?

もちろんkodobaseも見ています。私は、metaquotesというたった一人の作者、つまり公式な開発者のコードに何の疑問も持っていません。私は彼から学んでいる。そこにいる人は、論理的に文章を書き、ビルトイン機能を最大限に活用する。しかし、彼はExpert Advisorをほとんど持っていない。一般に、さまざまな作者によって書かれた怪しいコードが多く、コードを見てもなぜそのような書き方をしているのか理解できないことがよくある。まあ、こういう実装に自信のある人は意外といるんですよ。もちろん、心配しすぎかもしれませんが。ここで言われているように、ただ書くだけではダメなんでしょうね。

 
ただ、遅かれ早かれ、オープンソースに何らかのコンセンサスが生まれるような気がしています。結局、人はバリエーションがあるだけで、同じことを何度も何度も書いているのです。そこで、レディピースを作って議論してみてはいかがでしょうか。このように、ネットフロージェネレータの実装を行い、最適なスピードと機能を実現しました。やりますね。ただ、最適解を使いこなすだけの知識はない。これから図式を描いて、最初に思い浮かんだものがそれになります。あるいは、同じレベルの知識を持つ人から借りることにしています。でも、実装例を作れば、経験豊富で博識な人たちが参加して、何かを直し、議論し、コンセンサスを得ることができるはずです。最終的には、誰もが質の高いコードを手に入れられるし、少なくとも見本となるものを手に入れられる。
 
Ivan_Invanov:
しかし、遅かれ早かれ、オープンソースにおけるコンセンサスが得られると思われます。結局、人はバリエーションがあるだけで、その時々で同じことを書いているのです。そこで、既製品を作って議論してみたらどうだろう。このように、ネットフロージェネレータの実装を行い、最適なスピードと機能を実現しました。やりますね。ただ、最適解を使いこなすだけの知識はない。図案を描いて、最初に思い浮かんだものがそれになります。あるいは、同じレベルの知識を持つ人から借りることにしています。でも、実装例を作れば、経験豊富で博識な人たちが参加して、何かを直し、議論し、コンセンサスを得ることができるはずです。最終的には、誰もが質の高いコードを手に入れられるし、少なくとも見本となるものを手に入れられる。

発想がいいんです。イゴール・キムの ベースは当時とても役に立ちました、彼の仕事にとても感謝します :)

 
Ivan_Invanov:

もちろん、コドベースを見ながらね。正式な開発者であるmetaquotesというたった一人の著者のコードに何の疑問も感じない。私は彼から学んでいる。そこの人は、論理的に文章を書き、ビルトイン機能を最大限に活用する。しかし、彼はExpert Advisorをほとんど持っていない。一般に、さまざまな作者によって書かれた怪しいコードが多く、コードを見てもなぜそのような書き方をしているのか理解できないことがよくある。まあ、こういう実装に自信のある人は意外といるんですよ。もちろん、心配しすぎかもしれませんが。ここで言われているように、ただ書くしかないかもしれません。

それはまた別の問題です。

私自身、自分のコードを見ていて、なぜこんなところに書いてあるのか理解できないことがあります。 だから、そのような断片については、細かい部分まで言及するように心がけています。それでも、定期的に自分の考えていないことを確認することがあるんです。

さらに、私は、非常に権威あるフォーラムのユーザーによって書かれた次のコード(実行の種類を決定する)を使用しています。

ENUM_ORDER_TYPE_FILLING CSymbolInfo::GetTypeFilling(string strSymbol,ENUM_ORDER_TYPE_FILLING otfFilingType)
{
   #ifndef __MQL5__
      return(otfFilingType);
   #else // __MQL5__
      
   const ENUM_SYMBOL_TRADE_EXECUTION steExeMode = (ENUM_SYMBOL_TRADE_EXECUTION)::SymbolInfoInteger(strSymbol, SYMBOL_TRADE_EXEMODE);
   const int iFillingMode = (int)::SymbolInfoInteger(strSymbol, SYMBOL_FILLING_MODE);

   return((iFillingMode == 0 || (otfFilingType >= ORDER_FILLING_RETURN) || ((iFillingMode & (otfFilingType + 1)) != otfFilingType + 1)) ?
         (((steExeMode == SYMBOL_TRADE_EXECUTION_EXCHANGE) || (steExeMode == SYMBOL_TRADE_EXECUTION_INSTANT)) ?
           ORDER_FILLING_RETURN : ((iFillingMode == SYMBOL_FILLING_IOC) ? ORDER_FILLING_IOC : ORDER_FILLING_FOK)) :
          otfFilingType);
  
   #endif // __MQL5__
};

さらに、このフォーラム参加者自身が、もう覚えていない、このコードはすでに何度もテストされており、信頼できると言っているのです。

まあ、このくだらない「質問」をなんとか本当のif文に置き換えれば、なんとかなるんだろうけど......。今のところ...

 
ブロック図を作って、そのブロックを使って直接書いた方がいい、私も最初の頃はそうしていました、その後、関数を使うようになりますが、私は他の人のOOPしか使っていません。一般的には、すべてを書き直さなくても、コードの一部を簡単に変更できるように書く必要があります。
理由: