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

 
//-------Пример(мой) приказа на открытие позиции с привязкой закрытия ----------------------------------------------------- 
                                                      
                                                      //Локальная переменная, открывающая ордер БАЙ
   int OrdBuy_1() = (OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-1500*Point,Bid+1500*Point));
   
        //-------Тогда закрытие именно для этого приказа может быть таким:-----------------------------------------------------
    
    if (OrdBuy_1()==true)                              //Если был открыт ордер №1, то...
     {                                                 //...выполнить следующее:...
                                                       //...при условии, что Желтая выше красной, с сужением(условие1)...
                                                       //...и есть верхний перелом Средней (условие2)...
                                                       //...ИЛИ при условии, что Желтая выше красной, с расширением(условие1а)...
                                                       //...и есть верхний перелом Боллинджера (условие2а)... 
     if ((Yellow_0>Red_0) && (Yellow_0-Red_0)<(Yellow_1-Red_1) && (MA_2 < MA_1 && MA_1 > MA_0) || (Yellow_0>Red_0) && (Yellow_0-Red_0)>(Yellow_1-Red_1) && (MB_2 < MB_1 && MB_1 > MB_0))
        {                              
       bool Ans=OrderClose(OrdBuy_1,Lots,Bid,0);       //...закрыть ордер №1 по цене Bid (лок.переменная)и выдать сообщение                                                      
         Alert("Попытка закрыть ордер БАЙ лотом("Lots"), с ценой открытия("Ask"). Ожидание ответа..");
        }
      }
   if (Ans==true)                                     // Если получилось,... 
        {                                             //... выдать сообщение
         Alert ("Закрыт ордер БАЙ лотом("Lots"),с ценой открытия("Ask"), цена закрытия("Bid"));
        }
 
这是一个对上面的帖子稍作修改的例子
 
rapid_minus:

r772raartmedia70 谢谢你的澄清。

我的理解是,当一个交易商在几个货币对、账户等使用几个EA,有几个未结订单时,就需要魔法了(对吗?)

我不这么认为,如果我认为我的专家顾问将在利润方面发挥作用,这对我来说就足够了。我仍在为一个经纪公司的一个账户的一个货币对开发,只有一个 订单应该是开放的,需要一个魔术师(或任何其他未结头寸的标识符),以便只有 在这个订单的某些条件出现时才会被关闭,其他对关闭其他订单有效的条件(可能在这个订单关闭后才开放)将对这个订单无效。

例如,当条件(a+b+c+d+d)或(a+d+e)或(f+c+i+c)出现时,一个订单可能会被打开,根据BAY打开的条件,它应该根据自己的条件关闭。(A+B+C+D)通过(F+J+L),(A+D+E)通过(H+L+M+N),(G+Z+I+K)通过(P+R+C+T)

在我看来,这里也不需要顺序循环。必须有一些简单的解决方案,不需要占用太多的空间。我在上面说了我的设想,但还没来得及分析,除了逻辑上的错误,我肯定还有语法上的错误(可能有括号丢失或变量设置错误等)。

不要认为这是一个问题,请帮助。没有它,我就被困住了。谢谢

确定最后一次开仓的票据,并对其进行处理。IMHO - 将票号存储在一个变量中是不好的,因为在发生任何故障时很容易丢失。要处理一个订单,必须首先选择它。而且你可以通过索引或票据来选择它。必须准确地知道这张票。在使用票据成功选择后,我们还必须检查该票据的头寸是否已被关闭。如果市场上只有一个头寸,那么这个周期就不是一个耗时的操作。但我们不需要在变量中存储票号。我们可以选择列表中的最后一个顺序,但是有一个排序依赖,这个排序依赖是可以改变的(早些时候,在终端有一个排序依赖,然后被删除,然后又出现,然后又被删除)--你相信它不会再出现吗?我不知道。当市场上只有一个仓位时,循环中只会有一次迭代--是很多吗?

收购条件是否已经到来?
如果是这样,我们将寻找最后一个未平仓的买入仓位的票据。
如果没有,那我们就从头开始。
如果我们找到了票据,我们就在给定的情况下做我们需要的事情,顺序是
否则,请转到开头

 
rapid_minus:
这是一个对上面的帖子稍作修改的例子

什么是OrdBuy_1()函数?这不是一个变量,而是一个函数。这种构造是完全错误的。一个函数被定义在任何其他函数之外,而不是内部。

 
artmedia70:

确定最后一次开仓的票据并进行处理。IMHO - 将票号存储在一个变量中是不好的,因为它很容易在任何故障中丢失它。要对订单进行操作,必须首先选择它。而且你可以通过索引或票据来选择它。必须准确地知道这张票。在使用票据成功选择后,我们还必须检查该票据的头寸是否已被关闭。如果市场上只有一个头寸,那么这个周期就不是一个耗时的操作。但我们不需要在变量中存储票号。我们可以选择列表中的最后一个顺序,但是有一个排序依赖,这个排序依赖是可以改变的(早些时候,在终端有一个排序依赖,然后被删除,然后又出现,然后又被删除)--你相信它不会再出现吗?我不知道。在周期中,将只有一次迭代,市场上只有一个位置--这是很重要的吗?

收购条件是否已经到来?
如果是这样,我们将寻找最后一个未平仓的买入仓位的票据。
如果没有,那我们就从头开始。
如果我们找到了票据,我们就在给定的情况下做我们需要的事情,顺序是
否则,请转到开头

谢谢你,我将尝试重做它。不过,虽然我将尝试根据你的解释重做,但在上面的例子中说出我的错误,这样我就不会再犯了。

谢谢

 
rapid_minus:

谢谢你,我将尝试重做它。不过,虽然我将尝试根据你的解释重做,但在上面的例子中说出我的错误,这样我就不会再犯了。

谢谢

我得走了--我没有时间。简而言之--如果变量是int,你为什么要把它当作bool来检查?止损和止盈的数值应该是正常的。我没有再看下去。
 

我摆弄了一下趋势线,学会了如何获得它。但事实证明,图形对象在测试器的优化过程中不起作用。

我应该怎么做?是否值得把它放在一个指标中?

Buffer[i]= ObjectGetValueByTime(chart_ID,name,Time[1],sub_window);

优化会以这样的方式进行吗?

 
artmedia70:
我得走了--我没有时间。简而言之--如果变量是int,你为什么要把它检查成bool?止损和止盈的数值应该是正常的。我没有再看下去。

嗯,我完全糊涂了。OrdBuy_1( )是在本函数上面的条件#1时打开BAY的函数。只是正确的类型可能是double而不是 int,因为它返回订单的开盘价。而且据我所知,我没有把它插入任何函数中;它是单独放置的,在int start()之后,提取所有必要的指标值并分析当前市场情况(我错了吗?)

我怎样才能使停顿和拍摄正常化,或者更好的是,我怎样才能完全不设置它们?

而且我不明白支票的事。我一定是误解了教程 - "bool OrderClose (int ticket, double lots, double price, int slippage, color Color=CLR_NONE)关闭市场订单的函数。"什么是支票?

总之,我们越走越远,越走越傻:(。

 
Forexman77:

我摆弄了一下趋势线,学会了如何获得它。但事实证明,图形对象在测试器的优化过程中不起作用。

我应该怎么做?是否值得把它放在一个指标中?

这样的优化会不会起作用?

计算一个虚拟的线而不是真实的线。
 
Forexman77:

我摆弄了一下趋势线,学会了如何获得它。但事实证明,图形对象在测试器的优化过程中不起作用。

我应该怎么做?是否值得把它放在一个指标中?

优化会以这样的方式进行吗?

不,它不会。图形只在可视化模式下显示。