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 | //+------------------------------------------------------------------+ voidOnTick() {
是报价的问题,它们的质量很差。
标准的专家顾问与它们搭配得很好。而在模拟账户上,交易也是不成功的。我的交易没有打开。尽管他们应该这样做。
标准审查员对他们没有意见
比较标准专家顾问和你的专家顾问,找到差异并得出结论。但是,当一个TF的数值与另一个TF的数值不一致时,错误的措辞表明报价质量不佳。
如果这段代码是为" 仅公开价格"的交易模式编写的,那么这个麻烦就可以避免了。
已添加。你正是想通过开盘价 来做一个代码,不清楚为什么要通过所有的点位来测试......。对比标准和你自己的标准,找出差异并得出结论。如果代码是为" 仅公开价格"模式下的交易而编写的,你可以摆脱这种不幸。
标准代码也使用收盘价,比如我的
你说哪种EA是标准的?我还没有在终端的交付中看到 "以接近价格"的EA。
而通过公开价格,你必须让整个交易代码在这种模式下工作,或者根本就不做。只有部分代码用于新的条形图,其余的将在每个tick上工作。
你说哪种EA是标准的?我还没有在终端的交付中看到 "以接近价格"的EA。
而通过公开价格,你必须让整个交易代码在这种模式下工作,或者根本就不做。你只有部分代码用于新的条形图 上,其余的将在每个刻度上工作。
我将其称为标准的MACD样本。你最好把寻找新酒吧 的工作移到开头?
在MACD样本中,哪里有 "仅开盘价 "的模式,我没有看到?最好是把寻找新条形的过程移到OnTick()的开头。
而且它是
static datetime New_Time=TimeCurrent();// Время текущего бара
最好在函数之外,在全局层面上声明。
或者更好的是,花一些时间,在论坛上寻找更好的搜索方式,寻找一个新的酒吧。在MACD样本中,哪里有 "仅开盘价 "的模式,我没有看到?最好是把寻找新条形的过程移到OnTick()的开头。
И
static datetime New_Time=TimeCurrent();// Время текущего бара
最好是在函数之外,在全局层面上声明它。
伙计们,一个提示。测试器给出错误:2017.02.08 18:24:43.751 TestGenerator:不匹配的数据错误(2016.07.27 19:30的低值1.09860没有从最低时间段达到,低价1.09880不匹配。)
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()
{
//------
}
//-------------------------------------------------------------------------------------------------------
这是我第一次看到在事件生成函数之外进行全局变量计算,而编译器甚至没有抱怨?
不,它接受一切原样。