[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 319

 
happybuddhist:

En fin, necesito ayuda para escribir una función de cierre de órdenes para mi TS (punto 3) y adaptar el código existente a la función.

Vea aquí. ;)

Archivos adjuntos:
ln_3.mq4  4 kb
 
hoz:

Pero hay un punto. En cualquier caso, un cambio en la salida de la expresión no resolverá el problema. Al fin y al cabo, en el momento en que se produce la puesta a cero, los precios de apertura y de cierre tienen que "intercambiarse".


Parece que se equivoca. Después de todo, +(a-b)=a-b, -(a-b)=-a-(-b)=-a+b=b-a. Con un cambio de signo sí cambian de lugar.

hoz:

Vadim escribió hace tiempo que poner una función dentro del bucle ralentiza la ejecución del código en un orden de magnitud.


Por lo que entendí Vadim, se refería a la llamada de una función de usuario en un bucle.

Vinin:

Quizás deberías abrir tu propia sucursal. ¿Por qué necesitas "Una rama para novatos"?
Sí, ¿por qué un principiante necesita conocer la anatomía y los períodos de un mashka)))) No soy diferente de los principiantes, quizá sólo porque soy analfabeto, así que intento llegar a todo con mi propio cerebro.

hoz:

Hice los contadorescntUp ycntDn diferentes, porque puede tener un valor a la vez y luego otro cuando el cálculo se hace a través del bucle por barras calculadas. Y el contador puede sumar un valor y seguir sumando otro. Y si hay una variable, el número de barras de un atributo se sumará al contador de barras de otro atributo.


El contador es diferente allí. Si la vela va en dirección contraria, el contador se pone a cero por la fórmula. O quizás no te he entendido. Lo único es que puede funcionar más lentamente. Lo probaré cuando me ponga a ello.

 
gyfto: ... Tengo una pregunta sobre la optimización. Estoy tratando con el algoritmo EMA...
Ahora bien, ¿por qué tengo que tomar el último peso si puedo simplemente envolver la función de potencia si el siguiente peso es más importante que el anterior? Ya ni siquiera pregunto por qué usar la recursividad cuando los pesos finales después de la recursividad pueden ser derivados por una fórmula (ver F(n,x) e y(n,x)).
Vinin : Tal vez deberías fundar tu propia sucursal. ¿Por qué se necesita una "Rama para principiantes"?
gyfto: ... Pues sí, por qué los novatos necesitan entender la anatomía y los periodos de la ondulación)))) No soy diferente de los principiantes, quizá sólo que soy analfabeto, así que intento llegar a todo con mi cerebro. ...
Adelante, abre un hilo como "Preguntas sobre EMA" y adjunta el archivo Matcad. Tu mensaje se perderá aquí. En otro hilo, los gurús de las matemáticas deberían poder desglosarlo todo.
 
GaryKa:
Adelante, abre un hilo como "Preguntas sobre la EMA" y adjunta un archivo matkad. Tu mensaje se perderá aquí. En otro hilo, los gurús de las matemáticas deberían poder desglosarlo.

Probablemente quiere decir que la respuesta a la pregunta se perderá. Bien, abriré un hilo, editaré ese post y escribiré movido.
 
TarasBY:

Mira esto. ;)


Gracias. ¿Son resultados de la optimización?
 
gyfto:

Parece que se equivoca. Porque +(a-b)=a-b, -(a-b)=-a-(-b)=-a+b=b-a. Con el cambio de signo, cambian de lugar.

Así que por las matemáticas sabemos que de menos a menos se obtiene un plus. Y del más al menos da el menos. Pero es la primera vez que oigo que las variables se intercambian.

gifto:

Por lo que entendí Vadim, se refería a la llamada de la función del usuario en el bucle.

Tengo una función de usuario allí. Aquí está la función inicial en sí misma en su forma no acortada, ya que no funciona como quiero por ahora, así que decidí no hacerla universal:

