初学者的问题 MQL4 MT4 MetaTrader 4 - 页 141

 
你能教我如何在MT4中从市场和挂单 中打开和关闭交易吗?
 

亲爱的程序员们,你们好!!
我正在为蜡烛图制作一个刻度线计数器,我一定是走错了!"。我想让它在价格只上升的时候计算点数,但它在上升和下降的时候都会计算(所有的点数,而我只想要增长的点数)看一下plz...

double CountTickBUY()
{

double old_price;
double delta_cur; 
double price = 0;
double old_open_price = 0;

for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
         if(OrderSymbol() == _Symbol && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
           {
           old_price = iClose(NULL, 0 , i);
           price = iOpen(NULL, 0 , i);

           delta_cur = old_price > price;
           if(delta_cur > 0) 
             {
             count_plusbuy++;
             }
           }
   }
   return(count_plusbuy);
}
 
sviter-pro:

亲爱的程序员们,你们好!!
我正在为蜡烛做一个蜱虫计数器,但有些地方出了问题!我想知道为什么?我想让它在价格只上升的时候计算点数,但它在上升和下降的时候都会计算(所有的点数,而我只想要增长的点数)看一下plz...

int CountTickBUY()
{
   static double    old_price     = Bid;
   static datetime  time_bar      = Time[0];
   static int       count_plusbuy = 0;
   
   if( time_bar != Time[0] )
   {
      count_plusbuy = 0;
      time_bar      = Time[0];
   }
   
   if( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid;

   return(count_plusbuy);
}
 
Konstantin Nikitin:

非常感谢您!

 

Konstantin Nikitin: Считает тики на кождой свече хорошо, но по 2 раза! Тоесть если отсчет пошел от 1.00000 и дошел до 1.00100 он 100 пунктов щитает, потом когда спустилась цена до 1.00080 он ждет и не считает, но когда цена опять начинает расти от 1.00080 то опять начинает считать пункты, а надо что бы ждал до 1.00100 и от нее считал дальше!!!

int CountTickBUY()
{
   static double    old_price     = Bid;
   static datetime  time_bar      = Time[0];
   static int       count_plusbuy = 0;
   
   if( time_bar != Time[0] )
   {
      count_plusbuy = 0;
      time_bar      = Time[0];
   }
   
   if( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid;

   return(count_plusbuy);
}



 

请解释"IsTradeAllowed"函数在调用其第二种形式时到底检查什么。

我知道第一个表格检查是否允许自动交易,以及交易流是否自由。第二种形式呢?当调用第二个表格时,究竟发生了哪些检查?

 
Asa saas:

请解释"IsTradeAllowed"函数在调用其第二种形式时究竟检查什么。

我知道第一个表格检查是否允许自动交易,以及交易流是否自由。第二种形式呢?当第二个表格被调用时,究竟会发生哪些检查?

第二种形式返回有关在指定时间对指定符号进行交易的可能性的信息。


贸易流是否是自由的 isTradeContextBusy

 
Alekseu Fedotov:

调用的第二种形式返回有关在指定时间对某一符号进行交易的能力的信息。


贸易流是否是自由的 isTradeContextBusy

IsTradeAllowed "函数的第一种形式不是也在检查贸易线程是否自由吗?

我只是使用 "IsTradeAllowed "函数的第二种形式,在我执行订单之前找出市场是否开放。

然而,我不太明白我是否需要使用一个单独的函数来检查像 "IsTradeContextBusy "这样的自由流是否可用,或者 "IsTradeAllowed "的第二种形式是否已经做了这种检查。

 
Asa saas:

IsTradeAllowed "的第一种形式不也是检查贸易流是否自由吗?

我只是使用 "IsTradeAllowed "函数的第二种形式,在我用订单进行交易之前找出市场是否开放。

然而,我不太确定我是否需要单独使用一个函数来检查像 "IsTradeContextBusy "这样的自由流是否可用,或者 "IsTradeAllowed "的第二种形式是否已经做了这种检查。

1.没有

2.不,它不允许使用专家顾问进行交易,但它可以手动进行交易。

3. 需要使用另一个函数来检查交易流("IsTradeContextBusy()")。

 
Asa saas:

第一个表格 "IsTradeAllowed "不也是检查贸易流是否自由吗?

是的,确实如此。至少,它在文档中是这么说的。我自己也不知道为什么要这样做,但事实仍然是这样。

Возвращаемое значение

Возвращает true, если эксперту разрешено торговать и поток для выполнения торговых операций свободен, иначе возвращает false.

我只是使用 "IsTradeAllowed "函数的第二种形式,在我执行订单之前找出市场是否开放。

然而,我不太确定是否必须单独使用 "IsTradeContextBusy "这样的检查自由流动的功能,还是第二种形式的 "IsTradeAllowed "已经执行了这样的检查。

但对于第二种形式就不清楚了。它对未来或过去的时间负责。