ロボットコードの一部をインジケータに保持する意味があるのはどんな場合ですか? - ページ 34

 
TheXpert:

誤謬の否定その1:IndicatorCounted()はなくても大丈夫。

それを使ったインジケーター。

それがなければ、hrenfxの 原理で

そして、その指標をチャートに適用し、オートマトンの実行中に接続が切れることをエミュレートする。結果




こんな感じです。そのため、後々(EAを開発する際)役に立たない機能は使わないようにしています。

私は電気を信じず、何でも自分でやりたいと思っています。そして、この機能......理解できない。

 
sergeev:


また、この推測に関する調査やチェックを掲載していただけますか?

接続に失敗して数回しか実験していない。開発者のうんちくを十分に分析したわけではありません。めんどくさくもあり、長くもあり(1、2分ではなく、少なくとも10数分やらなければならなかった)。私のバージョンのEAでは、短時間の接続中断は問題なく処理されます。しかし、研究の結果、(M1にとっての)短期は数時間ではなく、数分(10分未満)であることが判明しています。

簡単な実験でも十分に掘り下げることができます。まだ100%とは言い切れませんが。おそらく、最初に空のインジケータを呼び出すのではなく、IndicatorCounted()を呼び出したインジケータを呼び出すべきでしょう。

私は手っ取り早く調査する方法を思いつきました。一度に複数の端末を動かし(5台以下が必要です)、それぞれの端末で異なるバリエーションの調査を行うのです。1時間通信を遮断し、その後復旧させる。一度に数種類のバリエーションを揃える。これらから、正しいイメージを得ることができます。

P.S. 異なるチャートではなく、異なる端子が必要です。IndicatorCounted()がターミナル内のすべての指標に対して一度だけ計算されるという変種を除外しなければならない。

P.P.S. まさにこのくだりは、ビルド>380で大きく修正されています。そして、反応から判断すると、何度も変更されるでしょう。だから、調査をする意味がほとんどない。長い通信の中断の後の最初のティックの間、(IndicatorCounted()の呼び出しを含む)インディケータに何が起こるか、開発者に直接尋ねなければなりません。

P.P.P.S.聞かれました

 
Integer:


バカにしないでください。まだインジケーターの書き方を覚えていないだけでしょう。

そんな異端児の後に

は、このスレッドで意見を言うのは一切控えた方がいいかもしれませんね。


まあ、誰が、何を書くことを学んだ、私は思う、外から見られるだろう、異端については - あなたの思考のレベルは、私はすべての兆候によって、宗教的な狂信者の論理のように見えると思う、それは議論することは無駄で、絶対に必要ありません誰と。そんな異端児でも、専門家は3倍速く仕事をする。しかし、私自身は、極端なことをしたり、誰かに何かを証明したり、ましてや自分を正当化したりする気持ちはありません。私の心の資格は、そんな惨めで無駄なことに使うには、あまりにも高価なものです。
 
尊敬する達人たち(全員)は、お互いにもっと敬意をもって接するようにとお願いしたい。若い人たちに何を教えるのですか?
 
TheXpert:

誤謬の否定その1:IndicatorCounted()はなくても大丈夫。

それを使ったインジケーター。

それがなければ、hrenfxの 原理で

そして、その指標をチャートに適用し、オートマトンの実行中に接続が切れることをエミュレートする。結果




IMHO: 比較は正しくない:再帰を使ったアルゴリズムは、他のすべての条件が同じであれば、常に実行速度が遅くなります。実験の純度を高めるため、インジケータとExpert Advisorで同じアルゴリズムを使用するのがよいでしょう。

Expert Advisorが、最後に計算したバーを計算し、現在のバー 数と最後に計算したバーの差が1以上ある場合、インジケータと同様に適切な位置から再計算できない理由は何ですか?

 
GODZILLA:

まあ、誰が、何を書くことを学んだ、私は思う、それは異端について、外から明らかになる - あなたの思考のレベルは、私はすべての兆候によって、鮮やかにそれが議論するのは無駄と絶対に不要である誰と、宗教的狂信者の論理に似ていると思います。そんな異端児でも、専門家は3倍速く仕事をする。しかし、私自身は、極端なことをしたり、誰かに何かを証明したり、ましてや自分を正当化したりする気持ちはありません。私の心の資格は、そんな惨めで無駄なことに使うには、あまりにも高価なものです。

これと一緒か

