Cada par de divisas debe tener su propia GlobalVariable, por ejemplo "MyEA_EURUSD".
Si se restringe el EA a una operación por día el código sería
string sCheck = "MyEA_" + Symbol();
datetime t = TimeCurrent();
datetime tTrade = t - TimeHour(t)*60*60 - TimeMinute(t)*60 - TimeSeconds(t);
if(!GlobalVariableCheck(sCheck)) GlobalVariableSet(sCheck, tTrade -PERIOD_D1 * 60);
if(GlobalVariableGet(sCheck) < tTrade) {
OrderSend(......);
GlobalVariableSet(sCheck, tTrade);
}
Perdón por traer esto de nuevo a la cabeza pero estoy teniendo el mismo problema ahora mismo. Desgraciadamente sxTed no me ha respondido a la pregunta. Porque describir un tiempo de negociación es algo diferente a la cantidad de órdenes para cada par de divisas.
Traté de modificar las líneas de sxTed pero creo que fallé horriblemente en la solución de este problema:
string sCheck = "MyEA_" + Symbol(); // already the first error in the code, second quotes should be at the end of the line. //I would correct this one to: string sCheck = "MyEA_ + Symbol()"; //However symbol() is not a function anymore ?? int start () { // Closing Orders here if(!GlobalVariableCheck(sCheck)) //checking Globalvariable, GV available so it becomes true (independently of what kind of GV we have)... GlobalVariableSet(sCheck, Symbol() ); //.. assigning a new GlobalVariable to the function of the current symbol the EA is attached on (does it actually work like this?) if(GlobalVariableGet(sCheck) == Symbol()) { // checking if our Symbol is the one which the EA is attached on --> becomes true... // Order Criteria (Open trades here) // What now? Actually i'm missing any kind of numbers or smth that limits the open orders per currency pair.
¡¡¡Por favor: no me enlacen a ninguna literatura en este sitio o me digan que contrate a alguien, estoy estudiando el libro en este momento y me quedé atorado!!!
Para cada par de divisas utilizo un EA independiente.
Para verificar si se debe abrir una posición, pruebo si no hay una orden abierta "if (OrdersTotal<1)" pero esto bloqueará todos los otros pares de divisas para abrir posiciones y pierdo oportunidades.
En otras palabras: Quiero abrir sólo una posición por par de divisas = debería ser posible abrir varias posiciones pero en diferentes pares de divisas.
¿Qué código debería utilizar en lugar de "if (OrdersTotal<1)"? ¿Puede alguien ayudarme? Gracias de antemano por su ayuda.
int total=OrdersTotal(); int count = 0; int magno = 12345; for(int pos=0;pos<total;pos++) { if(OrderSelect(pos,SELECT_BY_POS) == false) continue; if (OrderMagicNumber() != magno) continue; if (OrderSymbol() !=
Symbol()) continue; count++; } // Ahora sabes cuántas órdenes para este símbolo están abiertas por este EA. if (count < 1) { // haz algo - abre la orden quizás} ¿Ayuda esto?
¿Esto ayuda?
¿Ayuda esto?
int total=OrdersTotal();
limita el total de openorders de TODOS los pares de divisas o no?
He insertado su código como sigue
int total=OrdersTotal(); int count = 0; for(int pos=0;pos<total;pos++) { if(OrderSelect(pos,SELECT_BY_POS) == false) continue; if (OrderSymbol() != Symbol()) continue; count++; } if (Sell_1_1 < Sell_1_2 && CloseSell1_1 > CloseSell1_2 && count < 1) Order = SIGNAL_SELL; // Trigger for Sell if (Buy_1_1 > Buy_1_2 && CloseBuy1_1 < CloseBuy1_2 && count < 1) Order = SIGNAL_BUY; // Trigger for Buy if (order == SIGNAL_BUY) { OrderSend(...) }
y sigue abriendo sólo una operación en absoluto. ¿Qué intentaba decirnos sxTed con su variable global?
limita el total de openorders de TODOS los pares de divisas o no?
He insertado su código como sigue
y sigue abriendo sólo una operación en absoluto. ¿Qué estaba tratando de decirnos sxTed con su variable global?
¿En cuántos gráficos tienes tu EA?
Para probar el código he abierto 5 gráficos pero quiero abrir N gráficos. La cantidad no importa.
Para cada par de divisas utilizo un EA independiente.
Para verificar si una posición debe ser abierta, pruebo si no hay una orden abierta "if (OrdersTotal<1)" pero esto bloqueará todos los otros pares de divisas para abrir posiciones y pierdo oportunidades.
En otras palabras: Quiero abrir sólo una posición por par de divisas = debería ser posible abrir varias posiciones pero en diferentes pares de divisas.
¿Qué código debería utilizar en lugar de "if (OrdersTotal<1)"? ¿Puede alguien ayudarme? Gracias de antemano por su ayuda.
El código es así :
int Total_Order = OrdersTotal(); for (pos = 0; pos <= Total_Order; pos ++) { if (OrderSelect (pos, SELECT_BY_POS) == true) { if (OrderSymbol () == Symbol ()) { Print (":( Sorry already have that symbol opened "); // get outta here do something else break ; } else { Print ("No order opened for this symbol"); Print ("Let\'s call waitress and order some drink :)"); // do some order then break out and get out } } }

- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Para cada par de divisas utilizo un EA independiente.
Para verificar si una posición debe ser abierta, pruebo si no hay una orden abierta "if (OrdersTotal<1)" pero esto bloqueará todos los otros pares de divisas para abrir posiciones y pierdo oportunidades.
En otras palabras: Quiero abrir sólo una posición por par de divisas = debería ser posible abrir varias posiciones pero en diferentes pares de divisas.
¿Qué código debería utilizar en lugar de "if (OrdersTotal<1)"? ¿Puede alguien ayudarme? Gracias de antemano por su ayuda.