初学者的问题 MQL4 MT4 MetaTrader 4 - 页 59

 
Vitalie Postolache:
是报价的问题,它们的质量很差。

标准的专家顾问与它们搭配得很好。而在模拟账户上,交易也是不成功的。我的交易没有打开。尽管他们应该这样做。

 
Michail_David:

标准审查员对他们没有意见

比较标准专家顾问和你的专家顾问,找到差异并得出结论。但是,当一个TF的数值与另一个TF的数值不一致时,错误的措辞表明报价质量不佳。

如果这段代码是为"公开价格"的交易模式编写的,那么这个麻烦就可以避免了。

已添加。你正是想通过开盘价 来做一个代码,不清楚为什么要通过所有的点位来测试......。
 
Vitalie Postolache:
对比标准和你自己的标准,找出差异并得出结论。如果代码是为"公开价格"模式下的交易而编写的,你可以摆脱这种不幸。
标准的也使用收盘价,就像我的一样
 
Michail_David:
标准代码也使用收盘价,比如我的

你说哪种EA是标准的?我还没有在终端的交付中看到 "以接近价格"的EA。

而通过公开价格,你必须让整个交易代码在这种模式下工作,或者根本就不做。只有部分代码用于新的条形图,其余的将在每个tick上工作。

 
Vitalie Postolache:

你说哪种EA是标准的?我还没有在终端的交付中看到 "以接近价格"的EA。

而通过公开价格,你必须让整个交易代码在这种模式下工作,或者根本就不做。你只有部分代码用于新的条形图 上,其余的将在每个刻度上工作。

MACD样本被称为标准。把寻找新酒吧 的工作移到开头是否更好?
 
Michail_David:
我将其称为标准的MACD样本。你最好把寻找新酒吧 的工作移到开头?

在MACD样本中,哪里有 "仅开盘价 "的模式,我没有看到?最好是把寻找新条形的过程移到OnTick()的开头。

而且它是

static datetime New_Time=TimeCurrent();// Время текущего бара

最好在函数之外,在全局层面上声明。

或者更好的是,花一些时间,在论坛上寻找更好的搜索方式,寻找一个新的酒吧。
 
Vitalie Postolache:

在MACD样本中,哪里有 "仅开盘价 "的模式,我没有看到?最好是把寻找新条形的过程移到OnTick()的开头。

И

static datetime New_Time=TimeCurrent();// Время текущего бара

最好是在函数之外,在全局层面上声明它。

我一定是误解了标准专家顾问的"仅开放价格"模式。我对此表示歉意。我才刚刚开始了解它。谢谢你的提示。你可以查看整个代码吗?可能还会有一些评论。我真的需要一双新的眼睛。我真的很感激。
 
Michail_David:
伙计们,一个提示。测试器给出错误:2017.02.08 18:24:43.751 TestGenerator:不匹配的数据错误(2016.07.27 19:30的低值1.09860没有从最低时间段达到,低价1.09880不匹配。)
这意味着什么,如何才能解决这个问题?我做错了什么?
double Margin_Percent=AccountFreeMargin()*Percent/100; //Используемые средства для открытия ордеров
double Lots=Margin_Percent/MarketInfo(Symbol(),MODE_MARGINREQUIRED);//Определение общего количества лотов
double Lots_Volume=(MathFloor(Lots)+MarketInfo(Symbol(),MODE_LOTSTEP));
double MacdCurrent=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,1); //Параметры MACD основной линии текущего бара
double MacdPrevious1=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,2);//Параметры MACD основной линии предыдущего бара
double MacdPrevious2=iMACD(NULL,0,Fast_EMA_Period,Slow_EMA_Period,Signal_Period,PRICE_CLOSE,MODE_MAIN,3);//Параметры MACD основной линии со смещением на 2 бара
double StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,0);//Параметры Трейлинг стоп по параметрам ParabolicSAR текущего бара
double Previous_StopLoss=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара
double CurrentPSAR=iSAR(NULL,0,Step_PSAR,Maximum_PSAR,1);//Параметры СтопЛосс по параметрам ParabolicSAR предыдущего бара

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  
//------
  }
//-------------------------------------------------------------------------------------------------------
这是我第一次看到在事件生成函数之外进行全局性的变量计算,而编译器甚至没有发誓?该死的,编译器没有弄错。
 
Sergey Gritsay:
这是我第一次看到在事件生成函数之外进行全局变量计算,而编译器甚至没有抱怨?
不,它接受一切,因为它是事实。
 
Michail_David:
不,它接受一切原样。
把我强调的所有内容放在OnTick()函数 中。