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

 
vitor:
对不起,我曾经在Rumuse上工作,现在正在学习MT4。我在这里仍然是一个 "傻瓜"。11 .09 .我不能启动引言。请告诉我什么是错的。我很高兴能帮助你。
开立一个新的模拟账户,如果不成功,就重新安装终端。
 
你好,你能告诉我,如果同一个EA开出的订单被交易员关闭,或者被SL或TP关闭,如何禁用这个EA?
 
eropov:
你好,你能告诉我,如果同一个EA开出的订单被交易员或SL或TP关闭,如何禁用这个EA?
你看,这就是顾问,你不必给他们建议......如果有订单未完成,别担心,科里亚叔叔会来关闭一切。
 

啤酒之神

Понимаете, советники на то и советники, что не нужно им советовать... а если ордер открыт, то не переживайте, дядя Коля прийдет и всё закроет.

所以不可能阻止EA工作?

 
eropov:

啤酒之神

所以不可能停止EA?

按终端中的按钮禁用EA,订单当然不能回滚,手动关闭。


 

啤酒之神

通过按终端中的按钮禁用EA,订单不能回滚,当然要手动关闭

我正在写一个猫头鹰,它用SL和TP打开一个订单。

我需要一个条件,如果一个订单被TP关闭或被交易员关闭,我必须停止EA。如何以编程方式实现这一目标?

 

帮我解决这个问题,为什么如果循环只有2次,我先是等于0,然后马上等于4?

for(i=0,g=0,c=0;i<OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    if(OrderMagicNumber() == MasterMagicNumber)
      {
      starttime = OrderOpenTime();
      ArrayResize(prices,ArraySize(prices)+TradesCount);
      if(OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES))
      if(OrderMagicNumber() == MasterMagicNumber) endtime = OrderOpenTime();
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      times[i] = starttime;
      times[i+1] = endtime;
      tickets[i] = OrderTicket();
      symbol = OrderSymbol();
      Alert(i);
      while(g < TradesCount*(i+1))
        {
        if(OrderType() == OP_BUY)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()-LowOpen*Point;
            }else
            {
            prices[g] = prices[g-1]-step*Point;
            }
          }
        if(OrderType() == OP_SELL)
          {
          if(g == TradesCount*i)
            {
            prices[g] = OrderOpenPrice()+HighOpen*Point;
            }else
            {
            prices[g] = prices[g-1]+step*Point;
            }
          }
        g++;
        }
      }
    }

从这个脚本中,警报输出0,4。

 
Помогите решить задачу, почему если в цикле всего 2 прохода i сначала равна 0, а затем сразу равна 4?

就我对代码的理解而言

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;

一个中断,这意味着我们回到循环的起点,并根据循环条件增加i

大概是这样的

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) {i--; break; }

 
下午好,你能告诉我是否有一个基于两条平均线的简单EA?没有任何过滤器,跟踪止损或类似的东西。也就是说,如果短线从下往上与长线交叉,那么就会开出买单,关闭卖单;反之,如果短线从上往下与长线交叉,那么就会开出卖单,关闭买单。
 
first_may:
下午好,你能告诉我是否有一个基于两条平均线的简单EA?没有任何过滤器,跟踪止损或类似的东西。也就是说,如果短线从下往上穿过长线,就会开出买单,关闭卖单;反之,如果短线从上往下穿过长线,就会开出卖单,关闭买单。
EA 部分的Codebase。