[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 170

 
Zhunko:
在MQL4中,没有任何函数或宏可以返回构建号。


我现在明白了。森库。

我以为可以通过类比,从教程中删除一段代码,负责猫头鹰只在某个账户、密码等情况下进行交易,就可以做到一切。

 
大家好。请帮助。

要点是这样的。有一个机器人可以自动放置挂单,在一定的价格。

我们需要禁止下单,只要该订单或该价格的交易是开放的。

我已经尝试了三天,但没有收获。
 

有几个选项....做测试。

//
// проверим среди Выставленных ордеров /сработавших/ - есть ли Байка
//
void CheckOrdBye()
{
  int total = OrdersTotal();
  int TotalOpenOrders = 0;
  for( int cnt=0; cnt<total; cnt++){
     if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) == true)  {
        if (OrderSymbol()==Symbol() ) {
            if ( OrderType() == OP_BUY)   { OrdYN = 1; return;}
            if ( OrderType() == OP_SELL)  { OrdYN = 2; return;}
        }
     }
  }
}
 
bestfx:
大家好。请帮助。

要点是这样的。有一个机器人可以自动放置挂单,在一定的价格。

把这个放在订单发送块的前面。
if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderOpenPrice()==bad_price) // bad_price - значение цены при котором не хотите выставить очередной ордер
      return(0);
}  }
 
Aleksander:

有几个选项....做测试。



能否请您对代码进行评论?目前还不清楚该怎么做。
 
paladin80:
把这个放在订单发送块之前。


如果有例如30个订单怎么办?

其实质是:两个相反的交易,与平均价格相差40个点,直到小数点后三位,就会被放置。

假设欧元/美元为1.251,即买入1.253卖出1.249,那么市场就会夹住买入价格,回到1.251,现在它又以同样的价格下了两个订单。而当市场向买入价移动时,脚本可以下更多的订单,它们应该以同样的方式处理,即一个价格=一个订单。如何实现这一点?

 
bestfx:


例如,如果有30个订单怎么办?

其实质是:两个相反的交易,与平均价格相差40个点,直到小数点后三位,就会被放置。

假设欧元/美元为1.251,即买入1.253卖出1.249,那么市场就会夹住买入价格,回到1.251,现在它又以同样的价格下了两个订单。而当市场向买入价移动时,脚本可以下更多的订单,它们应该以同样的方式处理,即一个价格=一个订单。如何实现这一点?


只要做魔术==价格
 
FAQ:

只要做魔术==价格

你能不能说得更具体一点?
 
将价格除以数字=还原为整数,并将其写在medjic中,然后在设置新订单前搜索未结订单阵列的medjic。
 
bestfx:
大家好。请帮助。

其本质是以下几点。有一个机器人可以自动放置挂单,在一定的价格。
double main_price=1.251;
double price_to_byu=1.253;
double price_to_sell=1.249;
// --------
bool restriction=false;
if (Ask<=main_price)
if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUY || OrderType()==OP_BUYSTOP)
      {  if (OrderOpenPrice()==price_to_byu) restriction=true;
}  }  }
if (restriction==false)
{  OrderSend(NULL,OP_BUYSTOP,Lot,price_to_byu, ...);
   return(0);
}
// --------
restriction=false;
if (Bid>=main_price)
if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_SELL || OrderType()==OP_SELLSTOP)
      {  if (OrderOpenPrice()==price_to_sell) restriction=true;
}  }  }
if (restriction==false)
{  OrderSend(NULL,OP_SELLSTOP,Lot,price_to_sell, ...);
   return(0);
}

如果你要下很多类似的订单,你需要使用数组。如何?阅读关于数组的文章。