任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 464

 

我无法解决这个问题,我变得很沉闷,啤酒也无济于事。

我有。

1 - 有30个EA在一个图表或符号上工作,他们都有不同的MEGIC号码

2- 每个EA都有3-5个未结订单...

任务是在图表中打印所有的数字,并在上面打印总的利润/损失......

我正在挖掘,但没有任何进展。

  #define  MagicN 0
#define  MagProf 1
 ArrayResize(mags,100,1000);ArrayInitialize(mags,0);  
   for(int f=OrdersTotal()-1; f>=0; f--)
      if(OrderSelect(f,SELECT_BY_POS))
              {
               for(int z=100-1; z>=0; z--)
                 {
                  if(mags[z][MagicN]==OrderMagicNumber())
                  mags[z][MagProf]+=OrderProfit()+OrderCommission()+OrderSwap();

                  if(mags[z][MagicN]!=OrderMagicNumber())
                    {
                     mags[z][MagicN]=OrderMagicNumber();
                     mags[z][MagProf]+=OrderProfit()+OrderCommission()+OrderSwap();
                    }
                 }
              }

好人帮忙,能者居之!!!。)))))))

 
VOLDEMAR:

我无法解决这个问题,我变得很沉闷,啤酒也无济于事。

我有。

1 - 有30个EA在一个图表或符号上工作,而且都有不同的Medgic号码

2- 每个EA都有3-5个未结订单...

任务是在图表中打印所有的数字,并在上面打印总的利润/损失......

我正在挖掘,但没有任何进展。

好人帮忙,能者居之!!!。)))))))


我们创建一个二维数组。在第一个维度中,我们存储了积累的利润,在第二个维度中,我们存储了马吉克。

在处理订单时,我们在数组中寻找一个神奇的数字。 如果没有找到,我们就增加数组,如果找到,我们就增加利润。

处理完成后,我们在屏幕上显示结果

 
Vinin:


创建一个二维数组。在第一个维度中,我们存储了累积的利润,在第二个维度中,我们存储了mejic。

在处理订单时,我们在数组中寻找订单,如果没有找到,我们就增加数组,如果找到,我们就增加利润。

处理完成后,在屏幕上显示结果


这不正是我所写的吗?
 
VOLDEMAR:

这不正是它所说的吗?

并非如此。在这里,你定义了数组的大小,并在Magik上搜索了一个索引。我没有看到这一点。
 
for(int f=OrdersTotal()-1; f>=0; f--) // 订单搜索
如果(OrderSelect(f,SELECT_BY_POS))
{
for(int z=0; z<ArraySize(mags); z++)//第二个循环是关于数组中的元素数量。
{
if(mags[z][MagicN]==OrderMagicNumber()) // 如果一个MagicNumber已经存在,让我们加上利润。
{
mags[z][MagProf]+=OrderProfit()+OrderCommission()+OrderSwap()。
}
否则/如果没有磁带
{
ArrayResize(mags,z,1000); //扩展数组
mags[z][MagicN]=OrderMagicNumber(); //存储磁带。
}
}

}

但是用这个结构,终端不会测试,它说关键错误

 
VOLDEMAR:
for(int f=OrdersTotal()-1; f>=0; f--) // 订单搜索
如果(OrderSelect(f,SELECT_BY_POS))
{
for(int z=0; z<ArraySize(mags); z++)//第二个循环是关于数组中的元素数量。
{
if(mags[z][MagicN]==OrderMagicNumber()) // 如果一个MagicNumber已经存在,让我们加上利润
{
mags[z][MagProf]+=OrderProfit()+OrderCommission()+OrderSwap()。
}
否则/如果没有磁带
{
ArrayResize(mags,z,1000); //扩展数组
mags[z][MagicN]=OrderMagicNumber(); //存储磁带。
}
}

}

但是用这个结构,终端不会测试,它说关键错误


什么是MagicN 变量,它的变化在哪里?
 
定义中的参数为0,定义中的MagProf值为1
 
VOLDEMAR:
定义中的参数为0,定义中的MagProf值为1


试试这个

#define MagicN 0
#define MagProf 1
double mags[10][2];
int CountMagic=0;

void CalcMagic()
  {
   for(int f=OrdersTotal()-1; f>=0; f--) // перебор ордеров
      if(OrderSelect(f,SELECT_BY_POS))
        {
         mags[FindMaic(OrderMagicNumber())][MagProf]+=OrderProfit()+OrderCommission()+OrderSwap();
        }

  }
//+------------------------------------------------------------------+

int FindMaic(int Magic)
  {
   int Res=-1;
   for(int i=0;i<CountMagic;i++)
     {
      if(mags[i][MagicN]==Magic)
         Res=i;
      break;
     }
   if(Res==-1)
     {
      Res=CountMagic;
      CountMagic++;
      if(CountMagic>=ArrayRange(mags,0))
        {
         ArrayResize(mags,CountMagic+10);
        }

     }

   return(Res);
  }
//+------------------------------------------------------------------+

多维 数组中,可以使用ArrayRange()来定义维度。

 
有一个StopLetter和Freeswell,我可以通过marketinfo得到,但有同样的限制,但这涉及到最小的到期日期,通常是15分钟。 也就是说,如果我把一个挂单,如果没有被触发,它将自我删除的最小时间是15分钟。这就是问题所在--我如何以编程方式知道这个极限?
 
Desead:
有一个stopplay和freezevel,我可以通过marketinfo得到,也有同样的限制,但这涉及到最小的到期日,通常是15分钟。也就是说,如果我下了一个挂单,如果没有被触发,它将自我删除的最小时间是15分钟。这就是问题所在--我如何以编程方式知道这个极限?

问问你的经纪人!有些人不执行过期。

我不把它放在订单中,但我根据条款删除它。