Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 59

 
Vitalie Postolache:
Son las citas, son de mala calidad.

El Asesor Experto estándar va bien con ellos. Y en una cuenta demo, el comercio tampoco funciona. Mis operaciones no se abren. Aunque deberían.

 
Michail_David:

El examinador estándar está bien con ellos

Compare el Asesor Experto Estándar y su Asesor Experto, encuentre las diferencias y saque conclusiones. Pero el enunciado del error indica una mala calidad de las cotizaciones, cuando los valores de una TF no coinciden con los de la otra TF.

Si este código se escribe para operar en el modo " sólo precios abiertos", entonces se puede evitar este problema.

Añadido. Exactamente estás tratando de hacer un código por precios abiertos, no está claro por qué debe ser probado por todos los ticks...
 
Vitalie Postolache:
Compara la norma y la tuya, encuentra las diferencias y saca conclusiones. Puede librarse de este infortunio si el código está escrito para operar en modo " sólo precios abiertos".
El estándar también utiliza los precios de cierre, al igual que el mío
 
Michail_David:
El código estándar también utiliza los precios de cierre, como el mío

¿A qué EA llamas estándar? No he visto un EA "aprecios cercanos" en la entrega del terminal.

Y por los precios abiertos, debe tener todo el código de comercio trabajando en este modo, o no hacerlo en absoluto. Sólo una parte del código se utiliza en una nueva barra, el resto funcionará en cada tick.

 
Vitalie Postolache:

¿A qué EA llamas estándar? No he visto un EA "aprecios cercanos" en la entrega del terminal.

Y por los precios abiertos, debe tener todo el código de comercio trabajando en este modo, o no hacerlo en absoluto. Sólo tiene una parte del código utilizado en una nueva barra, el resto funcionará en cada tick.

La muestra del MACD se llama estándar. ¿Sería mejor mover la búsqueda de un nuevo bar al principio?
 
Michail_David:
Yo lo llamaría como una muestra estándar de MACD. ¿Es mejor mover la búsqueda de un nuevo bar al principio?

¿Dónde en MACD Sample está el modo "sólo precios abiertos", no lo veo? Es mejor mover la búsqueda de una nueva barra al principio de OnTick().

Y es

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

mejor que se declare fuera de la función, a nivel global.

O mejor aún, dedica algo de tiempo y busca mejores formas de buscar un nuevo bar en el foro.
 
Vitalie Postolache:

¿Dónde en MACD Sample está el modo "sólo precios abiertos", no lo veo? Sería mejor mover la búsqueda de una nueva barra al principio de OnTick().

И

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

es mejor declararlo fuera de la función, a nivel global.

Debo haber entendido mal el modo"sólo precios abiertos" por el Asesor Experto estándar. Me disculpo por ello. Estoy empezando a entenderlo. Gracias por los consejos. ¿Puede ver el código completo? Es posible que haya más comentarios. Realmente necesito un par de ojos frescos. Se lo agradecería mucho.
 
Michail_David:
Amigos, una pista. Tester da error: 2017.02.08 18:24:43.751 TestGenerator: error de datos no coincidentes (el valor bajo 1.09860 en 2016.07.27 19:30 no se alcanza desde el marco temporal más bajo, el precio bajo 1.09880 no coincide)
¿Qué significa esto y cómo se puede solucionar? ¿Qué he hecho mal?
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()
  {
  
//------
  }
//-------------------------------------------------------------------------------------------------------
Es la primera vez que veo que se hacen cálculos de variables de forma global fuera de las funciones generadoras de eventos y el compilador ni siquiera lo jura? Maldita sea, el compilador no se equivoca.
 
Sergey Gritsay:
Es la primera vez que veo que los cálculos de las variables se hacen globalmente fuera de las funciones que generan eventos, y el compilador ni siquiera se queja?
No. Acepta todo como es.
 
Michail_David:
No. Acepta todo como está.
poner todo lo que he destacado en la función OnTick()