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

 

告诉我如何对待元引号引文中的这种栅栏)?

 
Zhunko:
我们需要拦截信息。

如果消息已经被执行,那么它已经被从队列中删除。

好的,我有以下问题。

#property indicator_chart_window
bool First = true;
int start(){
   if(First){
      int indexFirstLeftOnChart = WindowFirstVisibleBar();//иницилизируем под флагом, потому что в init() могут быть артефакты
      Alert("indexFirstLeftOnChart ", indexFirstLeftOnChart);
      First = false;
   }
   if(WindowFirstVisibleBar() != indexFirstLeftOnChart){//проверяем на каждом тике, изменилось ли значение
      Alert("first indexFirstLeftOnChart ", indexFirstLeftOnChart);      
      indexFirstLeftOnChart = WindowFirstVisibleBar();//если изменилось, записываем его
      Alert("second indexFirstLeftOnChart ", indexFirstLeftOnChart);
   }
   return(0);
}

- 它在每一个刻度 上发出哔哔声,因为事实证明,第一个indexFirstLeftOnChart是零。我如何与之斗争?509号建筑。

 
static bool First = true;
 
gyfto:

如果一条消息已经被执行,它就已经从队列中被删除。

通常在执行前进行拦截。否则,就不清楚为什么要拦截?
 
FAQ:
static bool First = true;


竺可桢
通常情况下,他们会在执行前拦截它。否则我不明白你需要拦截什么?


在执行之前没有任何问题。所以把AccountNumber()的有效性检查移到dll是没有意义的。这意味着账户号码已经存储在dll中。

 
static int indexFirstLeftOnChart;
 

我有东西在一个简单的点上,一个头痛的问题。有一个搜索订单的功能。

t - 所有订单的计数器。

p - 待处理订单的计数器。

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                 |
//+-------------------------------------------------------------------------------------+
void FindOrders(int& t, int& p)
{
   int total = OrdersTotal() - 1;
   t = 0;
   p = 0;
   for (int i=total; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderType() > 1)
      {
          p++;
      }
      t++;
      pr ("FindOrders(): " + "t = " + t + "   " + TimeToStr(TimeCurrent()));
      pr ("FindOrders(): " + "p = " + p + "   " + TimeToStr(TimeCurrent()));
   }
}

我从一开始就叫它。

int start()
{
   if (g_lastBarTime == Time[0])         // На текущем баре все необходимые действия..
       return (0);                               // ..уже были выполнены
   
   int oTotal = 0, oPending = 0;
   
   FindOrders(oTotal, oPending);
   
   int signal = GetGeneralSignal(oTotal);
   
   if (signal != SIGNAL_NO)
   {
       if (!Trade(signal))
       return(0);
   }
   else

事实上,当我们打开它时,即使没有订单,我们也会看到这样的情况(即使没有订单,也会打印成有订单的样子...)。

这怎么可能呢?

 
大家晚上好。我最近决定掌握MQL4(我一直在学习Sergey Kovalev的教程)。我决定今天做一个简单的开单脚本来练习。代码是:
int start()
{
OrderSend("EURUSD",OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Alert(GetLastError()) ;

返回。

}

脚本没有工作,显示错误4109(不允许交易)。当试图改变这种情况时,也出现了错误4016(未初始化的阵列)。我想知道是什么原因导致这些错误,以及如何创建一个简单的交易开仓脚本,毕竟。我只是复制了教程中的例子https://book.mql4.com/ru/trading/ordersend(我只是把函数GetLastError加入其中),结果还是出现了错误4109。

int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Alert(GetLastError());
   return;                                   // Выход из start()
  }

Кто может объяснить в чем проблема, буду очень признателен. Заранее спасибо.
 
存款=6型
 
你能告诉我是否有办法将订单上的评论设置为默认?