OrderSend()函数中的一个错误? - 页 10

[删除]  
Roger:
你不能这样做。如果你不能在第一次打勾时就把条件弄好,那么整个小时就会被浪费掉。


在H1,该条件持续60分钟,即直到下一个条形图。

//+------------------------------------------------------------------+
//|                                                     чернoвик.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

static datetime LastTime = 0;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(NewBar()==true)
       {
        
           int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-250*Point,Ask+250*Point," ",16384,0,Green);
        
       }
  Comment ("LastTime   ",LastTime,"   NewBar   ",NewBar());  
//----
   return(0);
  }
//+------------------------------------------------------------------+
bool NewBar() 
    {
       
       if (iTime(NULL,0,0) != LastTime) 
       {
          LastTime = iTime(NULL,0,0);      
          return (true);
       } 
       else
          return (false);
     
    }

在测试器中查找评论。

 
pako:


在每根柱子上只保持一个位置开放

帕科,我很惊讶!你在这个话题中一直用 "阿尔巴尼亚代码 "来戳我,但你提供了什么?:)同样的事情,只是从侧面看!毕竟,你有一个新的酒吧 的功能,只是更原始地使用。然后是发送订单的功能,绕过所有的信号,等等等等。而解决问题的办法并不在这里!所以你有阿尔巴尼亚人。

Swan:
Taki然后
,只有当订单是在当前条形图上打开的。即在函数OpenBuy/Sell中的这一行移动





斯旺,谢谢你这就是需要做的事情!如果在开单功能中指定了新条目的时间,那么 无缝隙.我已经检查过了,不能不说一切工作得很好。我的专家顾问完全按照它应该有的方式工作。

我仍然有一个问题。为什么之前的例子没有用?以 前的例子也有这种情况。

// Проведение торговых операций
   if (signal != SIGNAL_NO)
       if (!Trade(signal))
           return (0);

我以为代码是这样的... 如果Trade(signal) 函数返回false,则退出该函数...并且在行中的lastBarTime 变量被更新之前。

lastBarTime = iTime(NULL, 0, 0);

将不会被更新。但事实证明,情况并非如此。我可以请你解释一下这一点吗?这甚至非常有趣。我很感兴趣。

 
hoz:

天鹅,谢谢你这就是需要做的事情!如果在开单功能中指定了新的条形图时间,那么 。 无遗漏.我已经检查过了,不能不说一切工作得很好。我的专家顾问完全按照它应该有的方式工作。

有一个问题仍然存在。为什么最后一个方案没有成功?那 里也有一个条件。

我以为代码是这样的......如果Trade(signal)) 函数返回false,则退出该函数......并且在行中的lastBarTime 变量被更新之前。

将不会被更新。但事实证明,情况并非如此。我可以请你解释一下这一点吗?这甚至非常有趣。我很感兴趣。

是的,但如果
signal == SIGNAL_NO

一个新条形图 的第一个刻度上,lastBarTime 被更新...


也许没有...

   if (signal != SIGNAL_NO)
它将按计划工作...这很难由代码,你必须检查它)
[删除]  
hoz:

帕科,我很惊讶!在这一主题中,你一直用 "阿尔巴尼亚代码 "来戳我,但你的建议是什么?:)同样的事情,但从侧面看!毕竟,你有一个新的酒吧的功能,只是更原始地使用。然后还有发送订单的功能,绕过所有的信号,等等等等。而解决问题的办法并不在这里!所以你就是那个阿尔巴尼亚人。

pako:
如果你不介意再次制定ToR,为什么要控制一个新酒吧?


hoz:
Formulate and easy!我仍然没有想到1点,但我将解释整个问题

订单的数量 不应该有任何限制。也就是说,订单可以以任何数量开立.........我们有多少个并不重要,但我们只需要在当前栏中打开1个订单。就是这样。

也就是说,一个新的交易栏打开了,所以我们可以在这个交易栏中打开1个订单,但在当前交易栏中不能超过1个订单。下一个订单只能在下一个柱子上打开,而不是更早。

这一点现在清楚了吗?

我根据ToR写道,在一个新栏杆上建立一个头寸

我在职权范围中没有看到其他内容。

祝您好运