任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 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。 当重复发出开仓信号时,对已开仓头寸 有利润的要求就会增加。因此,我避免了不合理的缩减。它可以在循环中简单解决,但插入到开放条件中并不方便,就像开关 一样我们需要一个 "阶乘",但是是求和一,而不是求乘!配方!到目前为止,我正在用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);
  }