新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1755

 
Andrey Sokolov #:

问候。你能给我一个提示吗?在mt5中如何在初始化或tick时定义测试?

到目前为止,我只找到了OnTester(),它是在OnDeinit() 之前调用的。

MQLInfoInteger(MQL_TESTER)。

类似这样的事情。

 
Nerd Trader #:
last_time = iTime(NULL, 0, 0);

  if(last_time > bar.time_open){
    bar.time_open = last_time;
    coint++;//стартовое значение -1
  }

这里显然有问题!"。

 
Alekseu Fedotov 谢谢你
 

为什么?

#property indicator_color1 clrIndianRed;
#property indicator_color2 clrMagenta;
#property indicator_color3 clrRed;

extern color Cl1 = clrIndianRed;
extern color Cl2 = clrMagenta;
extern color Cl3 = clrRed;

color sColor[] = {indicator_color1,indicator_color2,indicator_color3}; // Так нормально
color sColor[] = {Cl1,Cl2,Cl3}; // Так ошибки 'Cl1' - constant expression required 

---

从输入/外部字符串建立一个数组的最佳方法是什么?

 
Vitaly Muzichenko #:

为什么?

---

从一个输入/外部字符串组装一个数组的最好方法是什么?

将颜色作为一个字符串放入输入,然后将字符串分离成一个数组。

我现在不想放任何颜色的代码,你自己会明白的。我有一个转入数组的字符列表,像这样

  string s_arr[]; // В этом массиве будет перечень нужных символов
  if(StringSplit(slist, ',', s_arr) <= 0)
   {
    Print(__FUNCTION__ + " Error converting !");
    return;
   }

这是一个输入变量中的列表。

 
Vitaly Muzichenko #:

为什么?

---

从输入/外部字符串建立一个数组的方法是什么?

我同意阿列克谢的观点。

extern string Colors = "clrIndianRed/clrMagenta/clrRed";
color sColor[];
//+------------------------------------------------------------------+
int OnInit()
  {
   ushort sep  = StringGetCharacter("/",0);
   string tempLevel[];
   int sz1  = StringSplit(Colors,sep,tempLevel);
   ArrayResize(sColor,sz1);
   for(int i=0; i<sz1; i++)
   {
    sColor[i] = StringToColor(tempLevel[i]);Print(i," / ",sColor[i]);
   }
//---
   return(INIT_SUCCEEDED);
  }
 
Alexey Viktorov #:

在输入中以字符串的形式输入颜色,然后将字符串划分为数组。

我现在不想为颜色传递代码,你可以自己想办法。我有一个转入数组的字符列表,像这样

这就是输入变量中的列表。

我知道这个方法,但它不会工作 - 没有办法从列表中选择


 

现在的颜色是这样的,很不方便,我找不到一个原因,为什么我不能改变颜色,在应用设置改变为标准之后


 
Vitaly Muzichenko #:

现在的颜色是这样的,很不方便,我找不到不能改变颜色的理由,一旦应用,参数就会变成标准的颜色。


然后是这样的

extern color Cl1 = clrIndianRed;
extern color Cl2 = clrMagenta;
extern color Cl3 = clrRed;
string Colors = ColorToString(Cl1)+"/"+ColorToString(Cl2)+"/"+ColorToString(Cl3);
color sColor[];
//+------------------------------------------------------------------+
int OnInit()
  {
   ushort sep  = StringGetCharacter("/",0);
   string tempLevel[];
   int sz1  = StringSplit(Colors,sep,tempLevel);
   ArrayResize(sColor,sz1);
   for(int i=0; i<sz1; i++)
   {
    sColor[i] = StringToColor(tempLevel[i]);Print(i," / ",sColor[i]);
   }
//---
   return(INIT_SUCCEEDED);
  }
 
MakarFX #:

那就这样吧。

很好,正是我所需要的。

谢谢你!

P.S. 找到了参数不被保存的原因,在结尾处有分号,从输入端复制时被抓住了--删除后一切都正常了。注意力不集中。