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

 

大家好!

请提供可能的解决方案,以解决这个问题。

有2或3个或更多的指标在工作。每个人都有一条线。Comment(" Indicator 1 is running."); the next Comment(" Indicator 2 is running."); etc.分别。

如何,也许用车厢的 "智能 "翻译,获得屏幕左上角的视图(在至少1个勾的时间内,下一个铭文不会覆盖前一个)。

指标1正在发挥作用。

LED 2正在工作。

LED 3正在工作。

等。

 

我如何在610构建中声明我的优化标准,在我的旧EA上?

专家顾问是在610构建上运行的。

例如,在MQL5上,代码如下。

double OnTester()
{
double prof=0.0;
prof=TesterStatistics(STAT_PROFIT);

  return(prof);
}

如果我在专家顾问启动前把它放在专家顾问上,自定义栏就不会出现。

第二个问题:老的EA在编译时显示黄色信息:函数必须返回一个值。

例行。

if(Work==false){Alert("Критическая ошибка. Эксперт не работает.");return;}
 
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//--- параметры для записи данных в файл
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
string             InpFileName="";
int t=0;
int file_handle=-2;
double mass[];
int OnInit()
  {
   Comment("Start");
   InpFileName=StringConcatenate(WindowExpertName(),".csv");      // Имя файла  
 
   ResetLastError();
   file_handle=FileOpen(WindowExpertName()+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);   
   return(INIT_SUCCEEDED);
  }
void OnTick()
  {
   Comment(t);
   if(file_handle!=INVALID_HANDLE)
     {
      t++;
      ArrayResize(mass,t+1,10000);
      mass[t]=Ask;
      //--- запишем время сигналов и их значения в файл
      for(int i=0; i<ArraySize(mass); i++)
       FileWrite(file_handle,mass[t]);
      //--- закрываем файл
      FileClose(file_handle);
     }
   else
      PrintFormat("Не удалось открыть файл %s, Код ошибки = %d",InpFileName,GetLastError());
  }
//+------------------------------------------------------------------+

我不知道如何写到下一行......

我想把每个引号写在新的一行,但没有成功....。

 

我正在用一个自定义指标 测试一个EA。有时交易是按照条件开的,而其他时候则不清楚是根据什么原则。我开始可视化,指标被画成了它应该有的样子,但交易并不总是与指标相吻合。我试图用警报检查有问题的区域,但专家顾问中的指标也显示为零。我不明白问题出在哪里,如果测试时指标绘制正确,那么指标值在哪里传递给EA?

该代码在专家顾问中。
double line=iCustom(NULL,0,"Ttest3",Period_MA_1,p2,p3,p4,1,1);

if (line >0){Opn_B=true;}
if (line <=0){Cls_B=true;}
 
VOLDEMAR:

我不知道如何写到下一行......

我想把每个引号写在新的一行,但没有成功....。


文件搜索
 
Forexman77:

我正在用一个自定义指标测试一个EA。有时交易是按照条件开的,而其他时候则不清楚是根据什么原则。我开始可视化,指标被画成了它应该有的样子,但交易并不总是与指标相吻合。我试图用警报检查有问题的区域,但专家顾问中的指标也显示为零。我不明白问题出在哪里,如果在测试过程中指标绘制正确,那么指标值是在哪里传递给专家顾问的?

该代码在专家顾问中。

也许问题出在EA上?
 
Vladon:

也许问题出在顾问身上?
说实话,我自己也不知道。我运行一个高于零的视觉测试指标,在7个百分比中,有一个交易打开,其余的则没有。
 

发生了一个我不明白的错误。

'li_cnt' - undeclared identifier

在行。

    return (li_cnt);

这一行是在函数中。

// 1.9 Инициализация рабочего массива. ====================================================================================================
int fInit_ArrayINT (int& fia_INT[],                                              // Инициализируемый массив
                    string fs_List,                                              // Инициализируемые значения в строке
                    int fi_Range,                                                // Размер массива
                    double fd_Factor = 1.0,                                      // множитель
                    string fs_NameArray = "",                                    // имя возвращаемого массива
                    string fs_Delimiter = ",")                                   // Разделитель значений в строке
{
//----
    //---- Ищем в строке разделитель - признак наличия в строке > 1 параметра
    if (StringFind (fs_List, fs_Delimiter) == -1) return (1);
    else
    {
        string lsa_TMP[];
        int li_cnt = fGet_StrArrayFromLine (fs_List, lsa_TMP, ",");
  
        if (fi_Range > 0)
        {
            if (li_cnt != fi_Range)
            {
                Print (fs_NameArray, ": не соотвествие в размерности массива !!!");
                li_cnt = fi_Range;
            }
        }
        fCreat_StrToInt (lsa_TMP, fia_INT, li_cnt, fd_Factor, fs_NameArray);
    }
//----
    return (li_cnt);
}
变量li_cnt被声明为见。编译器发誓说它没有被声明。这意味着什么呢?
 
hoz:

发生了一个我不明白的错误。

在行。

这一行是在函数中。

变量li_cnt被声明为见。编译器发誓说它没有被声明。这意味着什么呢?


因为你的变量是在if else里面声明的
 
hoz:

发生了一个我不明白的错误。

在行。

这一行是在函数中。

变量li_cnt被声明为见。编译器发誓说它没有被声明。这意味着什么呢?

// 1.9 Инициализация рабочего массива. ====================================================================================================
int fInit_ArrayINT (int& fia_INT[],                                              // Инициализируемый массив
                    string fs_List,                                              // Инициализируемые значения в строке
                    int fi_Range,                                                // Размер массива
                    double fd_Factor = 1.0,                                      // множитель
                    string fs_NameArray = "",                                    // имя возвращаемого массива
                    string fs_Delimiter = ",")                                   // Разделитель значений в строке
{
//----
int li_cnt=0;
    //---- Ищем в строке разделитель - признак наличия в строке > 1 параметра
    if (StringFind (fs_List, fs_Delimiter) == -1) return (1);
    else
    {
        string lsa_TMP[];
        li_cnt = fGet_StrArrayFromLine (fs_List, lsa_TMP, ",");
  
        if (fi_Range > 0)
        {
            if (li_cnt != fi_Range)
            {
                Print (fs_NameArray, ": не соотвествие в размерности массива !!!");
                li_cnt = fi_Range;
            }
        }
        fCreat_StrToInt (lsa_TMP, fia_INT, li_cnt, fd_Factor, fs_NameArray);
    }
//----
    return (li_cnt);
}

原因: