アルゴリズム、解法、性能比較 - ページ 20 1...1314151617181920212223 新しいコメント Sergey Dzyublik 2017.12.11 10:21 #191 Реter Konow:理想的なソリューションにエンティティを追加する理由がわからない。意味がわからない。2つの帽子を同時にかぶることはありません。それはなぜか?まずこれを説明します。))"人を拷問して苦しめ、道徳的・心理的に下げている...。"呪われた世界(全集)著者:ドミトリー・ガニン Реter Konow 2017.12.11 10:37 #192 Sergey Dzyublik: "人を拷問して苦しめる、道徳的・心理的に下げる......。"呪われた世界(文庫)著者:ドミトリー・ガーニン私の不注意で、道徳的・心理的に苦しませた皆さんに心からお詫び申し上げます。ある問題に対する完璧な解決策を見出す以外の目的は、追求していない。それどころか、私自身、理解不能な攻撃や、やる気のない攻撃に悩まされました。 どうやら、これは社会に「ついて行きたい」と思わない人が払う代償のようだ。 まあ、私は自分の選択をしたのであって、誰かを責めるつもりはないのですが......。 Alexandr Andreev 2017.12.11 10:40 #193 Реter Konow:理想的なソリューションにエンティティを追加する理由がわからない。あなたのコードを理想的なソリューションとして語るのは、まだ早いかもしれませんね。そして、実際の帽子のコレクションはこちら Реter Konow 2017.12.11 10:47 #194 Alexandr Andreev: あなたのコードを完璧なソリューションとして語るには、まだ早いかもしれません。いわば一般論として話したのですが...。"なぜかというと、理想的な解決策(どんな解決策でも)には、実体を加えること"多くの方々から非常に貴重なアイデアをいただき、正しい間違いを指摘していただいたと言わざるを得ません。1.文字数エラー。2. 共通文字列内の部分文字列の衝突によって発生するエラー。3.文字列ごとに割り当てられたメモリがオーバーフローしている 4.4.アレイサイズを変更 するとデータが消去されるとの誤信皆様、このような間違いをご指摘いただき、本当にありがとうございます Реter Konow 2017.12.11 10:56 #195 Реter Konow:...皆さん、間違いを指摘してくれて本当にありがとうございました客観的に見れば、最後の理想的な解決策は、誰にでも あるものだと思います。 Alexandr Andreev 2017.12.11 11:00 #196 Реter Konow:客観的に見れば、最後の理想的な解決策はみんなの ものです。なぜなら、私は間違いを指摘し、人とコミュニケーションをとり、交流することでそれにたどり着いたからです。もう一度言いますが、最後の選択肢はあくまで選択肢であって、その前にあったものは全く選択肢ではありませんそして、それが完璧であることは論点の一つである Реter Konow 2017.12.11 11:02 #197 Alexandr Andreev: もう一度言いますが、最後の選択肢はあくまで選択肢であって、その前にあったものは全く選択肢ではありませんそして、それが完璧であることは、論外である。(苦笑) いいですね。私だけのために完璧にしてください。誰もが自分の尺度で判断できる。 Alexandr Andreev 2017.12.11 11:05 #198 DEBAGプリントと彗星に話を移そうか、誰か考えはあるか? Igor Makanu 2019.10.12 08:48 #199 は、関数が実行された場合の実行時間をテストしました。 1. クラスに包まれている 2. クラスにラップされ、そのクラスのインスタンスがnew演算子 で生成される。 3. ラッパーを使わずに関数を呼び出すだけ //+------------------------------------------------------------------+ #define SpeedTest(count_x10,msg,EX) {uint mss=GetTickCount(); ulong count=(ulong)pow(10,count_x10);for(ulong i=0;i<count&&!_StopFlag;i++){EX;} \ printf("%s: loops=%i ms=%u",msg,count,GetTickCount()-mss);} //+------------------------------------------------------------------+ class COpen { private: string m_symbol; public: COpen(const string symbol): m_symbol(symbol) {} double getOpen(const int bar) const { return(iOpen(m_symbol, 0, bar)); } }; //+------------------------------------------------------------------+ void OnStart() { #define loop_x10 9 //1. COpen sym1(_Symbol); srand(GetTickCount()); SpeedTest(loop_x10, "1. COpen", sym1.getOpen(rand())); //2. srand(GetTickCount()); SpeedTest(loop_x10, "2. new COpen", COpen *sym2 = new COpen(_Symbol); sym2.getOpen(rand()); delete sym2; ); //3. srand(GetTickCount()); SpeedTest(loop_x10, "3. iOpen",iOpen(NULL,0,rand());); } //_______________________________________________________________________ 2019.10.12:39:29.802 SpeedTst_class (EURUSD,M1) 1.COpen: loops=1000000000 ms=41016 2019.10.12:41:05.352 SpeedTst_class (EURUSD,M1) 2. new COpen: loops=1000000000 ms=95562 2019.10.12:41:45.939 SpeedTst_class (EURUSD,M1) 3. iOpen: loops=1000000000 ms=40578 テスト1と3は性能の点で並んでいる。つまり、クラスへの関数呼び出しのラップは重要ではなく、テスト2はコンストラクタとデストラクタの呼び出しがあるため時間がかかっている Algorithms, solution methods, comparison ループの後ろで変数を宣言するのか、ループの中で宣言するのか? Errors, bugs, questions Igor Makanu 2019.12.11 16:19 #200 SymbolInfoDouble() の実行速度テスト #property version "1.00" // количество итераций теста #define LOOPx10 8 #define SpeedTest(count_x10,msg,EX) {uint mss=GetTickCount(); ulong count=(ulong)pow(10,count_x10);for(ulong i=0;i<count&&!_StopFlag;i++){EX;} \ printf("%s: loops=%i ms=%u",msg,count,GetTickCount()-mss);} //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { double lot; srand(GetTickCount()); SpeedTest(LOOPx10, "calcNormVol_my()", lot = rand() / 1000.0; calcNormVol_my(lot)) srand(GetTickCount()); SpeedTest(LOOPx10, "calcNormVol_alexeyvik()", lot = rand() / 1000.0; calcNormVol_alexeyvik(lot)) srand(GetTickCount()); SpeedTest(LOOPx10, "calcNormVol_fxsaber()", lot = rand() / 1000.0; calcNormVol_fxsaber(lot)) srand(GetTickCount()); SpeedTest(LOOPx10, "calcNormVol_my_2()", lot = rand() / 1000.0; calcNormVol_my_2(lot)) } //+------------------------------------------------------------------+ double calcNormVol_my(const double value) { const static string sym = _Symbol; return(NormalizeDouble(fmax(fmin(SymbolInfoDouble(sym, SYMBOL_VOLUME_STEP) * round(value / SymbolInfoDouble(sym, SYMBOL_VOLUME_STEP)), SymbolInfoDouble(sym, SYMBOL_VOLUME_MAX)), SymbolInfoDouble(sym, SYMBOL_VOLUME_MIN)), 2)); } //+------------------------------------------------------------------+ double calcNormVol_alexeyvik(const double value) { // const string sym = _Symbol; return( NormalizeDouble(fmax(fmin(SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_STEP) * round(value / SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_STEP)), SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MAX)), SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MIN)), 2) ); } //+------------------------------------------------------------------+ const double VolumeStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP); const double VolumeMax = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX); const double VolumeMin = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN); const int O_DigitsInVolumeStep = 2; double calcNormVol_fxsaber( const double value ) { return((value > VolumeMax) ? VolumeMax : ((value < VolumeMin) ? VolumeMin : NormalizeDouble(VolumeStep * (int)(value / VolumeStep + 0.5), O_DigitsInVolumeStep))); } //+------------------------------------------------------------------+ double calcNormVol_my_2( const double value ) { const static double volumeStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP); const static double volumeMax = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX); const static double volumeMin = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN); const static int o_digitsInVolumeStep = 2; return((value > volumeMax) ? volumeMax : ((value < volumeMin) ? volumeMin : NormalizeDouble(volumeStep * (int)(value / volumeStep + 0.5), o_digitsInVolumeStep))); } //+------------------------------------------------------------------+ 2019.12.11 21:13:08.896 tst_volum (EURUSD,W1) calcNormVol_my(): loops=100000000 ms=173406 2019.12.11 21:15:45.425 tst_volum (EURUSD,W1) calcNormVol_alexeyvik(): loops=100000000 ms=156531 2019.12.11 21:15:45.533 tst_volum (EURUSD,W1) calcNormVol_fxsaber(): loops=100000000 ms=110 2019.12.11 21:15:45.916 tst_volum (EURUSD,W1) calcNormVol_my_2(): loops=100000000 ms=390 1...1314151617181920212223 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
理想的なソリューションにエンティティを追加する理由がわからない。意味がわからない。
2つの帽子を同時にかぶることはありません。それはなぜか?
まずこれを説明します。))
"人を拷問して苦しめ、道徳的・心理的に下げている...。"
呪われた世界(全集)著者:ドミトリー・ガニン
"人を拷問して苦しめる、道徳的・心理的に下げる......。"
呪われた世界(文庫)著者:ドミトリー・ガーニン
私の不注意で、道徳的・心理的に苦しませた皆さんに心からお詫び申し上げます。
ある問題に対する完璧な解決策を見出す以外の目的は、追求していない。
それどころか、私自身、理解不能な攻撃や、やる気のない攻撃に悩まされました。
どうやら、これは社会に「ついて行きたい」と思わない人が払う代償のようだ。
まあ、私は自分の選択をしたのであって、誰かを責めるつもりはないのですが......。
理想的なソリューションにエンティティを追加する理由がわからない。
あなたのコードを理想的なソリューションとして語るのは、まだ早いかもしれませんね。
そして、実際の帽子のコレクションはこちら
あなたのコードを完璧なソリューションとして語るには、まだ早いかもしれません。
いわば一般論として話したのですが...。
"なぜかというと、理想的な解決策(どんな解決策でも)には、実体を加えること"
多くの方々から非常に貴重なアイデアをいただき、正しい間違いを指摘していただいたと言わざるを得ません。
1.文字数エラー。
2. 共通文字列内の部分文字列の衝突によって発生するエラー。
3.文字列ごとに割り当てられたメモリがオーバーフローしている 4.
4.アレイサイズを変更 するとデータが消去されるとの誤信
皆様、このような間違いをご指摘いただき、本当にありがとうございます
...
皆さん、間違いを指摘してくれて本当にありがとうございました
客観的に見れば、最後の理想的な解決策は、誰にでも あるものだと思います。
客観的に見れば、最後の理想的な解決策はみんなの ものです。なぜなら、私は間違いを指摘し、人とコミュニケーションをとり、交流することでそれにたどり着いたからです。
もう一度言いますが、最後の選択肢はあくまで選択肢であって、その前にあったものは全く選択肢ではありませんそして、それが完璧であることは論点の一つである
もう一度言いますが、最後の選択肢はあくまで選択肢であって、その前にあったものは全く選択肢ではありませんそして、それが完璧であることは、論外である。
DEBAGプリントと彗星に話を移そうか、誰か考えはあるか?
は、関数が実行された場合の実行時間をテストしました。
1. クラスに包まれている
2. クラスにラップされ、そのクラスのインスタンスがnew演算子 で生成される。
3. ラッパーを使わずに関数を呼び出すだけ
2019.10.12:39:29.802 SpeedTst_class (EURUSD,M1) 1.COpen: loops=1000000000 ms=41016
2019.10.12:41:05.352 SpeedTst_class (EURUSD,M1) 2. new COpen: loops=1000000000 ms=95562
2019.10.12:41:45.939 SpeedTst_class (EURUSD,M1) 3. iOpen: loops=1000000000 ms=40578
テスト1と3は性能の点で並んでいる。つまり、クラスへの関数呼び出しのラップは重要ではなく、テスト2はコンストラクタとデストラクタの呼び出しがあるため時間がかかっている
SymbolInfoDouble() の実行速度テスト
2019.12.11 21:13:08.896 tst_volum (EURUSD,W1) calcNormVol_my(): loops=100000000 ms=173406
2019.12.11 21:15:45.425 tst_volum (EURUSD,W1) calcNormVol_alexeyvik(): loops=100000000 ms=156531
2019.12.11 21:15:45.533 tst_volum (EURUSD,W1) calcNormVol_fxsaber(): loops=100000000 ms=110
2019.12.11 21:15:45.916 tst_volum (EURUSD,W1) calcNormVol_my_2(): loops=100000000 ms=390