[¡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 830

 
gince:
Esto está tomado de Moving Average.mq4
Debes haber cambiado el código tú mismo, y ahora te basas en estas cosas)
 
Techno:
No había tales cadenas )) Debes haber cambiado el código del EA hace algún tiempo, y ahora te guías por estas entradas tú mismo )


Lo siento, tal vez me he equivocado. He basado mi código en Moving Average.mq4 y he hecho cambios en él.

No soy ruso y a veces me resulta difícil describir lo que quiero.

 
gince:


No soy ruso y a veces me resulta difícil describir lo que quiero.

Pero hasta que no describas lo que quieres, es difícil ayudarte
 
abolk:
Pero hasta que no describas lo que quieres, es difícil ayudarte


Tienes dos señales

double tr0=iCustom(NULL,0, "trd",0,0);//puede ser 0 o 1 . Si es 1, entonces compra
double tr1=iCustom(NULL,0, "trd",1,0);//puede ser 0 o 1. Si 1 vendemos

Hablaré de la venta

Cuando tr1 es igual a 1 después del siguiente tick, entonces la comprobación comienza en el momento t para ver si la unidad se mantiene desde t durante el periodo de tiempo tim . El control se realiza a intervalos de tiempo delta. Como ejemplo tomamos t=........ //10.00 hora, tim = 600 seg, delta = 60 seg. Así que a las 10.00 hay tr1=1 (antes era 0). Pero no lo venderemos. La venta se confirmará si la señal alcanza los 600 segundos, es decir, 10,10. La comprobación no se realiza todo el tiempo, sino en intervalos de tiempo delta=60 seg (10.00, 10.01, 10.02, ....... , 10.09, 10.10). Y si en cada comprobación tr1=1, entonces damos una señal de venta.

También hay una desventaja: el cero puede aparecer entre cada comprobación y la señal puede ser falsa. Las comprobaciones pueden simplificarse, pero el ordenador está muy ocupado. Deberías encontrar la media de oro en este caso y ver qué pasa. Todo esto es para experimentar.


 
gince:


Hay dos señales

double tr0=iCustom(NULL,0, "trd",0,0);//puede ser 0 o 1 . Si 1 compramos
double tr1=iCustom(NULL,0, "trd",1,0);//puede ser 0 o 1. Si 1 vendemos


No está claro, ¿se pueden recibir dos señales diferentes (contradictorias) al mismo tiempo?

 
abolk:

No está claro, ¿se pueden recibir dos señales diferentes (conflictivas) al mismo tiempo?


No, no lo es. Se toman de diferentes topes y sólo uno de ellos puede obtener uno. Posibles combinaciones

tr0 0 1 0

tr1 0 0 1

1 y 1 es una combinación imposible

 
void init()
{
  isSign=false;
}

void start() // запускается с каждым тиком
{
   if(!isSign) // если сигнала нет
   {
      sign0=???; // формула определения sign
      if(sign0==1) // если сигнал поступил
      {
         t0=TimeCurrent(); //фиксируем время
         isSign=true; // переключатель - сигнал поступил
      }
   }
   if(isSign) // если сигнал есть
   {
      t=TimeCurrent(); // новое время
      if(t<=t0+delta) // если временной промежуток не закончился
      {
         sign1=???; //формула определения нового сигнала
         if(sign1!=sign0) // если новый сигнал изменился (не продержался)
         {
            isSign=false; // переключатель - сигнала нет
         }
      }
      if(t>t0+delta) // если промежуток закончился
      {
         if(isSign) // если сигнал удержался
         {
            //действия по сигналу
         }
      }
   }
}

Comprobar con cada garrapata, no a intervalos discretos

Perdona si me he equivocado.

 
gince:


No, no puede. Se toman de diferentes tampones y sólo uno de ellos puede dar 1. Posibles combinaciones

tr0 0 1 0

tr1 0 0 1

1 y 1 es una combinación imposible

señal == 1.

activar el temporizador de anulación.

si la señal == 1. no se pone en marcha el temporizador de anulación.

si la señal == -1, entonces reinicia el temporizador de compra y pone el temporizador de compra en Buy.

si la señal == -1. no tocar el temporizador de venta.

si la señal llegó a 0 reinicia ambos temporizadores a cero.

Si el temporizador cuenta 5 minutos, entonces estamos listos.

 
neama:


señal sig_bye== 1. si 0 el temporizador no se iniciará
ajustar el temporizador de la boya.
Si la señal ==1, deja el temporizador de la bahía inactivo.
Si la señal sig_bai== 0. entonces reinicia el temporizador de la bahía.

El temporizador cuenta 5 minutos en intervalos de, digamos, un minuto dos veces, así que trabajaremos en bai.

Cuando la señal sig_beam se apaga== 1. Si es 0, el temporizador no se inicia.
encienda el temporizador sel.
Si la señal Sat_en_esel==1, deja el temporizador de reposo inactivo.
Si llega una señal Sig_sel==0, reinicia el autodisparador.
el temporizador realiza una cuenta atrás de 5 minutos a intervalos de un minuto, digamos que dos veces por minuto, y luego se reinicia.



 
abolk:

Comprobar con cada garrapata, no a intervalos discretos

Perdona si me he equivocado.


Todas las garrapatas son inaceptables.