错误、漏洞、问题 - 页 355

 
代理商的情况是否总是与主计算机上的情况一样?
[删除]  
dimonsky:
代理人的故事总是和主电脑上的一样吗?
理想情况下,是的,但在历史同步和其他一些方面存在问题。
 

我没有读完整个主题,所以如果这已经发生,请原谅我。

1.是否可以选择一个时间(不要与日期相混淆)来开始和停止测试。

2.在测试器中如何查看其他货币对的交易,除了在设置中设置(对于多货币--对于一个工具--测试结果 中的 "打开图表",以及对于其他)。

 
Retsam:

我没有读完整个主题,所以如果这已经发生,请原谅我。

1.是否可以选择一个时间(不要与日期相混淆)来开始和停止测试。

2.在测试器中如何查看其他货币对的交易,除了在设置中的设置(对于多货币--对于一个工具--测试结果 中的 "打开图表",以及对于其他)。

1 没有这样的功能--除非你要求这样做。

2 也没有这样的事情。

 

下午好!

MT 5.425 Windows 7 x64

我在一个子窗口(子窗口1)中启动指标,我用缓冲器在那里放了一个图表。 我想用ChartGetDouble(0,CHART_PRICE_MAX,1)和ChartGetDouble(0,CHART_PRICE_MIN,1)分别获得窗口的最低和最高价格。

输出为0,主窗口的最低和最高值被正确显示(ChartGetDouble(0,CHART_PRICE_MAX) ChartGetDouble(0,CHART_PRICE_MIN))。ChartRedraw(0)不起作用。如果图表开始用鼠标滚动,数值就会死亡--它开始正确显示。

当我第一次启动它时,或者当我改变指标属性中的值时,就会发生这种情况。

也许这是一个错误,或者是我做错了什么。

帮助文件中的这个条目是什么意思?

CHART_PRICE_MIN 最小图表双R/O修改器 - 子窗口编号

CHART_PRICE_MAX 图表的最大值双r/o修改器 - 子窗口 编号

谢谢你!

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 
所有的图表窗口都是从零开始编号的。0 - 主图表窗口,1 - 第一个指标的窗口,它显示在一个单独的窗口中。以此类推。
 

我搞不清楚哪里出了问题。

如果两个指标的参数相同,那么EA只打开一个买入,但如果参数不同,则不清楚它如何关闭位置......。

理论上,它应该在第二个指标前关闭交易,但事实并非如此。代码本身。

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>
#include <Trade\OrderInfo.mqh>
MqlRates mrate[];

input int TriX_PARAM=14;
input int TriX_PARAM_Close=50;

double TriX[];
double TriX_Close[];
int TriXHandle;
int TriXHandle_Close;

int OnInit()
  {

   TriXHandle=iTriX(Symbol(),PERIOD_CURRENT,TriX_PARAM,PRICE_WEIGHTED);
   TriXHandle_Close=iTriX(Symbol(),PERIOD_CURRENT,TriX_PARAM_Close,PRICE_WEIGHTED);
   return(0);
  }

void OnTick()
  {
   CTrade mytrade;
   CPositionInfo myposition;
   CSymbolInfo mysymbol;
   COrderInfo myorder;

   bool Sell_opened,Buy_opened;
   if(myposition.Select(_Symbol)==true) { if(myposition.Type()==POSITION_TYPE_BUY) Buy_opened=true;  if(myposition.Type()==POSITION_TYPE_SELL) Sell_opened=true;}

//Закрываем позицию
   if(Buy_opened==true || Sell_opened==true)
     {
      ArraySetAsSeries(TriX_Close,true);
      CopyBuffer(TriXHandle_Close,0,0,4,TriX_Close);

      if(Sell_opened=true && TriX_Close[1]>TriX_Close[2] && TriX_Close[2]<TriX_Close[3]) mytrade.PositionClose(_Symbol);
      if(Buy_opened=true && TriX_Close[1]<TriX_Close[2] && TriX_Close[2]>TriX_Close[3]) mytrade.PositionClose(_Symbol);

     }

//Открываем позицию
   if(Buy_opened==false && Sell_opened==false)
     {
      ArraySetAsSeries(TriX,true);
      CopyBuffer(TriXHandle,0,0,4,TriX);
      
      if(TriX[1]>TriX[2] && TriX[2]<TriX[3]) mytrade.Buy(0.1,_Symbol,NormalizeDouble(mysymbol.Ask(),_Digits),0,0);
      if(TriX[1]<TriX[2] && TriX[2]>TriX[3]) mytrade.Sell(0.1,_Symbol,NormalizeDouble(mysymbol.Bid(),_Digits),0,0);

     }
  }
 
我可以让它在优化过程中不更新终端吗?
 
Jager:
有没有可能在优化过程中阻止终端的更新?

因此,如果终端正在运行,并且有5-10分钟没有更新。

它不会被更新,即使它被更新,新的设置也不会被保存。

在重新启动终端之前,你当然可以关闭互联网

 
Mr.FreeMan:

我搞不清楚哪里出了问题。

如果两个指标的参数相同,那么EA只打开买入,如果参数不同,那么不清楚它如何关闭位置......。

理论上,它应该在第二个指标前关闭交易,但事实并非如此。代码本身。

代码本身:在开始时,你需要对数组进行不同的标记。

那就更好了)。改变它。

CopyBuffer(TriXHandle_Close,0,0,3,TriX_Close);
CopyBuffer(TriXHandle,0,0,4,TriX);

在这些线路上

CopyBuffer(TriXHandle_Close,0,0,3,TriX_Close);
CopyBuffer(TriXHandle,0,0,3,TriX);

同时改变

 if(Sell_opened=true && TriX_Close[1]>TriX_Close[2] && TriX_Close[2]<TriX_Close[3]) mytrade.PositionClose(_Symbol);
 if(Buy_opened=true && TriX_Close[1]<TriX_Close[2] && TriX_Close[2]>TriX_Close[3]) mytrade.PositionClose(_Symbol);
      if(TriX[1]>TriX[2] && TriX[2]<TriX[3]) mytrade.Buy(0.1,_Symbol,NormalizeDouble(mysymbol.Ask(),_Digits),0,0);
      if(TriX[1]<TriX[2] && TriX[2]>TriX[3]) mytrade.Sell(0.1,_Symbol,NormalizeDouble(mysymbol.Bid(),_Digits),0,0);

到这一点。

 if(Sell_opened=true && TriX_Close[0]>TriX_Close[1] && TriX_Close[1]<TriX_Close[2]) mytrade.PositionClose(_Symbol);
 if(Buy_opened=true && TriX_Close[0]<TriX_Close[1] && TriX_Close[1]>TriX_Close[2]) mytrade.PositionClose(_Symbol);
      if(TriX[0]>TriX[1] && TriX[1]<TriX[2]) mytrade.Buy(0.1,_Symbol,NormalizeDouble(mysymbol.Ask(),_Digits),0,0);
      if(TriX[0]<TriX[1] && TriX[1]>TriX[2]) mytrade.Sell(0.1,_Symbol,NormalizeDouble(mysymbol.Bid(),_Digits),0,0);