//+-------------------------------------------------------------------------------------+
//| Расчитываем количество идущих один за одним баров одного признака                   |
//+-------------------------------------------------------------------------------------+
int LastCandlesType(int directionMA)
{
   int cntUp,                                                                            // Счётчик идущих друг за другом свечей с..
       cntDn;                                                                                // .. требуемыми признаками
       
   for (int i=i_AnyBarsToHistory; i>=1; i--)
   {
      if (directionMA == CROSS_UP)
      {
         if ((Open[i] - Close[i]) >= i_sizeOfSequentialCorrectionBar * pt)              // Если бар соответствует требуемым признакам..
             cntDn++;                                                                     // .. прибавим 1 к счётчику

         if ((Close[i] - Open[i]) >= i_sizeOfTrandBar * pt)                             // Если бар, не соответствует основному признаку..
             cntDn = 0;                                                                   // .. счётчик обнуляем

         if (cntDn == i_sequentBarsСount)                                                   // Если cnt баров в подряд медвежьи..
             return (REQUIRED_SEQUENTIAL_BEARS_GOT);                                         // .. Выходим из функции
      }

      if (directionMA == CROSS_DN)
      {
         if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)              // Если бар соответствует требуемым признакам..
             cntUp++;                                                                     // .. прибавим 1 к счётчику

         if ((Open[i] - Close[i]) >= i_sizeOfTrandBar * pt)                             // Если бар, не соответствует основному признаку..
             cntUp = 0;                                                                   // .. счётчик обнуляем
     
         if (cntUp == i_sequentBarsСount)                                                   // Если cnt баров в подряд бычьи..
             return (REQUIRED_SEQUENTIAL_BULLS_GOT);                                         // .. Выходим из функции
      }
   }
}

Dentro del bucle, desde una función que recibe una señal común, esta variable obtiene su valor y se pasa por parámetro:

int directionMA = GetStateOfMA();

gyfto:
Pues sí, para qué van a necesitar los novatos entender la anatomía y los periodos de una máquina onduladora))) No soy diferente de los principiantes, quizá sólo porque soy analfabeto, así que intento llegar a todo con mi cerebro.

Te equivocas. De hecho, no se puede hablar de analfabetismo. Aquí tienes unos pensamientos que muchos novatos no entienden...

gyfto:

Ahí hay un contador diferente. Si la vela va en sentido contrario, la fórmula reinicia el contador. O te estoy entendiendo mal. Lo único es que podría funcionar más lentamente. Lo probaré cuando tenga la oportunidad.

Sí. Pero tenemos un contador donde los valores se calculan por el orden de aparición de las barras desde la barra con índicei_AnyBarsToHistory hasta la barra con índice 1. De ello se deduce que si la condición se cumple en las barras del índice 30 al índice 15:

directionMA == CROSS_UP

y entonces, por ejemplo, en cnt=2 se cumplirá la condición:

directionMA == CROSS_DN

Entonces cnt se incrementará al valor anterior. Si teníamos 2, la nueva condición se incrementará con 1, entonces cnt=3 y saldremos de la función con el valor 3. ¿Ves lo que quiero decir? Fíjate bien, la lógica es básicamente obvia aquí.

 

Buenas tardes.

¿Alguien tiene experiencia en cambiar los parámetros de los indicadores en un EA?

en función de la volatilidad (por ejemplo, los parámetros MA) ?

O puede darme un enlace para leer

 
Stells:

Buenas tardes.

¿Alguien tiene experiencia en cambiar los parámetros de los indicadores en un EA?

en función de la volatilidad (por ejemplo, los parámetros MA) ?

O puede darme un enlace para leer


Si entiendes lo que es un muving, esas preguntas desaparecerán por sí solas.
 
hoz:
Si entiendes lo que es el muving, esas preguntas desaparecen por sí solas.
No se puede vivir de forma bonita...

MA adaptable
 
Buenos días, necesito ayuda para escribir un simple script o un Expert Advisor' si el script no lo puedo hacer yo nunca lo he programado La esencia del script Login - recibir los precios (Ask y Bid actuales) - determinar el precio de compra/venta futuro (como múltiplo de su número "por ejemplo 30") - averiguar si no hay órdenes abiertas/pospuestas a estos precios - si no hay órdenes, colocar órdenes pendientes con stoploss y take profit - si hay órdenes comprobar el siguiente precio de compra que para comprar es mayor por un número múltiple, para vender - más pequeño por un múltiplo - compruebe el precio actual del techo +-100*fold - espere 5 minutos y vaya a "obtener el precio" la espera puede ser sustituida por ir a "obtener el precio" después de cualquier tick
Razón de la queja: