[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 318

 
Zhunko:
確認はしていないが、なんとなく


完全に無駄なジェスチャー十分なdouble res=NormalizeDouble(res,1) 数学的にまだdouble res = 3; またはdouble res = 3.0を処理します。

印刷物(グラフ)でしかその差は確認できないが、これは筆者の問題意識にはない。

 
FAQ:


完全に無駄なジェスチャー十分なdouble res=NormalizeDouble(res,1) 数学的にまだdouble res = 3; またはdouble res = 3.0を処理します。

その差はプリントアウト(グラフ)でしか確認できないが、これは筆者の問題意識の中にはない。

まあ、こんなやり方もあるんですね。

double MathRoundDec(double dValue) 
 {
  return(MathRound(10 * dValue) / 10);  
 }
最初のバリエーションが良いと思います。より高速に動作するようになります。
 
Zhunko:

まあ、こんな感じでいいんじゃないでしょうか。

最初の選択肢がベストだと思います。より速く動作するようになります。


このオプションは

 double res=NormalizeDouble(res,1);

は最速でなければならない

 
皆さん、ありがとうございました。月曜日に報告しますね〜!全てのオプションを試してみます。
 
Vadimのバージョンは20〜25%高速化されていますが、反復回数が100万回を超えると効果が安定して現れ始めます。(チェック済み)
 
FAQ:
Vadimのバージョンは20〜25%高速化されていますが、反復回数が100万回を超えると効果が安定して現れ始めます。(チェック済み)

コードを見せてください、どのように確認したのですか?
 
FAQ:
Vadimのバージョンは20〜25%高速化されていますが、反復回数が100万回を超えると効果が安定して現れ始めます。(テスト済み)
ありがとうございました。
 
okvseok:

正しい書き方: if (OrderSelect (OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY) == OrderTakeProfit() == OrderClosePrice())Stop=false // つまり、最後からの注文がTake Profit(あるレベルに達した時点で利食いする)で終了した場合、Stop=false?(グローバル変数で停止)

この質問は、注文が if((iClose(NULL,0,1)<ma) && Stop==True) という条件によって開かれるために発生しました...

 

決して比較しない、正規化されていないテイク、役に立たない。ちなみにテイクオーダーの終値は テイクプライスとは異なる場合があります(リアル/デモ(オンライン))。

したがって、価格差モジュールを測定し、テスト値と比較する方がより正しい。

if(MathAbs(OrderTakeProfit()-OrderClosePrice())<2*Point){Stop=false;}
 
Vinin:

どのようにテストしたのか、コードを見せてください。

   double in = 3.24857,res;
   int i, pretime = GetTickCount();
   for(i=0;i<1000000;i++){res=MathRound(in*10)/10;}
   Print("Stage 1 : ",GetTickCount()-pretime);
   pretime = GetTickCount(); 
   for(i=0;i<1000000;i++){res=NormalizeDouble(in,1);}
   Print("Stage 2 : ",GetTickCount()-pretime);  
自分でもショックです :)))