¿Quién quiere una estrategia? Lotes y de forma gratuita) - página 63

 

Sí, el correo es correcto.

Te he enviado un Mensaje Privado hace un minuto.

 

Oh, me había olvidado de la línea privada :))))))

Ya se ha amontonado allí :). Chicos, disculpad si no he contestado a tiempo, es que suelo desactivar los Mensajes Personales en los foros y no he prestado atención aquí por costumbre :)...


Miroslav - entonces ahora voy a preparar un mensaje (respuesta) y enviar por correo ...

 

**Recuerde que el problema de la Apertura de la Barra y el Cierre de la Barra - Punto de la Posición no se limita a, los valores de los indicadores comunes bien pueden ser utilizados allí. Y así se puede abrir una posición "en medio" de un bar (¡fácil!). (por así decirlo, sobre el cálculo de los valores del indicador SÓLO en la intersección de las barras... como he dicho - esta condición "no siempre" es factible ;))**


Si entiendo bien, usted piensa que tenemos que recalcular un indicador en cada tick si el punto de entrada está en el medio de la barra (digamos en una MA). Me permitiré no estar de acuerdo contigo.


Para una prueba de espalda fiable (usando MT, FSB u otro probador), todos los indicadores, incluyendo los puntos de entrada/salida, tienen que ser fijos. Eso no limita a un EA a utilizar la entrada en el mercado durante la barra.

Ejemplos:


1. Entrada en la media móvil (21, cierre):

En este caso no podemos utilizar la MA actual ya que se está moviendo hacia arriba / abajo hasta que el precio de cierre de la barra se fija. Así que tenemos que usar la MA de la barra anterior. Haciendo esto no es necesario recalcularla en cada tic.


2 Entrada en la media móvil (21, abierta):

Aquí podemos utilizar la MA actual. Se fija porque el precio base de la MA - Apertura de la Barra ya está fijado. Tampoco es necesario recalcularla en cada tic.


--------

Editar:

Por supuesto, esta es mi opinión personal.

No pretendo forzarte a hacer backtesting de esa manera.

¡Saludos!


Edición 2:

Por si se me escapa algo, por favor, muéstrame un ejemplo de una estrategia preparada con FSB en la que tengas que recalcular un indicador en cada tick.

 

Mmm, Miroslav, me hago a la idea (además, hace mucho tiempo).

Sólo estaba confundido por las construcciones en el código de los indicadores, que he dado más arriba:

                    case "The position opens above the MA value":
                        component[0]. PosPriceDependence = PositionPriceDependence. BuyHigherSellLower;
                        component[0]. UsePreviousBar     = iPrvs;
                        component[1]. DataType           = IndComponentType. Other;
                        component[1]. ShowInDynInfo      = false;
                        component[2]. DataType           = IndComponentType. Other;
                        component[2]. ShowInDynInfo      = false;
                        break;

a saber: componente[0].PosPriceDependence = PositionPriceDependence.ComprarMayorVenderMenor;

No es el caso, ¿verdad? Es importante entender que no estoy hablando del cálculo del indicador, como tal. El valor del cual, sí, es estacionario dentro de una barra. Pero sobre el hecho de que en este caso (que he citado anteriormente) tenemos que comparar el último valor del precio con él? Para tomar la decisión de abrir una posición. En el FSB, esto se hace mediante procedimientos internos (si lo he entendido bien). Pero como "no los conocemos" (y, en realidad, ¿para qué?) - sugerí recalcular el indicador en cada tick, en tales casos, para recibir un SÍ/NO inequívoco sobre la condición lógica. Es decir, que sea el propio indicador el que llegue a esta conclusión, y no el código externo a él. ¡Lo digo en serio!

Una vez más, estoy de acuerdo con la tesis de que el indicador debe calcularse una vez en las barras "cruzadas". Pero en los casos en que el indicador da señales sobre la apertura de posiciones, en aplicación al trabajo de los futuros EA en MT - debemos confiar sólo en estos valores (SÍ/NO), y no en la comparación de los precios actuales con los precios del indicador (que son estáticos). Dejemos que el propio indicador lo compare por nosotros. Y sólo tendremos en cuenta su SÍ/NO. Eso es... :)


¿O me estoy perdiendo algo en alguna parte? :D? ("se me ha subido un poco a la cabeza...")

 

De ahí la implicación de que tengo que hacer una revisión más de tales cálculos (estoy pensando ahora) para comparar Close[iBar] con el valor del indicador actual o anterior (que de ellos es estático) correctamente (hay que considerar iPrvs). Pero en la idea creo que no me equivoco...?



