Errores, fallos, preguntas - página 144

 
pronych:

Siempre ha sido difícil gestionar las órdenes pendientes. en mt4 también. tal vez tratar de alejarse de eso? por ejemplo, hacer órdenes pendientes virtuales (sólo almacenarlos en las variables y abrir en el mercado cuando el precio ha cruzado). El tiempo es importante ahora...

No tengo tiempo... Acabo de depurar el código.

al menos tener tiempo para hacer algunas pruebas y ajustes

 
Valmars:
Estos errores puntuales no afectarán a la suerte de tu EA en el campeonato. Pero si a falta de dinero realiza repetidos intentos de abrir una posición generando gigas en su registro, como ocurrió en los anteriores campeonatos, será descalificado.
No, cuando se elimina la orden pendiente, por supuesto, no se colocará otra si no hay dinero
 
Tengo un problema a la hora de determinar los niveles de stop para las órdenes pendientes. Cuando el mercado está en calma y queremos colocar una orden de stop a un nivel admisible, la función SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) funciona perfectamentey las órdenes se colocan y todo el mundo está contento, incluido yo. Sin embargo, si el mercado se mueve con fuerza al principio de las sesiones de negociación, esta función deja de funcionar, las órdenes no se colocan y el terminal empieza a generar errores sobre los stops no válidos.

No me gustaría que mi EA fuera excluido de la competencia por este tipo de dependencia de las características recomendadas. Pero entonces, ¿cómo puedo saber el nivel de stop correcto permitido para un determinado símbolo en este momento?

P.D. No me gustaría utilizar la selección con incremento en caso de error, y el número de errores en este caso aumentará.
 
Vladix:
Tengo un problema a la hora de determinar los niveles de stop para las órdenes pendientes. Cuando el mercado está en calma y queremos colocar una orden de stop a un nivel admisible, la función SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) funciona perfectamente; las órdenes se colocan y todo el mundo está contento, incluido yo. Sin embargo, si el mercado comienza a vibrar fuertemente al principio de una sesión de negociación, esta función deja de funcionar, las órdenes no se colocan y el terminal comienza a generar errores sobre los stops no válidos.

No me gustaría que mi EA fuera excluido de la competencia por este tipo de dependencia de las características recomendadas. Pero entonces, ¿cómo puedo saber el nivel de stop correcto permitido para un determinado símbolo en este momento?

P.D. No me gustaría mucho utilizar una selección con incremento en caso de error, y el número de errores en este caso aumentaría.

En el caso de las órdenes pendientes, el error de los stops no válidos también se produce cuando el precio de apertura está más cerca del actual.

Es decir, hay que comprobar no sólo los stops, sino también el precio de apertura.


 

Creo que hay un error en la función HistoryDealsTotal(), si se inicia después de HistorySelectByPosition() .

Muestra repetidamente el número de operaciones igual a 0, y esto a pesar de tener una posición abierta (variante multidivisa).

Aquí está el código:


void GetDealQuantity(string smbl)
{
long pos_id;
int total, cantidad=0;
ulong ticket=0; newticket;
PositionSelect(smbl);
pos_id=PositionGetInteger(POSITION_IDENTIFIER);
bool select=HistorySelectByPosition(pos_id);
total=HistoryDealsTotal();
Print(__FUNCTION__," select=",select," total=",total);
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
newticket=HistoryOrderGetTicket(i);
if(billete!=nuevo billete) { cantidad++; billete=nuevo billete; }
}
if(smbl==símbolo1) cantidad1=cantidad;
if(smbl==símbolo2) cantidad2=cantidad;
Print(__FUNCTION__," cantidad=",cantidad);
}

Imprime en el diario:

2010.01.04 00:20:05 Obtener la cantidad de la transacción select=true total=0
2010.01.04 00:20:05 GetDealQuantity quantity=0
2010.01.04 00:20:05 EURJPY volumen=0.1 cantidad=0
2010.01.04 00:20:05 GetDealQuantity select=true total=1
2010.01.04 00:20:05 GetDealQuantity quantity=1
2010.01.04 00:20:05 AUDUSD volumen=0.1 cantidad=1

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 

Intenta insertar el código correctamente en tus posts. Intenta rehacer tu ejemplo así:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void GetDealQuantity(string smbl)
  {
   long pos_id;
   int total,quantity=0;
   ulong ticket=0,newticket;
   if(PositionSelect(smbl))
     {
      pos_id=PositionGetInteger(POSITION_IDENTIFIER);
      bool select=HistorySelectByPosition(pos_id);
      if(select)
        {
         total=HistoryDealsTotal();
         Print(__FUNCTION__," select=",select," total=",total,"posID=",pos_id);
         for(int i=total-1;i>=0;i--)
           {
            newticket=HistoryOrderGetTicket(i);
            if(ticket!=newticket) { quantity++; ticket=newticket; }
           }
         if(smbl==symbol1) quantity1=quantity;
         if(smbl==symbol2) quantity2=quantity;
         Print(__FUNCTION__," quantity=",quantity);
        }
      else
        {
        Print("Не удалось выполнить HistorySelectByPosition() для pos_id=",pos_id);
        }

     }
   else
     {
      Print("Позиции не выбрана по символу ",smbl);
     }
  }
//+------------------------------------------------------------------+
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
¿Hay algún script de ejemplo que escriba la última cita en el portapapeles o algo similar?
 
jmp:
¿Hay algún script de ejemplo en algún lugar para escribir la última cita en el portapapeles o algo similar?

¿El portapapeles de Windows?

Tengo que mirar en msdn para ver en qué dll están las funciones necesarias...

 
Quiero llegar al fondo de esto. Corríjanme si me equivoco. Cuando estudié la documentación de los indicadores (fractales, creo) recordaba muy bien y aún recuerdo que en caso de dos extremos adyacentes (consecutivos o separados por pocas barras) del mismo nivel el clave es el más reciente (el más nuevo a la derecha). Sin embargo, el indicador Zig-zag así como la propiedad de magnetización de los objetos del gráfico (aparentemente basada en ese zigzag) se fijan en el primer extremo de dos velas cercanas a un nivel, aunque todavía no puedo dar una conclusión definitiva ya que el comportamiento cambia de un caso a otro, en mi opinión. En cuanto al Zig-zag - éste se construye sólo en la primera vela. ¿Está bien, camaradas? ¿Debería ser así? ¿O hay varias "normas" sin reglas claras y cada uno es libre de elegir si el extremo se juzga por la vela de la izquierda o de la derecha?
 
Hay millones de zigzags. Utiliza el que consideres adecuado.