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

 
webip:
伙计们,请帮忙。现在已经过去5天了,我还想不明白。我已经让我的EA在必要的标准触发时修改止损单。止损--应设置为最后一笔平仓订单的利润。但是当修改开始时,机器人总是设置1.0000的止损。我不明白哪里出了问题。我已经绞尽脑汁了。 有没有人有一些变体,如何获取前一个订单的利润并放置当前订单的止损?

嗯...看起来你把它存储在一个int 类型的变量中,而你希望它是一个双数

当前订单的取值不一定设置为前一订单的止损。它可能被放置在一个不应该被放置的地方。

 
artmedia70:

嗯...看起来你把它储存在一个int 类型的变量中,而你应该把它储存在double 中。

而且,也不一定能把现在的人的取舍放在以前的人的停止上......它可能被放置在一个不应该被放置的地方。


但它是你可以把它放在哪里。我一开始也以为自己背错了类型,但后来检查后发现没有问题。
 
webip:
但它是你可以把它放在哪里。我一开始也以为自己背错了类型,但后来检查后发现没有问题。

把它存储在一个双倍 变量中,很可能你把价格存储在一个int 变量中,所以小数部分 被切断了。
 
artmedia70:
将其存储在一个双倍 变量中,最可能的是你将价格存储在一个int 变量中,所以小数部分被切断了。


又检查了一遍。没有明白什么,但所有的变量都在其位置上。现在唯一的问题是,当修改订单的标准触发时,策略测试器 的图表直接冻结了。我应该怎么做?我想我们把所有的东西都背了一遍
 
webip:

又检查了一遍。我没有明白什么,但所有的变量都在其位置上。现在唯一的问题是,当修改订单的标准触发时,策略测试器的图表直接冻结了。我应该怎么做?我想 我们把所有的东西都背了一遍。

忘记锁上厨房里的冰箱了 :)

好吧,在一个光秃秃的地方我还能告诉你什么?

像这样吗?或者你确定你将价格存储在一个类型为double 的变量中?

 
artmedia70:

他们忘了锁上厨房里的冰箱 :)

好吧,我还能告诉你什么是最基本的?



不,冰箱是关着的。:))

不知道问题出在哪里。我已经正确地完成了所有的变量。这里是它被修改的那一块。也许你会明白问题出在哪里。

int modify_2(int tip)
 {

 int ticket;  //номер ордера
 double 
 price,   //Цена открытия
 tp;     //Новое значение цены
 double ts;
 bool modify=false;
 double take;
 
  for(int n=1;n<=OrdersTotal();n++)
   {
    ticket=mas_ord[n][1];
    if(mas_ord[n][4]!=tip)
     continue;
    price=mas_ord[n][6];
    tp=mas_ord[n][2];                          
    
    switch(tip)
     {

      case 0:
     OrderSelect(1,SELECT_BY_POS,MODE_HISTORY);
      take=OrderTakeProfit();
       ts=take;
       modify=true;
       break;
      
      case 1:
       ts=Ask+Level_sell_138*Point;
       modify=true;        
     } 
    //--------------
    if(modify==false)
     continue;
    
    bool ans=OrderModify(ticket,price,ts,tp,0);
    
    if(ans==false)
     { 
      n--;
     }
     else ord_2=true;
   }
   return;
 }
 
webip:


不,冰箱是关着的。:))

我不知道问题出在哪里。我已经正确地完成了所有的变量。这里是进行修改的那一块。也许你能找出问题所在。

这是教科书上的内容还是什么?

for(int n=1;n<=OrdersTotal();n++)

你需要像这样去处理订单。

for(int n=0;n<OrdersTotal();n++)

相应地,其余的数组将浮动...

我将通过尝试搜索历史记录来寻找最后一个关闭的订单,而不是明确地指向1

如此等等......。我不能再看下去了--首先,没有代码的完整性,不太可能有帮助;其次,现在是早上七点,我还没有睡觉......

 
webip:


不,冰箱是关着的。:))

我不知道问题出在哪里。我已经正确地完成了所有的变量。这里是进行修改的那一块。也许你能找出问题所在。

试着做双倍的工作!这不会有什么坏处,但可能有助于解决这个问题。
 
artmedia70:

这是教科书上的内容吗?

你必须像这样超额完成订单。

相应地,其余的数组将浮动...

我将通过尝试在历史中搜索最后一个关闭的订单,而不是明确地指向1。

以此类推......。我不能再搜索下去了--首先,如果没有代码的完整性,它很难帮助我,其次,现在是早上7点,我甚至还没有睡觉......



最后一个关闭的订单,我直接指出来,看它是否有效果。而那最后一个封闭的订单,我直接指出来,看看这个程序到底好不好用(而且效果很差)。而且,由于我在测试器中进行测试(而且我知道我感兴趣的订单会先打开),我的代码非常长,我将无法在这里复制它:)
 
webip:


不,冰箱是关着的。:))

我不知道问题出在哪里。我已经正确地完成了所有的变量。这里是进行修改的那一块。也许你能找出问题所在。

阵列

mas_ord

你有什么类型?

价格、tp、取值等变量是什么类型?我们为什么要在这里猜测?