ロボットコードの一部をインジケータに保持する意味があるのはどんな場合ですか? - ページ 14 1...789101112131415161718192021...38 新しいコメント Игорь 2011.03.20 15:09 #131 Integer: 要するに、EMAの計算コードをExpert Advisorに移し替えましょうということです。 アーカイブを探し回って、私が古くから選んでいるのがこちらです。Expert Advisorから取り出した。 int GetSignal (int nMax, int shift, double& prevVals[]) // prevVals[3] - [0] требуется для быстрого расчета SMA. // [1] пред. порог перехода // [2] пред. пред. порог перехода { int j, k, pos; double currMA, sum; /////////////////////////////////////////////////////// // Restore if (prevVals[0] < 0.1) { pos = nMax; sum = 0; for(k = 0; k < paramMAperiod; k++, pos--) { sum += vPrice(paramMAprice, pos); } prevVals[0] = sum/paramMAperiod; for ( ; shift < pos; pos--) { currMA = (vPrice(paramMAprice, pos) + (paramMAperiod-1)*prevVals[0])/paramMAperiod; prevVals[0] = currMA; j = 0.5+MathAbs(prevVals[1]-currMA)/Point; if (j >= paramMAporog) { prevVals[2] = prevVals[1]; prevVals[1] = currMA; } } } /////////////////////////////////////////////////////// pos = shift; currMA = (vPrice(paramMAprice, pos) + (paramMAperiod-1)*prevVals[0])/paramMAperiod; prevVals[0] = currMA; /////////////////////////////////////////////////////// pos = 0; j = 0.5+MathAbs(prevVals[1]-currMA)/Point; if (j >= paramMAporog) { if (prevVals[2] > prevVals[1] && prevVals[1] < currMA) pos = -1; if (prevVals[2] < prevVals[1] && prevVals[1] > currMA) pos = 1; prevVals[2] = prevVals[1]; prevVals[1] = currMA; } if (IsOptimization() == false) { string szName = "ArrTest_"; szName = szName+gObject; ObjectCreate(szName, OBJ_ARROW, 0, Time[shift], prevVals[1]); ObjectSet (szName, OBJPROP_ARROWCODE, 159); ObjectSet (szName, OBJPROP_COLOR, Gold); gObject++; } return(pos); } 私はあなたのことを正しく理解していたでしょうか? Dmitry Fedoseev 2011.03.20 15:15 #132 OneDepo: アーカイブを探し回って、私が古くから選んでいるのがこちらです。専門家から取り寄せた。 ちゃんと理解できたかな? 接続のパーフォレーション後に誤差が発生し、時間軸が低いほど誤差が大きくなります。 hrenfx 2011.03.20 15:15 #133 Vinin: ところで、Dimitriさんも間違った解答をされていますね。Expert Advisorの話でした。 まだ全ての窓が完成していないので、中断して...。 いやいや、いい例でしょう。なぜ、人為的に複雑なものを作るのか?私のコードのどこが "おもちゃっぽい "のかが理解できないのですが? Виктор 2011.03.20 15:15 #134 ドミトリー、私はコンテストにはまったく興味がないんだ。普通のプログラマーが行う2つのバリエーションで、どちらが速いのか知りたいですね。また、多かれ少なかれ標準的なカスタムインジケーターで、同じ計算スキームの場合。そして、あなたの競争相手は「水垢離粉を発明した人」で終わるかもしれませんし、その人が優れたプログラマーであることを示すだけで、EAの計算が速いということではありません(その逆もしかり)。 Victor Nikolaev 2011.03.20 15:19 #135 hrenfx: まだすべての窓が完成していないので、中断していますが......。 いやいや、いい例でしょう。なぜ、人為的に複雑なものを作るのか?ただ、理解できないのは、私のコードの「遊び心」とは何なのか、ということです。 計算した値と標準的なEMAを比較するだけです。参照 Dmitry Fedoseev 2011.03.20 15:20 #136 granit77: ドミトリー、私はコンテストにはまったく興味がないんだ。普通のプログラマーが行う2つのバリエーションで、どちらが速いのか知りたいですね。また、多かれ少なかれ標準的なカスタムインジケーターで、同じ計算スキームの場合。そして、あなたの競争相手は「水垢離粉を発明した人」で終わるかもしれませんし、その人が優れたプログラマーであることを示すだけで、EAの計算が速いということではありません(その逆もしかり)。 このように、EAにおけるEMAの計算方法については、高速化はおろか、現実に適用できる完全に正しい方法は今のところ誰も提示していません。 hrenfx 2011.03.20 15:20 #137 Vinin: 計算した値と標準的なEMAを比較するだけです。を見ることができます。まあ、ピクルスというより、どこから手をつけるかによりますが。同じインディケータでは、最初のバーは全く同じになります。しかし、余計な議論をしないためにも、これからは最もシンプルな変更にします。 Dmitry Fedoseev 2011.03.20 15:21 #138 Vinin: 計算した値を標準のEMAと比較するだけです。参照 係数を間違えたかもしれないので、これから確認しますが、原理は変わりません。 Игорь 2011.03.20 15:22 #139 Integer: パーフォレーション後に誤差が生じ、時間軸が短いほど誤差は大きくなる。 いいえ、そうではありません。このコードでは、prevVals[0]パラメータによって、シグナル計算 プロセスが制御されていることがわかります(最後のバーまたは与えられたnMaxバーのみ)。0の場合、nMaxバーによる計算を復元する。prevVals[0]の値は別のコードで制御される。 しかし、脇道にそれずに本題に入りましょう。上記の2つのオプションがありますが、テスターでは どちらが速いでしょうか?だから Dmitry Fedoseev 2011.03.20 15:23 #140 赤いのが私のもので、上の青いのが端末に内蔵されているものです。 1...789101112131415161718192021...38 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
要するに、EMAの計算コードをExpert Advisorに移し替えましょうということです。
アーカイブを探し回って、私が古くから選んでいるのがこちらです。Expert Advisorから取り出した。
私はあなたのことを正しく理解していたでしょうか?
アーカイブを探し回って、私が古くから選んでいるのがこちらです。専門家から取り寄せた。
ちゃんと理解できたかな?
接続のパーフォレーション後に誤差が発生し、時間軸が低いほど誤差が大きくなります。
ところで、Dimitriさんも間違った解答をされていますね。Expert Advisorの話でした。
まだ全ての窓が完成していないので、中断して...。
いやいや、いい例でしょう。なぜ、人為的に複雑なものを作るのか?私のコードのどこが "おもちゃっぽい "のかが理解できないのですが?
まだすべての窓が完成していないので、中断していますが......。
いやいや、いい例でしょう。なぜ、人為的に複雑なものを作るのか?ただ、理解できないのは、私のコードの「遊び心」とは何なのか、ということです。
計算した値と標準的なEMAを比較するだけです。参照
ドミトリー、私はコンテストにはまったく興味がないんだ。普通のプログラマーが行う2つのバリエーションで、どちらが速いのか知りたいですね。また、多かれ少なかれ標準的なカスタムインジケーターで、同じ計算スキームの場合。そして、あなたの競争相手は「水垢離粉を発明した人」で終わるかもしれませんし、その人が優れたプログラマーであることを示すだけで、EAの計算が速いということではありません(その逆もしかり)。
このように、EAにおけるEMAの計算方法については、高速化はおろか、現実に適用できる完全に正しい方法は今のところ誰も提示していません。
計算した値と標準的なEMAを比較するだけです。を見ることができます。
まあ、ピクルスというより、どこから手をつけるかによりますが。同じインディケータでは、最初のバーは全く同じになります。しかし、余計な議論をしないためにも、これからは最もシンプルな変更にします。
計算した値を標準のEMAと比較するだけです。参照
係数を間違えたかもしれないので、これから確認しますが、原理は変わりません。
パーフォレーション後に誤差が生じ、時間軸が短いほど誤差は大きくなる。
いいえ、そうではありません。このコードでは、prevVals[0]パラメータによって、シグナル計算 プロセスが制御されていることがわかります(最後のバーまたは与えられたnMaxバーのみ)。0の場合、nMaxバーによる計算を復元する。prevVals[0]の値は別のコードで制御される。
しかし、脇道にそれずに本題に入りましょう。上記の2つのオプションがありますが、テスターでは どちらが速いでしょうか?だから
赤いのが私のもので、上の青いのが端末に内蔵されているものです。