[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 71

 
r772ra , artmedia70

Gracias, ¡funciona!
 
artmedia70:

Aquí tienes un consejo:

NormalizarDoble(Bajo[i]-Bajo[i+1],Dígitos)<=3*Punto --- diferencia de barras adyacentes. Si no se cumple la condición -> Return(False); (Devuelve false)

Return(False) después de pasar el bucle

Podemos hacerlo de otra manera:

Si la condición NormalizarDoble(Bajo[i]-Bajo[i+1],Dígitos)<=3*Punto es verdadera, aumenta el contador de barras adyacentes (inicialmente igual a cero) en 1,

si la condición es falsa, devolvemos el valor del contador de la barra adyacente.

Cuanto mayor sea el número devuelto por la función, más fuerte será el conjunto. Si se devuelve cero, la configuración no existe.



No creo que haya que normalizar el precio porque sólo hay que comparar con un número entero. Es mejor utilizar la funciónMathAbs(valor doble), de modo que si uno de los precios es mayor que el otro, el signo de la salida sea siempre positivo.

Aquí hay otro punto. Resulta que no necesitamos un bucle en absoluto.

Podemos utilizar simplemente una función con un contador. Comprobamos continuamente 2 barras adyacentes en busca de extremos, y si son iguales, el contador se incrementa en 1 (inicialmente será 0, por supuesto). A continuación, en la siguiente barra nueva realizamos una comprobación similar. Si los extremos son iguales, el contador se incrementará en 1, etc. Aquí no es necesario un bucle a medida que avanzamos, ¿verdad?

Al fin y al cabo, no sabemos cuántas barras tendremos con el mismo valor del extremo y, por tanto, no tiene sentido especificar el parámetro de desplazamiento en el historial.

 
Notter:

Se habla mucho de la negociación de alta frecuencia. Dicen que la HFT los supera a todos. ¿Cuál es su principal ventaja sobre nosotros? El hecho de que un ping corto sea algo bueno en sí mismo es comprensible, pero se necesita más de un milisegundo para hacer una operación :) ¿Qué nueva cualidad aparece en la HFT y en qué se diferencian en principio los algoritmos?

Gracias.


Tú conduces un Zaporozhets, y estos tipos conducen un Ferrari. ¿Se puede adelantar? (No se trata de algoritmos)
 
YOUNGA:

Tú conduces un Zaporozhets y estos tipos conducen un Ferrari. ¿Se puede adelantar? (No se trata de algoritmos)
Zaporozhets necesita un poco de trabajo. Entonces no sólo se puede "hacer" Ferrari.
 
YOUNGA:

Tú conduces un Zaporozhets, y estos tipos conducen un Ferrari. ¿Puedes dejarlos atrás?

Sin embargo, hay una diferencia fundamental.

Por lo menos, asumir el riesgo/retorno. Si el HFT registra beneficios por puntos, obviamente no coloca stops, y el cierre de la posición según otros criterios. Puede ser que cualquier tic contra una posición sea una salida). Pero entonces, ¿de dónde sale el beneficio?

 
Nuevamente por ayuda.


¿Cómo puedo determinar de qué lado cruza los precios la SMA?
 
hoz:


No creo que haya que normalizar el precio, porque sólo hay que comparar con un número entero. Es mejor utilizar la funciónMathAbs(double value), para que si uno de los precios es mayor que el otro, el signo de la salida sea siempre positivo.

Aquí hay otro punto. Resulta que no necesitamos un bucle en absoluto.

Podemos utilizar simplemente una función con un contador. Comprobamos continuamente 2 barras adyacentes en busca de extremos, y si son iguales, el contador se incrementa en 1 (inicialmente será 0, por supuesto). A continuación, en la siguiente barra nueva realizamos una comprobación similar. Si los extremos son iguales, el contador se incrementará en 1, etc. Aquí no es necesario un bucle en el camino, ¿verdad?

Al fin y al cabo, no sabemos cuántas barras tendremos con el mismo valor extremo y, por tanto, no tiene sentido especificar el parámetro de desplazamiento en el historial.

Por supuesto, MathAbs() es necesario allí - lo escribí de la nada, sentado al volante - no se puede escribir mucho, además di un consejo para ello. Normalizar los precios, porque comparar números reales requiere normalización, mientras que no estamos comparando con un entero (porque 3*Punto es int*doble- conversión de int a doble). Todavía haría una función que comparara las barras en cada tick - estoy acostumbrado a pensar inmediatamente para el real. Si el EA se desactiva por alguna razón, la variable que almacena el valor del contador se restablecerá cuando el EA se reinicie - esto no es bueno ... es una pérdida de datos. Pero en el caso de la búsqueda pictórica (o mejor para optimizar la velocidad), el reinicio del Asesor Experto en este caso no es tan malo - volverá a calcular todo. Por lo tanto, es mejor crear una función separada que compare un número determinado de barras adyacentes en cada nueva barra para la igualdad (bueno, como usted lo tiene) y devuelva el número de barras consecutivas iguales por un criterio determinado, empezando por la primera y más allá en la historia para el número de barras que se han pasado a la función (diez por pieza...).

En general... algo así...

 
md4RM:
Nuevamente por ayuda.


¿Cómo puedo saber de qué lado está cruzada la SMA por el precio?

Si (

iMA(Symbol(), Period(), 1, 0, MODE_SMA, PRICE_CLOSE, 2) <= SMA(blah, blah, blah, 2)

и

iMA(Símbolo(), Periodo(), 1, 0, MODO_SMA, PRECIO_CIERRE, 1) > SMA(bla, bla, bla, 1)

) entonces

{el precio ha cruzado su SMA de abajo a arriba en la primera barra}

 

Gracias, he encontrado el error.

 

Buenas tardes, por favor, ayuda. He descargado el indicador VininI_HMA y he intentado insertarlo en la plantilla del EA, pero el EA no abre las operaciones. La recopilación ha ido bien.

Condición para la VENTA (Sigj1==EMPTY_VALUE)&& (Sigj2!=EMPTY_VALUE)&& (Sigj1!=EMPTY_VALUE)&& (Sigj2!=EMPTY_VALUE)

Condiciones para comprar (sigj1==EMPTY_VALUE)&& (sigj2!=EMPTY_VALUE)&& (sigj1!=EMPTY_VALUE)&& (sigj2!=EMPTY_VALUE)

double sigz1 = iCustom(NULL,0, "VininI_HMA_sound&Alert",period,method,price,sdvig,0,1);
double sigz2 = iCustom(NULL,0, "VininI_HMA_sound&Alert",period,method,price,sdvig,0,2);
double sigz1 = iCustom(NULL,0, "VininI_HMA_sound&Alert",period,method,price,sdvig,1,1);
double sigz2 = iCustom(NULL,0, "VininI_HMA_sound&Alert",period,method,price,sdvig,1,2);
double sigk1 = iCustom(NULL,0, "VininI_HMA_sound&Alert",period,method,price,sdvig,2,1);
double sigk2 = iCustom(NULL,0, "VininI_HMA_sound&Alert",period,method,price,sdvig,2,2);

Por favor, dígame dónde me he equivocado.