Errores, fallos, preguntas - página 1897

 
Konstantin:
mis cálculos son los siguientes:
¿cómo acaba siendo correcto?

No está claro cuál es la duda - mi lógica es simple - calcular cuánto se gastó en la compra de activos en total (si nos olvidamos del margen) y dividir por el número total de unidades compradas - esto será el precio medio de un activo - es decir, el punto de equilibrio.

 

Recuerdo que los desarrolladores hablaron de la posibilidad de intercambiar datos entre agentes. ¿Dónde puedo ver un ejemplo?

Parece que el canal de la trama es unidireccional: de los agentes al terminal, pero no a la inversa.

 
Error de ejecución
void OnStart()
{
  int Array[];
  
  Array[ArrayResize(Array, ArraySize(Array) + 1) - 1] = 0; // array out of range
}
 
Error de ejecución
struct INT
{
  int Array[];
};

void OnStart()
{
  INT i = {0}; //  Если убрать "= {0}" - ошибка выполнения исчезает
  
  Print(ArrayResize(i.Array, 5)); // -1
}
 
Si la estructura contiene cadenas y arrays como este {0} mejor no inicializarlo, me lanzó una excepción.
 

Los agentes locales devuelven el mismo valor de TerminalInfoInteger(TERMINAL_DLLS_ALLOWED) hasta que se recarga el terminal.

Por ejemplo, usted quiere que los agentes DLL no se ejecuten. Desmarcas la casilla de DLL en el terminal y los agentes siguen "contentos".


 
Комбинатор:
Si hay cadenas y arrays en la estructura así {0} mejor no inicializarla, en mi caso lanzó una excepción.
Parece que hay una vulnerabilidad potencial ahí.
 
fxsaber:

Recuerdo que los desarrolladores hablaron de la posibilidad de intercambiar datos entre agentes. ¿Dónde puedo ver un ejemplo?

Parece ser un canal de marco unidireccional - de los agentes al terminal, pero no al revés.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias de comercio

Trabajar con los archivos del Asesor Experto en el Probador de Estrategias

Renat Fatkhullin, 2012.08.27 01:41

Cuando se trabaja con clud o agentes remotos, los archivos utilizados (para la lectura) deben ser claramente especificados a través de la #propiedad archivo_de_prueba "miarchivo1.dat". En este caso, el probador pasa estos archivos a la nube junto con el EA de origen, con cambios en este archivo controlados y almacenados en caché en los servidores y agentes de la nube.

Es posible transferir grandes cantidades de datos en bruto a las nubes, y recibir cálculos que incluyan datos masivos a través de FrameAdd() en el informe.

¿Puedo cambiar tester_file-files en OnTesterPass y así transferir la información requerida a la Nube?
 
fxsaber:

En el estándar MQL5Experts\NEjemplos\Nde media móvil.mq5

Se ha perdido la comprobación mágica en TradeSizeOptimized.

Por favor, compruebe esta variante.

Por mi parte he ejecutado 9 instancias de este EA con diferentes configuraciones y magias para operar en línea en el VPS integrado - Voy a ver https://www.mql5.com/ru/signals/305333.

Торговые сигналы для MetaTrader 5: Standard Moving Average 9 instances
Торговые сигналы для MetaTrader 5: Standard Moving Average 9 instances
  • Rashid Umarov
  • www.mql5.com
Торговый Сигнал Standard Moving Average 9 instances для MetaTrader 5: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
Archivos adjuntos:
 
Rashid Umarov:

Echa un vistazo a esta opción, por favor.

Por mi parte, he ejecutado 9 instancias de este EA con diferentes configuraciones y magias para operar en línea en el VPS incorporado - Estaré observando https://www.mql5.com/ru/signals/305333.

La selección de lotes de este AE se ve afectada por cualquier operación de terceros (incluyendo otras instancias) en el símbolo de origen.

En esta pieza ocurre

      HistorySelect(0,TimeCurrent());
      //---
      int    orders=HistoryDealsTotal();  // total history deals
      int    losses=0;                    // number of losses orders without a break

      for(int i=orders-1;i>=0;i--)
        {
         ulong ticket=HistoryDealGetTicket(i);
         if(ticket==0)
           {
            Print("HistoryDealGetTicket failed, no trade history");
            break;
           }
         //--- check symbol
         if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
            continue;
         //--- check profit
         double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         if(profit>0.0)
            break;
         if(profit<0.0)
            losses++;
        }
      //---
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
Razón de la queja: