Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1094
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿Pone manualmente el EA en los gráficos y quiere que abra órdenes MaxOpenOrders o órdenes TOTAL MaxOpenOrders en TODOS los gráficos? ¿Y qué órdenes: sólo las de mercado o todas, incluidas las de límite y stop?
¿Pone manualmente el EA en los gráficos y quiere que abra órdenes MaxOpenOrders o órdenes TOTAL MaxOpenOrders en TODOS los gráficos? ¿Y qué órdenes: sólo las de mercado o todas, incluidas las de límite y stop?
¿Cuál es el propósito de las palabras "en esta estrategia"? La magia es necesaria si hay operaciones manuales en la cuenta, o si se está ejecutando otro EA, para que estas órdenes no se toquen. Creo que sí.
Tiene que abrirse para todos los símbolos. Supongamos que MaxOpenOrders es 1, debería abrir sólo una orden de mercado. Este es un bot para opciones binarias, no hay órdenes pendientes. Sin embargo, funciona en serie, si la posición se cierra con pérdidas, entonces se abre la misma posición, sólo que con un lote más grande, y hasta que la serie termine con una operación rentable, no se deben abrir operaciones para otros instrumentos.
OK, me perdí la parte de las opciones binarias. Por alguna razón, me parece que si fijo manualmente el mismo EA en diferentes gráficos, seguirá contando como si estuviera ejecutando diferentes EAs. Y para CADA gráfico se ejecutará una opción (bueno, cuando funcione correctamente). Podría estar equivocado ya que yo mismo soy un principiante. He considerado la multidivisa en mi EA de esta manera:
input string TradeSymbols = "EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, GBPCAD"; // símbolos para operar
string Symbols[50]; // 50 es el número máximo de símbolos
int CuentaSímbolos;
//--------------------------------------------------
int OnInit()
{
if (IsTesting() || !ExtractSymbols())
{
SymbolCount = 1;
Símbolos[0] = Símbolo();
}
return(INIT_SUCCEED);
}
//--------------------------------------------------
bool ExtraerSímbolos()
{
ushort Comma = StringGetCharacter(",", 0);
SymbolCount = StringSplit(TradeSymbols, Comma, Symbols);
for (int i = 0; i < SymbolCount; i++)
{
StringToUpper(Símbolos[i]);
Symbols[i] = StringTrimRight(Symbols[i]); // protección contra espacios accidentales
Símbolos[i] = StringTrimLeft(Símbolos[i]);
}
si (SymbolCount > 0) return(true);
return(false);
}
//--------------------------------------------------
void OnTick()
{
for (int i = 0; i < SymbolCount; i++)
{
double LastAsk = SymbolInfoDouble(Symbols[i], SYMBOL_ASK);
double LastBid = SymbolInfoDouble(Symbols[i], SYMBOL_BID);
// y así sucesivamente...
}
}
Para aplicar el EA a cualquier gráfico. De esta manera, MaxOpenOrders será exactamente para todos los gráficos.
OK, me perdí la parte de las opciones binarias. Por alguna razón, me parece que si fijo manualmente el mismo EA en diferentes gráficos, seguirá contando como si estuviera ejecutando diferentes EAs. Y para CADA gráfico se ejecutará una opción (bueno, cuando funcione correctamente). Podría estar equivocado ya que yo mismo soy un principiante. He considerado la multidivisa en mi EA de esta manera:
input string TradeSymbols = "EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, GBPCAD"; // símbolos para operar
string Symbols[50]; // 50 es el número máximo de símbolos
int CuentaSímbolos;
//--------------------------------------------------
int OnInit()
{
if (IsTesting() || !ExtractSymbols())
{
SymbolCount = 1;
Símbolos[0] = Símbolo();
}
return(INIT_SUCCEED);
}
//--------------------------------------------------
bool ExtraerSímbolos()
{
ushort Comma = StringGetCharacter(",", 0);
SymbolCount = StringSplit(TradeSymbols, Comma, Symbols);
for (int i = 0; i < SymbolCount; i++)
{
StringToUpper(Símbolos[i]);
Symbols[i] = StringTrimRight(Symbols[i]); // protección contra espacios accidentales
Símbolos[i] = StringTrimLeft(Símbolos[i]);
}
si (SymbolCount > 0) return(true);
return(false);
}
//--------------------------------------------------
void OnTick()
{
for (int i = 0; i < SymbolCount; i++)
{
double LastAsk = SymbolInfoDouble(Symbols[i], SYMBOL_ASK);
double LastBid = SymbolInfoDouble(Symbols[i], SYMBOL_BID);
// y así sucesivamente...
}
}
Para aplicar el EA a cualquier gráfico. De este modo, los MaxOpenOrders serán precisos para todos los gráficos.
Es decir, necesito un EA que determine el precio de apertura de la barra del martes y parta de él el tiempo que sea necesario, por ejemplo, una semana, dos, un mes, etc.
Gracias.
¿Qué pasa si la próxima semana ha comenzado y todavía necesito informar desde el precio de la barra abierta del martes de la semana pasada? Es decir, necesito que el Asesor Experto determine el precio de la barra abierta del martes y lo utilice durante el tiempo que sea necesario, por ejemplo, una semana, dos semanas, un mes, etc.
Gracias.
Luego fijas una fecha concreta y el programa toma el precio de apertura del día para esa fecha, es aún más fácil.
Luego fijas una fecha concreta y el programa toma el precio de apertura del día para esa fecha, es aún más fácil.
Me puedes ayudar con el código, no lo entiendo.
¿Crees que el cálculo del precio de apertura de la primera barra del martes se puede implementar en OnInit() y que calcule el precio al inicio y lo recuerde hasta que se reinicie el EA?
lo siento si estoy escribiendo tonterías, sólo estoy aprendiendo)
Puedes ayudar con el código, no lo entiendo.
¿Crees que el precio de la primera barra del martes debería calcularse en OnInit() y que calculará el precio en el arranque y lo recordará hasta que se reinicie el EA?
Lo siento si estoy escribiendo tonterías, sólo estoy aprendiendo)
El precio de apertura de la primera barra del día = el precio de apertura de la barra diaria. Puedes hacerlo en Inite, si no necesitas recalcular el valor después.
El código es aproximadamente el siguiente: