何らかの形でトレードに関連する脳トレタスクを実施。理論家、ゲーム理論など - ページ 22 1...151617181920212223 新しいコメント Роман 2012.02.05 14:32 #211 new-rena: 大丈夫です。すでにコードを 掲載しました。正解に揺さぶりをかけて、それで終わり。 結果は教えていただけますか...?:-) 削除済み 2012.02.05 14:41 #212 new-rena: 不思議ですね~、正弦波でない幾何学的な進行のような感じでしょうか? 削除済み 2012.02.05 14:47 #213 avtomat: とてもまっとうなことです。I.e.私たちは、その後pipsで1ロットずつ開くごとにトレンドの反転に近づいているので、注文サイズは大きくしないが、何かあったときのために開いておくと言います)))。 Sceptic Philozoff 2012.02.05 14:51 #214 レナート、では方程式を解いたり、何か他のことが必要なのでしょうか? もし方程式が MiniLot^(x^0)+MiniLot^(x^1)+MiniLot^(x^2) ... + MiniLot^(x^(N-1))=VolMax がxに関して解かれるのであれば、ニュートン法 かセカント法で 簡単に解けます。ただし、MiniLot、VolMax、Nを指定する必要があります。 削除済み 2012.02.05 14:53 #215 new-rena: それはかなりまともだ。すなわち、その後のロットオープンのステップがpipsで進むごとにトレンドの反転に近づいているので、注文サイズは大きくしないが、何かあったときのためにオープンしておくと言うことです))) それはどうでしょう...。ただ問題を解いていただけなんです...反転とかトレンドとか、そういうことではないんです。 それについても、私なりに考えてはいるんです。 削除済み 2012.02.05 14:54 #216 Mathemat: レナート、では方程式を解いたり、何か他のことが必要なのでしょうか? 今度はその解を式の形で書いてみたい。もう、計算式を導き出す。 ありがとうございました。 Sceptic Philozoff 2012.02.05 14:55 #217 new-rena: 今度はその解を式の形で書いてみたい。もう、計算式は出来上がっているんです。 数式を導き出しても、脳ががんがんしちゃうよ。しかし、それを近似的に解く関数を書くことは可能である。しかし、それはもちろんxに関して解かなければならない場合です。 削除済み 2012.02.05 16:17 #218 Mathemat: 数式を導き出しても、脳にガンができるぞ。しかし、それを近似的に解く関数を書くことができる。しかし、それはもちろんxに関して解かなければならない場合です。 したのですが、本当に機能 Sceptic Philozoff 2012.02.05 16:19 #219 new-rena: 完了、確かに関数 見せてください。 P.S. 私の脳は、このような奇妙で異質な問題を解くことを拒否しています。一次導関数の単調性は尊重されない。そして、このことが、xに関する方程式を、セカント/ニュートン法で簡単に、単純に解くことを妨げている。ダム検索(強く最適化)すると割とすぐに解決しますが。 しかし、2倍ではなく、単純な掛け算であれば、すべてが簡単でわかりやすいのですが。 ここで、最も間抜けなアルゴリズムを紹介します。早いんですけどね。10^(-8)の精度を得るためには、約50回の反復が必要です。 手始めに前ページのavtomat さんの写真です。 そして今度は私のです(同じパラメータ)。 そして、コード。 #property show_inputs extern double _MiniLot = 0.01; extern double _N = 77; extern double _VolMax = 5.96; extern double _err = 0.0000000001; extern double _parts = 7; double resolve( double err, int& count ) { double currErr = 10; double xLeft = 0.00000001; double xRight; double valLeft, valRight; double step = _VolMax / _parts; count = 0; while( step > err ) { count ++; xRight = xLeft + step; valLeft = funct( xLeft ); valRight = funct( xRight ); if( valLeft * valRight > 0 ) { xLeft += step; continue; } else step /= _parts; } return( xLeft ); }//+------------------------------------------------------------------+ double funct( double x ) { double sum = 0; for( int i = 0; i < _N; i ++ ) { double xPowered = MathPow( x, i ); sum += MathPow( _MiniLot, xPowered ); } return( sum - _VolMax ); }//+------------------------------------------------------------------+ int start( ) { int st = GetTickCount( ); int count; double x = resolve( _err, count ); double gone = ( GetTickCount( ) - st ) / 1000.; Print( "Root is x = " + x + "; funct is f = " + funct( x ) + "; gone " + gone + " sec.; count = " + count + " steps"); return( 0 ); }//+------------------------------------------------------------------+ 追伸:このアルゴリズムは、この関数に対してのみ有効であることを念頭に置いておくとよいでしょう。単調であるため、ルートは1つである。残念ながら、一次導関数が非単調であるため、タンジェント法を適用することはできません。True, 損失は全く感じられない -GetTickCount()を使った計算時間はカウントされない。 。 削除済み 2012.02.07 23:27 #220 解決策にはもう一工夫 を完成させてください;)) 1...151617181920212223 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
大丈夫です。すでにコードを 掲載しました。正解に揺さぶりをかけて、それで終わり。
結果は教えていただけますか...?:-)
不思議ですね~、正弦波でない幾何学的な進行のような感じでしょうか?
レナート、では方程式を解いたり、何か他のことが必要なのでしょうか?
もし方程式が
MiniLot^(x^0)+MiniLot^(x^1)+MiniLot^(x^2) ... + MiniLot^(x^(N-1))=VolMax
がxに関して解かれるのであれば、ニュートン法 かセカント法で 簡単に解けます。ただし、MiniLot、VolMax、Nを指定する必要があります。
それはかなりまともだ。すなわち、その後のロットオープンのステップがpipsで進むごとにトレンドの反転に近づいているので、注文サイズは大きくしないが、何かあったときのためにオープンしておくと言うことです)))
それはどうでしょう...。ただ問題を解いていただけなんです...反転とかトレンドとか、そういうことではないんです。
それについても、私なりに考えてはいるんです。
レナート、では方程式を解いたり、何か他のことが必要なのでしょうか?
今度はその解を式の形で書いてみたい。もう、計算式を導き出す。
ありがとうございました。
数式を導き出しても、脳にガンができるぞ。しかし、それを近似的に解く関数を書くことができる。しかし、それはもちろんxに関して解かなければならない場合です。
見せてください。
P.S. 私の脳は、このような奇妙で異質な問題を解くことを拒否しています。一次導関数の単調性は尊重されない。そして、このことが、xに関する方程式を、セカント/ニュートン法で簡単に、単純に解くことを妨げている。ダム検索(強く最適化)すると割とすぐに解決しますが。
しかし、2倍ではなく、単純な掛け算であれば、すべてが簡単でわかりやすいのですが。
ここで、最も間抜けなアルゴリズムを紹介します。早いんですけどね。10^(-8)の精度を得るためには、約50回の反復が必要です。
手始めに前ページのavtomat さんの写真です。
そして今度は私のです(同じパラメータ)。
そして、コード。
追伸:このアルゴリズムは、この関数に対してのみ有効であることを念頭に置いておくとよいでしょう。単調であるため、ルートは1つである。残念ながら、一次導関数が非単調であるため、タンジェント法を適用することはできません。True, 損失は全く感じられない -GetTickCount()を使った計算時間はカウントされない。
。
解決策にはもう一工夫
を完成させてください;))