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

 

厉以宁

我去掉了托架,留下了偶数的托架。也就是说,这两个函数都是不带大括号的插入。

结果如下。

int init()
{
    fGet_MineGV();
//... и далее мой код
//...разрыв кода...
if ((SUA==100)&&(zigNN>4.5))
{
BUA=0;
BUA1=0;
}

fSave_MineGV();
//... продолжение моего кода...

然后在所有的EA代码之后,我插入了

}
}
}


Comment(fd+f+d);

}
//... тут мой советник закончился


        void fGet_MineGV (string fs_PrefName = "") // префикс имени переменной
     {
        string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
        if (GlobalVariableCheck (ls_Name)) SUA = GlobalVariableGet (ls_Name);
        ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
        if (GlobalVariableCheck (ls_Name)) SUA1 = GlobalVariableGet (ls_Name);
        ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
        if (GlobalVariableCheck (ls_Name)) BUA = GlobalVariableGet (ls_Name);
        ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
        if (GlobalVariableCheck (ls_Name)) BUA1 = GlobalVariableGet (ls_Name);
     }
               
      void fSave_MineGV (string fs_PrefName = "") // префикс имени переменной
{
 static datetime ldt_NewBar;
 datetime ldaTBeginBar = iTime (Symbol(), 1, 0)
 //---- Сохраняемся в начале каждой минуты
 if (ldt_NewBar == ldaTBeginBar) return;
 ldt_NewBar = ldaTBeginBar;
 //---- Сохраняем поочереди значения каждой переменной
 string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
 GlobalVariableSet (ls_Name, SUA);
 ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
 GlobalVariableSet (ls_Name, SUA1);
 ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
 GlobalVariableSet (ls_Name, BUA);
 ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
  GlobalVariableSet (ls_Name, BUA1);
}

我是这么认为的,在最后一个大括号之后,实际上是与EA分开的。这是否正确?

如果它是正确的,那么这就是你编译后得到的结果。

'fGet_MineGV' - function already defined and has a body         K:\TEST\experts\01___AUDUSD.mq4 (1679, 14)
'ls_Name' - variable already defined                            K:\TEST\experts\01___AUDUSD.mq4 (1681, 16)
2 error(s), 0 warning(s)        

Извиняюсь, ошибся, сложно, когда нет кода пнред глазами.Вот так.
如果代码很短,我就会把它贴在这里,我的所有问题都会很快得到解决。但是,该EA有1700条线,加上3个外部指标,其中大部分的计算都是在这里完成的。所以只能通过邮寄,但显然不再是免费的了。
 
xant:

厉以宁

我去掉了托架,留下了偶数的托架。也就是说,这两个函数都是不带大括号的插入。

结果如下。

然后在所有的EA代码之后,我插入了

我是这么认为的,在最后一个大括号之后,实际上是与EA分开的。这是否正确?

如果它是正确的,那么这就是你编译后得到的结果。


这些警告说,你的EA中的函数和变量之前已经被定义过了。看看你是否忘记删除之前插入的代码? 如果没有--把猫头鹰的代码发给我,我帮你把函数粘贴进去。
 
lottamer:


正是如此。你必须首先取得最后关闭位置的票据 GetTicketLastPos ,然后使用标准函数从该票据中取出你需要的东西。

谢谢你。


该死的......没有 GetTicketLastPos 这个函数

一个GetTicketLastPos票,用于最后一个开放的 位置...

 
xant:

严谨

我去掉了托架,留下了偶数的托架。也就是说,这两个函数都是不带大括号的插入。

结果如下。

然后在所有的EA代码之后,我插入了

我是这么认为的,在最后一个大括号之后,实际上是与EA分开的。这是否正确?

如果它是正确的,那么这就是你编译后得到的结果。

如果代码很短,我就会把它贴在这里,我的所有问题都会很快得到解决。但是,该EA有1700条线,加上3个外部指标,其中大部分的计算都是在这里完成的。所以只能通过邮寄,但显然不再是免费的了。

我认为这更有意义。

//+------------------------------------------------------------------+
//|                                                       Priner.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


double Var1, Var2, Var3, Var4;// 4-ре переменных для сохранения (у Вас они свои !!!)
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   fGet_MineGV();
//----
//Здесь ваш код
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   //Здесь ваш код
//----
   fSave_MineGV();
   return(0);
  }
//+------------------------------------------------------------------+
void fSave_MineGV (string fs_PrefName = "")     // префикс имени переменной
  {
    static datetime ldt_NewBar;
    datetime ldaTBeginBar = iTime (Symbol(), 1, 0);
//----
    //---- Сохраняемся в начале каждой минуты
    if (ldt_NewBar == ldaTBeginBar) return;
    ldt_NewBar = ldaTBeginBar;
    //---- Сохраняем поочереди значения каждой переменной
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
    GlobalVariableSet (ls_Name, Var1);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    GlobalVariableSet (ls_Name, Var2);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    GlobalVariableSet (ls_Name, Var3);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    GlobalVariableSet (ls_Name, Var4);
//----
  }
void fGet_MineGV (string fs_PrefName = "")     // префикс имени переменной
  {
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
//----
    //---- Восстанавливаем значения переменных
    if (GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    if (GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    if (GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    if (GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name);
  }  
//----
 
lottamer:


废话......不存在最后一次平仓的票据 这种功能

一个GetTicketLastPos票,用于最后的开仓......。


最后一次平仓的票据在历史中。
 
не забыли ли вы удалить код, который вставляли раньше? если нет -- пришлите мне код сова и я вам вставлю в него функции.

也许真的有一个人留在某个地方。

我把它插入另一个干净的EA,里面没有我的实验,它还出现了其他错误。

'if' - too complex expression     K:\test2\experts\02___AUDUSD.mq4 (1664, 2)
'=' - assignment expected         K:\test2\experts\02___AUDUSD.mq4 (1662, 24)
'if' - semicolon expected         K:\test2\experts\02___AUDUSD.mq4 (1664, 2)
3 error(s), 0 warning(s)        

总之,我发邮件

 

我看得很仔细--我已经完全按照你写的那样做了。

但我的专家顾问中没有返回或删除。可以了吗?我仍然得到错误。

 
xant:

我看得很仔细--我已经完全按照你写的做了。

但我的EA中没有返回或删除。可以了吗?我仍然得到错误。

TarasBY回应,但他的代码中有一个小错误,这就是为什么编译器会抱怨它。

在我的帖子里,没有骂人。
 
rigonich:

最后一张已关闭的票据已载入历史。


你能教我如何访问历史吗?

我怎样才能把最后一张票弄出来呢?

 

r772ra

是的!编译器通过了,没有任何错误。

尊重!