(¿de qué estamos hablando :))? Los indicadores seguirán contabilizando el trabajo con IndicatorCounted() ¡¡¡En cualquier lugar!!! No lo haré de otra manera :). Pueden ser utilizados no sólo por los escritores de EA, sino también por los usuarios que necesitarán una parte visual (y valores en tiempo real). El código original no cambia nada. Normalmente, sólo se añade un bit al principio, que inicializa los valores "originales" de las variables auto-referenciadas. No más que eso... A veces se le da "poca sangre". A veces no tanto (como en el ejemplo de la hora alta baja). Pero en cualquier caso, los gestos son mínimos (¿todavía?) :))


¿O es un aspecto global? Entonces no hay nada que discutir: ¡el iPrvs es increíble!:) ¡Ya basta! ¡Pero nadie lo discute :)!


(He enviado un correo electrónico... Intentaré contestar aquí en persona)

 
caso "La posición se abre por encima del valor de la MA":
component[0].PosPriceDependence = PositionPriceDependence.BuyHigherSellLower;


Esta lógica no se puede gestionar desde el propio indicador ya que las señales dependen del indicador Punto de Entrada.

Esta lógica no da señales de compra / venta (1 , 0) como las otras.

El FSB procede de la siguiente manera:

1. Inicialmente ignora este indicador al tomar la decisión de operar;
2. Si se cumplen todas las demás reglas lógicas y el FSB conoce el punto de entrada, comprueba este indicador para permitir o prohibir la entrada justo antes de la ejecución real.

Esto se incluye en el backtester.

Existen tres opciones de aplicación en una EA:

1. Calcular primero los puntos de entrada (en un array). Después de eso para enviar esta matriz al indicador para calcular las señales de compra / venta.

2. tener un método base EntryPrice(int iBar) que devuelva el precio de apertura de la posición.
La posición se abre por encima del valor de la MA:
for(int iBar ... )
{
SignalLong[iBar] = EntryPrice(iBar) > MA[iBar] ? 1 : 0;
SignalShort[iBar] = EntryPrice(iBar) < MA[iBar] ? 1 : 0;
}

3. Llamar a este indicador antes de la entrada real:
double EntryPrice = ....;
If(Precio de entrada > fsb_MA(...))
OrderSend(...);


----

Hay varios indicadores que no establecen señales 1:0:
- Todos los indicadores con la lógica "La posición se abre por encima / por debajo de ..."
- Indicadores de "tiempo": hora de entrada, hora de entrada, día de la semana;
- Cuenta Porcentaje Parada
- Parada ATR
- Límite de parada
- Stop Loss
- Toma de beneficios
- Trailing Stop
- Límite de Trailing Stop
- Limitador de lote

Estos "Indicadores" dan permiso de entrada/salida en el momento de operar;










 

Miroslav - ¡"lo tengo"! No en el sentido de entender finalmente algo :) (la idea de manipular el FSB con la lógica de los indicadores,

Lo he entendido hace tiempo (no tengo en cuenta Stop Limit y otras cosas, no las he mirado todavía).

Por fin me acuerdo de algo, digamos :)


Simplemente estamos hablando en el mismo contexto de aplicaciones diferentes (entendiendo por ello tanto las propias aplicaciones (FSB y MT) como "en aplicación a").

El punto clave es el cálculo de los indicadores del FSB una vez, antes del procedimiento de back-testing propiamente dicho.

¡FSB simplemente no puede calcular inequívocamente 1/0 para tales condiciones ("La posición se abre por encima / por debajo de ...") antes de la prueba en sí!

Por lo tanto, utiliza exactamente la lógica correcta:

1. Inicialmente ignora este indicador al tomar la decisión de operar;
2. Si se cumplen todas las demás reglas lógicas y el FSB conoce el punto de entrada, comprueba este indicador para permitir o prohibir la entrada justo antes de la ejecución real.
Pero para nuestro caso (RealTime) ESTO NO ES OBLIGATORIO. O más bien - calculando indicadores "constantemente y sobre la marcha" - tendremos en cada momento
en un momento dado tendremos una respuesta definitiva 1/0 para esta condición lógica.
Todavía "no" podremos abrir una posición al último precio disponible (Close[0]). Entonces, ¿por qué no comparar el indicador con él?
Y por qué no sale un 1/0 lógico como en otros casos (lo siento, el formato está "apagado", no quiero mirar en HTML (no tiene sentido "flipar"):
 caso MA_POS_OPENS_ABOVE:
for (iBar = iFirstBar; iBar >= 0; iBar--) {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar];
}
break;

// Lo que aparentemente es más correcto reescribir con iPrvs en mente (se me acaba de "ocurrir" hoy cómo evitar este problema en general)

case MA_POS_OPENS_ABOVE:
For (iBar = iFirstBar; iBar >= 0; iBar--) {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar + iPrvs];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar + iPrvs];
}
break;

