[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 784

 

No entiendo muy bien el principio de funcionamiento...si no te importa un simple ejemplo...por ejemplo C= A + B

Gracias)

 

Hola. Quiero saber cómo configurar el Asesor Experto para abrir una orden en el cruce. Si va a cerrar la orden con más o menos, que espere a la siguiente señal de inversión.

La táctica es sencilla

8EMA>26EMA

MACD(5,13,1)>0 (en la segunda vela del MACD se abre una orden)

RSI 21 >(50) OPEN BUY

8EMA<26EMA

MACD(5,13,1)<0 (orden abierta en la segunda vela MACD)

RSI 21 <(50) ABRIR VENDER

Gracias por su atención.

Archivos adjuntos:
 
Hola, el problema es el siguiente. Cuando ejecuto el probador, no hay operaciones.
 

¿Puede alguien sugerir un algoritmo para comprobar si las últimas órdenes X de un símbolo determinado fueron

no eran rentables? Tengo una idea de qué hacer, pero me temo que no será la mejor opción, mientras que los criterios principales son

velocidad de comprobación y carga mínima en el procesador.

Gracias.

 
chief2000:

¿Puede alguien sugerir un algoritmo para comprobar si las últimas órdenes X de un símbolo determinado fueron

no eran rentables? Tengo una idea de qué hacer, pero me temo que no será la mejor opción, mientras que los criterios principales son

velocidad de comprobación y carga mínima en el procesador.

Gracias.

double GetLastOrderProfit()
{
    double profit = 0;
    datetime lastCloseTime = 0;
    int cnt = OrdersHistoryTotal();
    for (int i=0; i < cnt; i++)
    {
        if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
        if (OrderSymbol() != Symbol()) continue;
        if (OrderMagicNumber() != MagicNumber) continue;

        if (lastCloseTime < OrderCloseTime())   // find most recent order
        {
            lastCloseTime = OrderCloseTime();
            profit = OrderProfit();
        }
    }
    return (profit);
}

la función no es mía, pero no creo que sea difícil adaptarla a las condiciones
 

ayuda que puede.... alguien sabe cómo hacer un trailing stop no lineal.... y no constante, pero sólo un número determinado de veces

por ejemplo, cuando el precio se mueve a A pips pérdida se mueve a B pips.... y luego cuando se mueve a C mover a D

donde las letras no tienen el mismo valor sino que son diferentes....

 
IgorM:

La función no es mía, pero creo que es fácil modificarla según las condiciones necesarias

Son las "flores" :) La parte más interesante comienza después.

He pensado en el primer bucle para ordenar los pedidos de un determinado símbolo y crear un array por entrada.

En el segundo bucle, ordena el array por tiempo de cierre.

Pero entonces deberíamos obtener los beneficios de las órdenes a partir de su hora de cierre, ¿es posible conectarlos de alguna manera?

sin pasar por todos los pedidos? - De lo contrario, tendremos demasiados bucles.

 
chief2000:

Son las "flores" :) La parte más interesante comienza después.

He pensado en el primer bucle para ordenar los pedidos de un determinado símbolo y crear un array por entrada.

En el segundo bucle, ordena el array por tiempo de cierre.

Pero entonces deberíamos obtener los beneficios de las órdenes a partir de su hora de cierre, ¿es posible conectarlos de alguna manera?

sin pasar por todos los pedidos? - De lo contrario, tendremos demasiados bucles.



significa que los tickets deben ser almacenados en arrays inmediatamente cuando un pedido es realizado con éxito, y luego se puede hacer un análisis de los tickets

Otra variante es crear un Asesor Experto adicional que se ocupe de esto: "restaurar el historial" del terminal y emitir los datos listos para ser enviados a un archivo

 
IgorM:


Esto significa que hay que memorizar los tickets en matrices inmediatamente, cuando se realiza un pedido con éxito, y luego analizarlos

Como opción, me gustaría crear un Asesor Experto adicional que hiciera lo siguiente: "restaurar el historial" del terminal y descargar los datos terminados a un archivo

No quiero tratar con archivos por una cuestión de principios, para no atar el Asesor Experto a un determinado ordenador...

Parece que tendré que crear en el primer bucle un nuevo array para las entradas de un símbolo especificado. Y luego, en dos ciclos, ordenarlo

por fecha, recordando las entradas en la nueva matriz. A partir de la matriz resultante, ejecuta un nuevo bucle para comprobar el beneficio

para los últimos pedidos.

 
chief2000:

No quiero meterme con los archivos por una cuestión de principios, para no atar el EA a un ordenador concreto...

Parece que tendré que crear un nuevo array en el primer bucle para las entradas de un determinado símbolo. Y luego, en dos ciclos, ordenarlo

por fecha, recordando las entradas en la nueva matriz. A partir de la matriz resultante, ejecuta un nuevo bucle para comprobar el beneficio

para los últimos pedidos.


Integer ha publicado un código para trabajar con el historial. Ordenar por apertura, ordenar por cierre. Sólo hay que buscarlo.