//---- ЭМУЛЯЦИЯ ИНДИКАТОРНЫХ БУФЕРОВ
  int NewSize = iBars(symbol, timeframe);
  //----  Проверка на смену нулевого бара
  if(ArraySize(Ind_Buffer0) < NewSize)
    {
      //---- Установить прямое направление индексирования в массиве 
      ArraySetAsSeries(Ind_Buffer0, false);
      ArraySetAsSeries(Ind_Buffer1, false);
      ArraySetAsSeries(Ind_Buffer2, false);
      //---- Изменить размер эмулируемых индикаторных буферов 
      ArrayResize(Ind_Buffer0, NewSize); 
      ArrayResize(Ind_Buffer1, NewSize); 
      ArrayResize(Ind_Buffer2, NewSize); 
      //---- Установить обратное направление индексирования в массиве 
      ArraySetAsSeries(Ind_Buffer0, true);
      ArraySetAsSeries(Ind_Buffer1, true);
      ArraySetAsSeries(Ind_Buffer2, true); 
    } 
//----

専門家の仕事は早いのか?その後、誰がマニアになるのか?ロングチェックすると、フォーラム検索が使えるようになります。

 
granit77:
尊敬する達人たち(全員)は、お互いにもっと敬意をもって接するようにとお願いしたい。若い人たちに何を教えるのですか?

個人的には、宗教的な狂信者だと非難されても、自分が何者なのかをよく知っているので、まったく腹が立たない。それに、このような非難は、相手側の思考レベルを示す、網羅的な指標になる。
 
GODZILLA:
まあ、誰が、何を書くようになったかは、外から見たほうがわかると思いますが

ああ、よくわかるよ。私の目に映るあなたの信頼度は、以前の3倍の速さで落ちています :)

VladislavVG:

IMHO: この比較は正しくありません。再帰を使ったアルゴリズムは、他のすべての条件が同じであれば、常に実行速度が遅くなります。実験の純度を高めるため、インジケータとExpert Advisorで同じアルゴリズムを使用するのがよいでしょう。

スピード比較のためではなく、仕事の不正確さを明確に示すために行われるのだから、この比較は正しい。

Expert Advisorが、最後に計算したバーを計算し、現在のバー数と最後に計算したバーの差が1以上ある場合、インジケータと同様に適切な位置から再計算することを妨げるものは何ですか?

試してみてはいかがでしょうか。


リンクが表示された後の最初のティックでのEAは、EAから派生したインジケータとは全く異なる動作をします。

上のスクリーンショットは、接続切断後、EA(EAのインジケーターではない)をiCustomと比較したものです。そこでは、接続の断絶がスムーズに進みます。

また勘違いしている。Expert Advisorも同様の動作をします。自分のログを正しく分析することができないだけです。私はすでに誤りについて説明しました、私はそれを繰り返すことを望んでいません。

ヒント:休憩の後にいくつかの値を見てください。

granit77 です。

尊敬する達人たち(全員)には、もっと敬意をもって接していただきたいと思います。若者たちに何を教えるのか?

メーテルは異端を持ち込むべきではない、それが1つ、そして間違いを認めることができなければならない、それが2つです。
 
TheXpert:

また勘違いしている。顧問も似たような行動をしている。自分のログを正しく分析することができないだけです。何が間違いなのか、すでに説明しましたので、繰り返したくありません。

ヒント:ギャップの後のいくつかの値を見てください。

はい、休憩の後に1つの値だけスクリーンショットをあげました。もちろん、すべての数値とその先を見ました(私は不正はしませんし、特にこんなバカなことはしません)。偶然の一致が完成した(スクリーンショットには入りませんでした)。

残念ながら、開発者はまだEAにIndicatorCounted()が有用である可能性を理解していません(彼らの反応から判断して)。

ギャップ(特に長いもの)後の最初のティックでのインジケータとEAが同じように動作しない。その気になれば、簡単に確認することができます。

 
Integer:

個人的には、私のことを宗教的狂信者だと非難されてもまったく腹が立ちません。なぜなら、私は自分が誰で何なのかをよく知っているからです。それに、このような非難は、相手側の思考レベルを示す、網羅的な指標になる。

まあ、それはともかく、自分の考え方が適切で、ファナティックでないと思っているのでしょうか。同じコードならEAよりインジケータの方が必ず速いという仮説信念を証明できなかったどころか、全く不明確で無意味な競争を始めてしまいましたね(ちなみに、EAの通信断絶という面白い解決策につながったので、それはそれでよかったです)。ちなみに、アドバイザーのコードは、パフォーマンス高速化のためのインジケータで書くのが望ましいということは、当サイトのどこにも書いていないので、この発言は少なくともおかしいと思いますし、納得していただけると思います。

私の推測は、バッファのコピーとパラメータを渡して外部関数を 呼び出すと、渡さない場合よりも時間がかかるという単純な論理に基づくものです。