どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 724

 
borilunad:
私が問題を正しく理解していれば
int n,Nn;
switch(n)
  {case 1:Nn=1;break;case 2:Nn=3;break;case 3:Nn=6;break;case 4:Nn=10;break;case 5:Nn=15;break;default :Nn=0;}
どこからnを取るべきか不明...。
 
valeryk:
もし私がこの問題を正しく理解していれば、nをどこから取るべきかがはっきりしないのですが...。
ご感想をお寄せいただきありがとうございました。未決済注文の数はnに 等しい。オープンシグナルが繰り返されると、すでにオープンしているポジション に利益があることが条件となります。そのため、無理なドローダウンは避けています。ループの中で簡単に解けるが、スイッチの ように開始条件に挿入するのは不便階乗」が必要だが、掛け算ではなく、1の和算!フォーミュラ!今のところ、MathMaxで上記の計算式を使っています。
 
borilunad:
ご感想をお寄せいただきありがとうございました。未決済注文の数はnに 等しい。オープンのシグナルが繰り返されると、すでにオープンしているポジションに利益があることが条件となります。そのため、無理なドローダウンは避けています。ループは簡単に解けますが、オープニング条件に挿入するのは不便です。階乗」のようなものが必要なのですが、掛け算ではなく、和算であるべきなのです
なるほど、注文数が5個に限定されている場合はこうなりますね。この場合、スイープが一番早いです。
 
valeryk:
なるほど、注文数が5個までならそういうやり方もありですね。この場合のスクロールは、最速の方法です。

痛い;)?

const int iN[] = {1,3,6,10,15};

Nn = iN[n];
 
valeryk:
なるほど、注文数が5個までならそうしますよね。この場合、掃引が一番手っ取り早いです。
制限をかけたくないからこそ、数式を探しているのです。たぶん、そのうち思い浮かぶと思いますが、掃き出しとループがないと!?
 
VladislavVG:

痛い;)?

同意見です。しかし、例えばインデックス7の値を要求されたら?チェックが必要です。しかし、いずれにせよエラーはない。
 
borilunad:
ただ、制限されるのは嫌なので、何か処方を探しています。そのうち来るかもしれませんが、スイープとループがないと!?
そして、上の例では、inite内のループで、配列を埋める。そして、最大オーダーからのリサイズ。
 
VladislavVG:

痛い;)?

О!ありがとうございました。その方が近くて簡単!?配列がわかったので実験してみます。しかし、番号で無制限にできるわけではないでしょう。あるいは、n==2なら2番目のメンバーを、n==6以上ならそれ以上のメンバーを配列に入れることもできます。うまくいったかな!?

 
borilunad:

そうですね、配列はわざと大きくして、例えば100以上という、ありそうでなかったオーダー 数にすることも可能ですが、やはり限界がありますね。

制限なく入手したい場合は、ループのみとなります。別の関数にすれば、どの場所でも普通に呼び出せるようになります。スピードが落ちる:残念ながらMKLにはインライン関数がありません。

 
borilunad:
やられました))
input int MaxOrders = 5;  // внешняя

int Nn[];  // глобальная

int OnInit()
  {
   string txt="";
   int i=0,temp=0;
   ArrayResize(Nn,MaxOrders+1);
   for(i=1;i<=MaxOrders;i++) 
     {
      temp+=int(MathMax(i-1,0));
      Nn[i]=temp;
      txt=StringConcatenate(txt,"\n",temp);
     }
   Comment(txt);
   return(INIT_SUCCEEDED);
  }