¡О! ¡Funciona! Gracias, compañeros, por las ideas.
Pero tuve que retocarlo un poco. Incluso se hizo más fácil, sin (verdad). Aunque no puedo explicar esta complicada lógica MQL).
Así es como lo implementé:
datetime timeBar = iTime(_Symbol,PERIOD_CURRENT, 0);// период можно поставить по своему усмотрениюdatetimestatic timeOpen = 0;
if((PositionsTotal()==0)&&(c0>h1)&&(rGENUP>0.30)&&(timeBar > timeOpen)) // Условие для открытия позиции.
{
MqlTradeRequest request;
MqlTradeResult result;
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =1; // объем в 1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.deviation=3;
request.sl = NormalizeDouble(Ask-50*_Point,_Digits);
request.tp = NormalizeDouble(Ask+50*_Point,_Digits);
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки//--- информация об операцииPrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
// допустимое отклонение от цены
timeOpen = timeBar;
}
Me pregunto por qué hay un código tan grande en MQL5 para la apertura de posiciones. A diferencia de MQL4. En el 4 es sólo una línea. ¿Podemos reducirlo? Por ejemplo, ¿podemos eliminar el manejador de errores?
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
¡О! ¡Funciona! Gracias, compañeros, por las ideas.
Pero tuve que retocarlo un poco. Incluso se hizo más fácil, sin (verdad). Aunque no puedo explicar esta complicada lógica MQL).
Así es como lo implementé:
Me pregunto por qué hay tanto código en MQL5 para abrir una posición. A diferencia de MQL4. En el 4, es sólo una línea. Pero aquí... ¿Puedes hacerlo más corto? Porejemplo, ¿podemos eliminar el gestor de errores?
Utiliza las clases de comercio. Y el código será muy corto.
Ejemplo:
//+------------------------------------------------------------------+//| Only_one_purchase.mq5 |//+------------------------------------------------------------------+#property version"1.003"#property script_show_inputs#include <Trade\Trade.mqh>
CTrade m_trade; // trading object//--- input parametersinputENUM_POSITION_TYPE InpPositionType = POSITION_TYPE_BUY; // Position Typeinputdouble InpVolume = 0.0; // Volumeinputulong m_magic = 15489; // magic number//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
m_trade.SetExpertMagicNumber(m_magic);
//--- open a positionif(InpPositionType==POSITION_TYPE_BUY)
m_trade.Buy(InpVolume);
else
m_trade.Sell(InpVolume);
}
//+------------------------------------------------------------------+
¡О! ¡Funciona! Gracias, compañeros, por las ideas.
Pero tuve que retocarlo un poco. Incluso se hizo más fácil, sin (verdad). Aunque no puedo explicar esta complicada lógica MQL).
Así es como lo implementé:
Me pregunto por qué hay un código tan grande en MQL5 para la apertura de posiciones. A diferencia de MQL4. En el 4, es sólo una línea. Pero aquí... ¿Se puede acortar? Porejemplo, ¿podemos eliminar el controlador de errores?
Por lo tanto, si usted tiene en la condición
if((PositionsTotal()==0)&&
¿por qué se necesitan más cheques para un nuevo bar? ¿O existe la opción de que la posición se cierre en la misma barra y se prohíba la segunda apertura?
¡О! ¡Funciona! Gracias, compañeros, por las ideas.
Pero tuve que retocarlo un poco. Incluso se hizo más fácil, sin (verdad). Aunque no puedo explicar esta complicada lógica MQL).
Así es como lo implementé:
Me pregunto por qué hay un código tan grande en MQL5 para abrir una posición. A diferencia de MQL4. En el 4, es sólo una línea. Pero aquí... ¿Puedes hacerlo más corto? Porejemplo, ¿podemos eliminar el gestor de errores?
Hace tiempo, cuando existía el MQL4, la gente se indignaba diciendo que no se les había dado acceso de nivel inferior, para que pudieran hacer algo a su manera.
Bueno, lo hicieron - ahora dieron acceso a OrderSend() en MQL4 - por así decirlo, desplegaron su lógica en MQL - así que haz lo que quieras. Pero no, ahora tengo quejas de que es demasiado complicado.
¿Complicado? No hay problema - dame clases de comercio en SB - son casi lo mismo que en las funciones de comercio estándar de MQL4. En MQL4 estas clases son las funciones comerciales. Y en MQL5 - todo con acceso abierto.
Hace tiempo, cuando existía MQL4, la gente se indignaba diciendo que no les daban acceso de nivel inferior, para que pudieran hacer algo a su manera.
Bueno, lo hicieron - ahora dieron acceso a OrderSend() en MQL4 - por así decirlo, desplegaron su lógica en MQL - así que haz lo que quieras. Pero no, ahora tengo quejas de que es demasiado complicado.
¿Complicado? No hay problema - dame clases de comercio en SB - son casi lo mismo que en las funciones de comercio estándar de MQL4. En MQL4 estas clases son las funciones comerciales. Y en MQL5 - todo con acceso abierto.
¿por qué necesita comprobar si hay una nueva barra? ¿O existe la opción de que la posición se cierre en la misma barra y no se permita una segunda apertura?
Exactamente, hay una opción para cerrar la posición en la misma barra.
Eso tampoco funcionó.
Lo que a un hobgoblin le gustan los kilómetros de código...
Su problema se puede resolver en SEIS líneas de código, teniendo en cuenta la declaración de variables.
Espero que puedas averiguar la variable de la señal.
¡О! ¡Funciona! Gracias, compañeros, por las ideas.
Pero tuve que retocarlo un poco. Incluso se hizo más fácil, sin (verdad). Aunque no puedo explicar esta complicada lógica MQL).
Así es como lo implementé:
Me pregunto por qué hay un código tan grande en MQL5 para la apertura de posiciones. A diferencia de MQL4. En el 4 es sólo una línea. ¿Podemos reducirlo? Por ejemplo, ¿podemos eliminar el manejador de errores?¡О! ¡Funciona! Gracias, compañeros, por las ideas.
Pero tuve que retocarlo un poco. Incluso se hizo más fácil, sin (verdad). Aunque no puedo explicar esta complicada lógica MQL).
Así es como lo implementé:
Me pregunto por qué hay tanto código en MQL5 para abrir una posición. A diferencia de MQL4. En el 4, es sólo una línea. Pero aquí... ¿Puedes hacerlo más corto? Por ejemplo, ¿podemos eliminar el gestor de errores?Utiliza las clases de comercio. Y el código será muy corto.
Ejemplo:
¡О! ¡Funciona! Gracias, compañeros, por las ideas.
Pero tuve que retocarlo un poco. Incluso se hizo más fácil, sin (verdad). Aunque no puedo explicar esta complicada lógica MQL).
Así es como lo implementé:
Me pregunto por qué hay un código tan grande en MQL5 para la apertura de posiciones. A diferencia de MQL4. En el 4, es sólo una línea. Pero aquí... ¿Se puede acortar? Por ejemplo, ¿podemos eliminar el controlador de errores?Por lo tanto, si usted tiene en la condición
¿por qué se necesitan más cheques para un nuevo bar? ¿O existe la opción de que la posición se cierre en la misma barra y se prohíba la segunda apertura?
¡О! ¡Funciona! Gracias, compañeros, por las ideas.
Pero tuve que retocarlo un poco. Incluso se hizo más fácil, sin (verdad). Aunque no puedo explicar esta complicada lógica MQL).
Así es como lo implementé:
Me pregunto por qué hay un código tan grande en MQL5 para abrir una posición. A diferencia de MQL4. En el 4, es sólo una línea. Pero aquí... ¿Puedes hacerlo más corto? Por ejemplo, ¿podemos eliminar el gestor de errores?Hace tiempo, cuando existía el MQL4, la gente se indignaba diciendo que no se les había dado acceso de nivel inferior, para que pudieran hacer algo a su manera.
Bueno, lo hicieron - ahora dieron acceso a OrderSend() en MQL4 - por así decirlo, desplegaron su lógica en MQL - así que haz lo que quieras. Pero no, ahora tengo quejas de que es demasiado complicado.
¿Complicado? No hay problema - dame clases de comercio en SB - son casi lo mismo que en las funciones de comercio estándar de MQL4.
En MQL4 estas clases son las funciones comerciales. Y en MQL5 - todo con acceso abierto.
Aprovéchalo.
Hace tiempo, cuando existía MQL4, la gente se indignaba diciendo que no les daban acceso de nivel inferior, para que pudieran hacer algo a su manera.
Bueno, lo hicieron - ahora dieron acceso a OrderSend() en MQL4 - por así decirlo, desplegaron su lógica en MQL - así que haz lo que quieras. Pero no, ahora tengo quejas de que es demasiado complicado.
¿Complicado? No hay problema - dame clases de comercio en SB - son casi lo mismo que en las funciones de comercio estándar de MQL4.
En MQL4 estas clases son las funciones comerciales. Y en MQL5 - todo con acceso abierto.
Aprovéchalo.
Docente, y Docente. Por qué estás tan enfadado (hoy) ©
Docente, ah Docente. Por qué estás tan enfadado (hoy) ©
Entra en el agujero de hielo...
Así que si tienes una condición
¿por qué necesita comprobar si hay una nueva barra? ¿O existe la opción de que la posición se cierre en la misma barra y no se permita una segunda apertura?
Exactamente, hay una opción para cerrar la posición en la misma barra.
(Corte en la nueva pared. ) El "muro" se llama punto de equilibrio.
Así es como se implementó en MQL4:
(Lo copié en algún sitio que no recuerdo).
Pero así es como se implementa en 5-PC. ¿Cómo lo hago?
He mirado en las clases de comercio y no lo veo ahí. Pero la cosa es necesaria. ¿Qué dicen los profesionales?
¿Cómo puedo evitar que las operaciones de otros gráficos aparezcan en el gráfico?
Sólo las operaciones del robot que está en el gráfico dado.