// Teniendo en cuenta que los valores de todas las barras excepto [0] (en tiempo real) serán "no del todo correctos" (o mejor dicho, fijos para Close[iBar]), podemos cambiar el código así

caso MA_POS_OPENS_ABOVE:
for (iBar = iFirstBar + 1; iBar >= 0; iBar--) {
if (iBar > 0) {
LPIndBuffer[iBar] = 0.0;
SPIndBuffer[iBar] = 0.0;
} else {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar + iPrvs];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar + iPrvs];
}
}
break;

// T.Es decir, para todas las barras, excepto [0], el indicador mostrará que esta condición no se cumple (no se cumplió) - una cuestión de estética, por así decirlo... nada más.

 

(off: estoy intentando insertar el código de nuevo, como un comentario separado - "la flor de piedra no sale" :), luego un comentario vacío, luego sólo va a la primera página... Tal vez haya algunos elementos en el texto - "no digeribles"... en general - así que lee (como arriba) :))

 

Señores, Miroslav actualizó ayer el FSB a la versión 2.8.3.6 Beta:

http://forexsb.com/forum/post/2446/#p2446


La lógica de la señal se ha unificado. Los cambios afectaron a la gran mayoría de los indicadores. El código de cálculo de los indicadores no se ha modificado.

Las señales lógicas se volvieron un poco menos susceptibles al "ruido". En el archivo de configuración hemos añadido dos parámetros:

  <SIGMA_MODE_MAIN_CHART> 1</SIGMA_MODE_MAIN_CHART>
  <SIGMA_MODE_SEPARATED_CHART> 5</SIGMA_MODE_SEPARATED_CHART>

Los parámetros establecen el "umbral" de las señales que se activan a partir del nivel de cambio de precio (para los indicadores en la ventana con el gráfico y para los indicadores con sus propias ventanas).

Aquí se da la correspondencia de los valores de MODE:

http://forexsb.com/library/source/Sigma.html


Creemos que los valores "por defecto" son EXACTAMENTE adecuados (en la mayoría de los casos). Pero... siéntase libre de experimentar :).


He esperado a propósito a este lanzamiento, para no hacer doble trabajo. Yo también estoy poniendo mis propias obras. Tengo 20 indicadores en este momento (no consideraría 2 de ellos como "útiles" (Cierre de Barra / Apertura de Barra) - serán útiles en el futuro ;)):

-FSB- Accelerator Oscillator.ex4
-FSB- Accumulation Distribution.ex4
-FSB- ADX.ex4
-FSB- Bar Closing.ex4
-FSB- Bar Opening.ex4
-FSB- Bar Range.ex4
-FSB- Bollinger Bands.ex4
-FSB- Donchian Channel.ex4
-FSB- Envelopes.ex4
-FSB- Force Index.ex4
-FSB- Heiken Ashi.ex4
-FSB- Hourly High Low.ex4
-FSB- Ichimoku Kinko Hyo.ex4
-FSB- Keltner Channel.ex4
-FSB- Moving Average.ex4
-FSB- Price Oscillator.ex4
-FSB- RSI MA Oscillator.ex4
-FSB- RSI.ex4
-FSB- Starc Bands.ex4
-FSB- Steady Bands.ex4

Los algoritmos de cálculo y la lógica de las señales son totalmente compatibles con el FSB (bueno... deberían :D)...

¡¡INCLUYENDO LOS VALORES DE LOS INDICADORES!! (FSB (aplicación) = -FSB- (conversión) = MT (interno) ) (hasta cualquier signo).

La excepción es "-FSB- Accumulation Distribution.ex4" - Miroslav tiene un código complicado allí, no he llegado a hacerlo todavía (no coincide exactamente con MT, no lo he comprobado con FSB).


Continúo por orden alfabético (bueno, casi). Si alguien necesita algo más prioritario, que escriba... (la persona con Hourly High Low desapareció en algún lugar, no he entendido - ¿¡ayudó o no :D?!)


Al mismo tiempo comenzamos a desarrollar EA que podrán operar con estas versiones de indicadores. Al final debe haber una especie de gavilla:

FSB -> Archivo de estrategia exportado -> EA, basado en los indicadores convertidos y la lógica de negociación interna, compatible con FSB...


Buena suerte. ¡¡¡Y felices fiestas a todos!!!

Me presentaré más cerca del comienzo de la semana laboral... manténgase en sintonía...

Archivos adjuntos:
 
Stellarator >> :

Señores, Miroslav actualizó ayer el FSB a la versión 2.8.3.6 Beta:

http://forexsb.com/forum/post/2446/#p2446


Estoy descargando algo y el archivo está roto... :