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

 

你好!请帮助我。我正在用MQL4编写我的第一个EA。

我的专家顾问开了一个头寸,但没有关闭。它在日志中没有显示任何错误。

void OnTick()
  {RefreshRates();
  ma1=iMA(_Symbol,TimeFrame,Period_MA1,Shift_MA1,metod_ma1,PRICE_CLOSE,0);
ma2=iMA(_Symbol,TimeFrame,Period_MA2,Shift_MA2,metod_ma2,PRICE_CLOSE,0);


if (ma1<ma2)
{
SellPositionClose();
BuyPositionOpen();
}

if (ma1>ma2)
{
BuyPositionClose();
SellPositionOpen();
}
}
 

     
void BuyPositionOpen()  // покупка
{int res=0;
RefreshRates();
if (OrdersTotal()==0)
res=OrderSend(_Symbol,OP_BUY,Lots,Ask,3,0,0,"",Magic,0,Blue);
if (res<0) Print("OrderClose111111 error ",GetLastError());
}

void     SellPositionOpen() // продажа
{int res=0;
RefreshRates();
if (OrdersTotal()==0)
res=OrderSend(_Symbol,OP_SELL,Lots,Bid,3,0,0,"",Magic,0,Red);
if (res<0) Print("OrderClose111111 error ",GetLastError());
}

void BuyPositionClose() // закрытие длинной позиции
{RefreshRates();
if ((OrdersTotal()!=0) && (OrderMagicNumber()==Magic))
{
if (!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) Print("OrderClose error ",GetLastError());

 if(OrderType()==OP_BUY)
           
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
               }
               }
               
void SellPositionClose()  // закрытие короткой позиции
{RefreshRates();
if (OrdersTotal()!=0 && OrderMagicNumber()==Magic)
{
if (!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) Print("OrderClose error ",GetLastError());
    
     if(OrderType()==OP_SELL)
                
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,100,White))
               Print("OrderClose error ",GetLastError());
               
               }
               }
 
Terind:

你好!请帮助我。我正在用MQL4编写我的第一个EA。

我的专家顾问开了一个头寸,但没有关闭。它在日志中没有显示任何错误。

这个条件是不可行的。

if ((OrdersTotal()!=0) && (OrderMagicNumber()==Magic)) //ордер ещё не выбран с помощью OrderSelect()
 
evillive:

这是不可行的条件。

谢谢你。修正了它,现在可以工作了。
 
你好,我遇到了这个问题。当 在一个货币对的图表上画线 和矩形时,所有这些元素都显示在其他货币对的市场上。为什么会这样,我怎样才能消除它?
 
roymax:
你好,我遇到了这样一个问题。当我在一个货币对的图表上画线和矩形时,所有这些元素都显示在其他货币对的市场上。为什么会这样,我怎样才能消除它?
我需要展示它,因为其他人不知道如何做。而且最好是在代码中
 

这是一个长期存在的错误,你可以把它看作是一个特点 :)

1.在一些图形上画一些东西

2.按空格键,移动到另一对

图形对象保留在图表上

例子。

在欧元的图表上,已经画出了一条直线

移到磅上,减少了垂直比例

 
tara:

这是一个长期存在的错误,你可以把它看作是一个特点 :)

1.在一些图形上画一些东西

2.按空格键,移动到另一对

图形对象保留在图表上

图片765,不工作,对象确实存在,但在创建它们的图形上 :)

P.S.: Alexey描述的方式当然有效,但事实上这个动作发生在一个窗口中,图表符号发生变化,但对象是附着在窗口上,而不是附着在符号上))

 
AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)=false是否意味着账户被封锁了?还是只是一个贸易禁令?封锁账户还有哪些标准?而除了交易禁令外,如果登录被通过(我指的是错误64),到底是什么原因导致账户被封锁?
 
tara:

这是一个长期存在的错误,你可以把它看作是一个特点 :)

1.在一些图形上画一些东西

2.按空格键,移动到另一对

图形对象保留在图表上

例子。

而这一点并没有得到任何解决?
 

你好,我在文档中找了一下,但没有找到。我的问题是:是否可以将EA开头的这个图片改为你的标志?