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

 
lil_lil:

并非如此,尽管它在测试中会很方便。 我希望在EA连接到在线图表后,指标也能连接到在线图表。这有可能吗?

我还没有试过。从理论上讲,这不太可能成功。也许这就是我还没有尝试的原因。它将看起来像这样:每次你加载EA,模板将被应用,在此基础上EA再次启动。一切都在重复,模板被应用,一个新的EA副本被启动,等等。

如果你非常想得到它,以至于你的牙齿疼痛,可能会更好,做一个脚本,应用模板与EA和指标。

 
感谢大家的参与。我尝试在全局终端调用ChartApplyTemplate(),并分配一个变量值,但在调用ChartApplyTemplate()之前,我会检查其值。
 

你好。

我怎样才能用每个PERIOD_M1 的30个点来创建条形图?

我想为我的分析创建一个新的角色。

 
你好!请帮我解决一个问题,我遇到了麻烦。我需要在EA的代码中规定,在符号1的活动图上工作,在另一个非活动图的符号2上画水平线。这意味着符号2的图表在屏幕上打开。 例如,对于第二个SUI30符号,我是这样做的。
double SUop0 = iOpen("SUI30",PERIOD_H1,0);
double lp = SUop0-67;
double hp = SUop0+67; 

   Fun_New_Bar();
      if(New_Bar)      
         {
   ObjectCreate("SUI30","lineForBuy",OBJ_HLINE,0,0,lp);
   ObjectCreate("SUI30","lineForSell",OBJ_HLINE,0,0,hp);
         }
但元编辑器给出了一个从 "字符串 "到 "数字 "的隐性转换信息。我做错了什么,该如何解决?谢谢你。

 
novichok2018:
你好!请帮我解决一个问题,我做不到。在专家顾问的代码中,它在符号1的活动图上工作,我需要在另一个非活动图的符号2中规定绘制水平线。这意味着符号2的图表在屏幕上被打开。例如,对于第二个SUI30符号,我是这样做的:但元编辑器给出了一条从 "字符串 "到 "数字 "的隐性转换信息。我做错了什么,该如何解决?谢谢你。

我们需要使用另一个函数重载

bool  ObjectCreate( 
   long          chart_id,      // идентификатор графика 
   string        object_name,   // имя объекта 
   ENUM_OBJECT   object_type,   // тип объекта 
   int           sub_window,    // индекс окна 
   datetime      time1,         // время первой точки привязки 
   double        price1,        // цена первой точки привязки 
   ... 
   datetime      timeN=0,       // время N-точки привязки 
   double        priceN=0       // цена N-точки привязки 
   );

而这个图表标识符应该通过尝试从ChartFirst()列举图表来找到。

long  ChartNext( 
   long  chart_id      // идентификатор графика
   );

文件中的例子

//--- переменные для идентификаторов графиков 
   long currChart,prevChart=ChartFirst(); 
   int i=0,limit=100; 
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart); 
   while(i<limit)// у нас наверняка не больше 100 открытых графиков 
     { 
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 
      if(currChart<0) break;          // достигли конца списка графиков 
      Print(i,ChartSymbol(currChart)," ID =",currChart); 
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext() 
      i++;// не забудем увеличить счетчик 
     }
 
Alexey Viktorov:

我们需要使用一个不同的函数重载

谢谢,我正在努力想办法。

 
Alexey Viktorov:

我们需要使用另一个函数重载

而这个图表标识符应该通过尝试从ChartFirst()列举图表来找到。

文件中的一个例子

不幸的是,我的尝试并没有带来任何结果。我只是将与ChartNext() 有关的错误添加到现有的信息中。我不明白这一点。

 
novichok2018:

对我来说,不幸的是,试图弄清楚它并没有得到任何结果。刚把与ChartNext()应用有关的错误添加到现有的信息中。我不明白这一点。

那么,你可以使用一个恒定的图表ID来使它更容易。写一个脚本

Print(ChartID());

在你想画这些线的图表上运行它。然后把这个值写进函数,作为图表的ID

而好的一面是,从文档中的例子来看,它不是一个现成的函数,就像拿去用一样。有必要检查循环中的符号和周期。如果找到正确的,则退出循环并使用获得的标识符。

 

在OPENCL的cl_内联中有一个常数,它等于#define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0,通过重复检查1024中的二度得到。2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 然后下面是π的数量

之后

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

说明为什么????

 
Alexey Viktorov:

那么,你可以使用一个恒定的图形ID来使任务更容易。写一个脚本

在你想画这些线的图表上运行它。然后把这个值写进函数,作为图形ID

而好的一面是,文档中的例子不是一个现成的函数,只要拿去用就可以了。在循环中,有必要检查符号和周期。如果找到正确的,则退出循环并使用获得的标识符。

谢谢你。一切都在剧本中运作,它画出了线条。

原因: