顾问是否适用于现实生活? - 页 30

 
FOReignEXchange:

时机一到,我一定会继续前进。

祝您好运
 
dentraf:

祝您好运!

谢谢你!
 
FOReignEXchange:

这个想法是在高波动的无序市场中进行交易。现在所有的主要货币对都是这样的。波动性大,逻辑性强,没有系统的作用。这是一场混乱。....
来吧。一切都像以前那样运作。
 

在今天的波动之后,我将测试者的结果与真实的结果进行了比较。不幸的是,在这样的市场中,暴露出重大的差异。

我按分钟拆开了终端日志,看到了一个好东西。所有的点都被精确地设置在一个点上。机器人已经收集了它在这一领域能够获得的所有利润。但所有这些利润都被浪费了,因为有一个问题。这个问题是可以解决的,但我不能理解为什么这是一个问题。也就是说,我们不能删除不必要的订单。我认为这有两个原因。

第一:在日志中这样写道

22:23:30 '882613':删除挂单#26344474 买入止损4.00 EURUSD at 1.3787 sl: 1.3773 tp: 1.3799
22:23:30 '882613': 删除挂单#26344474 买入止损4.00 EURUSD at 1.3787 sl: 1.3773 tp: 1.3799 failed [Invalid parameters]

22:37:27 '882613': 删除挂单#26347980 卖出止损4.00 EURUSD at 1.3668 sl: 1.3682 tp: 1.3656
22:37:27 '882613': 删除挂单#26347980 卖出止损4.00 EURUSD at 1.3668 sl: 1.3682 tp: 1.3656 failed [Invalid parameters]
22:37:27 '882613': 删除挂单#26347980 卖出止损4.00 EURUSD at 1.3668 sl: 1.3682 tp: 1.3656
22:37:28 '882613': 删除挂单#26347980在1.3668卖出4.00 EURUSD sl: 1.3682 tp: 1.3656失败 [参数无效]

这两个订单没有被删除,而且都造成了损失。第二笔订单试图被删除两次。我不明白为什么它们没有被删除。一切都在正常工作,但在这里却不正常,即使你把RefreshRates()放在删除函数之前。

其次是。

我想这是一个错误。看来,终端没有足够的记忆或大脑。它忘记了我们选择的是一个订单。这些都是不起作用的作品。

if (//Тут условие//)
   {
   if (OrderSelect(ticket_buy,SELECT_BY_TICKET)==true)
     {
     if (OrderType()==OP_BUYSTOP && Ask>(OrderOpenPrice()-4*Point)) 
        {
        i=0;
        while (i<10)
              {
              if (i>0) Sleep(500);      
              RefreshRates(); OrderDelete(ticket_buy); 
              err=GetLastError();
              if (err==0)
                 {
                 ticket_buy=0; return;
                 }
              i++;
              }
        }
     }
   }

所有的条件都满足了,我用评论检查了它们。在检查订单类型的阶段,一切都被卡住了。删除的功能不再使用。虽然他们应该这样做,因为所有的条件都满足了,而且所有的评论都检查了它们。这不是我第一次注意到,当我们选择一个订单,然后在条件中输入所选订单的任何参数时,我们有时无法正确读取这个条件。条件中顺序参数的数量越多,条件失败的频率越高。在这种情况下,我们有OrderType()和OrderOpenPrice()参数。 我想我们很多人都注意到这个奇怪的事情。我们如何才能摆脱它?或者也许问题出在其他方面?我忘了说,在这种情况下,日志中没有错误,只是条件没有得到满足,尽管它应该得到满足。

我认为其他方面可能没有问题,因为条件不满足的情况很少,通常这部分工作一切正常,但有时不工作,带来损失。

不要苛责这种文盲的代码,我是自学成才。

究竟为什么撤单会出现这样的问题?我的订单完全按照需要下达,机器人收取所有利润。但是,一切都变得一团糟,因为我们不能删除不必要的订单!如果你摆脱了这些问题,一切都会如愿以偿!

 
FOReignEXchange:

从日志来看,代码只是没有及时到达那里。

也就是说,当命令被触发时,删除已经在进行中。

 
TheXpert:

从日志来看,代码只是没有及时到达那里。

也就是说,当命令被触发时,删除已经在进行中。


而挂单是在完全相同的时间设置的,不会错过。为什么会出现删除的问题?特别是在第二种情况下,他两次试图删除它。
 
FOReignEXchange:
而挂单是在完全相同的时间设置的,不会错过。为什么会出现删除的问题?更有甚者,在第二种情况下,他试图删除它两次。

仔细看 -- 这是你第二次试图删除一个已执行的订单,而不是一个限价订单。

对于设置,有停止级别,而对于移除,只有自由级别。

 
TheXpert:

仔细看 -- 这是你第二次试图删除一个已执行的订单,而不是一个限价订单。

而且,有止损线可以下单,但只有freesliders可以删除,而且是在有的时候。


第一个案例的一切都很清楚。非常感谢您!你熟悉第二种情况吗?它更重要,因为它发生的频率更高,造成的损失更大。在条件方面一切正常。而且这不是市场的速度,有很多时间可以删除它。只是条件没有得到满足,尽管应该得到满足。
 
FOReignEXchange:

你是否熟悉第二种情况?这个条件就是不工作,尽管它应该如此。

也许这个条件有时会失效,即它的右手边

if (OrderType()==OP_BUYSTOP && Ask>(OrderOpenPrice()-4*Point))

在比较之前将 "问 "归一。

 
OnGoing:

也许这个条件有时会失效

在比较之前将 "询问 "规范化。


像这样吗?

NormalizeDouble(Ask,Digits)>(OrderOpenPrice()-4*Point))