[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 219

 

谢谢,把这段代码粘贴到EA中,编译时出现了'(' -函数 定义在bool ExistOrders之后出现了意外 ,有一个额外的括号或其他东西。

for (int k=0;k<OrdersTotal();k++)//我们在所有未结订单中进行审查
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES)。
如果(!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0," ,123,0,Red)。
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdersTotal(), ty;
如果(sy=="0")sy=符号()。
for (i=0; i<k; i++)
{
如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType()。
如果(ty<6)
{
如果((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
如果(mn<0 || OrderMagicNumber()==mn)返回(True)。
}}}}return(False)。
}
//----
return(0);
}
 
Graall:

谢谢,把这段代码粘贴到EA中,编译时出现了'(' - 函数定义在bool ExistOrders之后出现了意外 ,有一个额外的括号或其他东西。


将ExistOrders 函数从start函数中取出。
int start()
{
.....
for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
}
   return(0);
 }

    bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
 
 

是的,ExistOrders函数是一个自定义函数, 把它从启动函数中 拿出来了,错误是一样的,它在与EA的第一部分中的一些东西作斗争,我把它完全粘贴 出来了。


//+------------------------------------------------------------------+

//| 1.mq4 |
//| Oleg 2013 |
//||
//+------------------------------------------------------------------+
#版权 归 "Oleg 2013 "所有
#define Magic 123

//----输入参数
外置 int TakeProfit = 100;
外置双Lots = 0.1。
外部int Shag = 100;
字符串SY。
int ty。
int op;
int mn;
int k;
int i;
//--------------------------------------------------------------------------------------------
int start()
{
// 搜索第一个零元素
int total=OrdersTotal()。
如果(total==0)
{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0," ,123,0,Red)。
OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0," ,123,0,Blue)。
for (int i=0;i<OrdersTotal();i++)//查看所有未结订单
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)。
如果 ( OrderType()==OP_SELLLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask-(TakeProfit/0.2)*Point, 0)。
如果( OrderType()==OP_BUYLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask+(TakeProfit/0.2)*Point, 0)。
}
}
for (int k=0;k<OrdersTotal();k++)//查看所有未结订单
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES)。
如果(!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0," ,123,0,Red)。

//----
return(0);
}
//+------------------------------------------------------------------+
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdersTotal(), ty;
如果(sy=="0")sy=符号()。
for (i=0; i<k; i++)
{
如果(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType()。
如果(ty<6)
{
如果((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
如果(mn<0 || OrderMagicNumber()==mn)返回(True)。
}}}}return(False)。
}
 
Graall:



检查大括号{}的配对情况(仔细)。该错误意味着在start()函数中至少缺少一个关闭。
 
alsu:

检查括号{}的配对情况(仔细)。该错误意味着在start()函数中至少缺少一个关闭。


对,

for (int k=0;k<OrdersTotal();k++)/Watch among all open orders

{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES)。
如果(!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )

OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0," ,123,0,Red)。

错过了 }谢谢你

 
你好,我在终端的时间与实际时间不一致,现在如果我把光标放在M5蜡烛上显示18.45,而实际上在乌克兰是19.45,如何改变时间?
 
sanktum:
你好,我在终端的时间与实际时间不一致,现在如果你悬停在M5蜡烛图上显示18.45,但实际上在乌克兰19.45,如何改变时间?

没有。烛台上的时间是服务器时间。

 

下午好。

我在每次打开一个新栏 的时候都会把数据写入一个文件。

int handle=FileOpen(Symbol1+Symbol2+".csv",FILE_WRITE|FILE_READ|FILE_CSV);
      if(handle>0)
        {
         FileSeek(handle,0,SEEK_END);
         FileWrite(handle,TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES), DoubleToString(Pr1,2),DoubleToString(Pr2,2),DoubleToString(Pr3,2),DoubleToString(Pr4,2));
         FileClose(handle);
        }

我需要指标来读取这些数据,并在记录的时间间隔上建立一个图表。

我想有一个指标,在每一个新条形图的开口处读取这些数据并将其绘制在图表上。

 

我安装了MT4(版本:4.00 Build 451),发现在专家日志文件夹中只有一个文件,日期是安装终端的 当天,即13日。 没有更多的日志文件,尽管我已经多次打开和关闭平台。

希望对这一现象有任何评论。

 
Geowind64:

我安装了MT4(版本:4.00 Build 451),发现在专家日志文件夹中只有一个文件,日期是安装终端的当天,即13日。 没有更多的日志文件,尽管我已经多次打开和关闭平台。

希望对这一现象有任何评论。


我需要至少运行一个专家/指示器/脚本,它们是写到这个文件夹的。