Estoy utilizado un sistema sencillo de cruce de medias para encontrar puntos de entrada.
Concretamente, dos medias ponderadas de 4 y 100. Dejo código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
DEFPARAMCumulateOrders=false// Acumulación de posiciones desactivada
z=50
w=40
// Condiciones para entrada de posiciones largas
indicator1=WeightedAverage[4](totalPrice)
indicator2=WeightedAverage[160](totalPrice)
c1=(indicator1>indicator2)
c2=(indicator1>indicator2+z)
c3=(indicator1<indicator2)
C4=(indicator1<indicator2-Z)
c7=(indicator1<indicator2-w)
C8=(indicator1>indicator2+w)
IFc1andC2THEN
BUY1CONTRACTATMARKET
ENDIF
// Condiciones de salida de posiciones largas
IFc3andC7THEN
SELLATMARKET
ENDIF
// Condiciones de entrada de posiciones cortas
IFc3andC4THEN
SELLSHORT1CONTRACTATMARKET
ENDIF
// Condiciones de salida de posiciones cortas
IFc1andC8THEN
EXITSHORTATMARKET
ENDIF
Lo que me gustaría es poder mejorar las posiciones de entrada. Es decir, en posiciones largas por ejemplo, en lugar de comprar al precio que se encuentre cuando mis medias se cruzan ( y se cumplen el parámetro Z), que la compra se realice cuando el precio esté a 80 puntos por encima de la WMA(160) que denomino como “indicator2”.
Dicho de otra manera, que el corte de medias WMA, sea como un activador del sistema, para que cuando se dé mi condición Z se coloque una orden de compra a 80 puntos por encima de la WMA(160) que dure hasta que se den mis condiciones de “SELL AT MARKET”.
Igualmente para los cortos, que se coloque una orden de entrada corta a -80 puntos de la WMA(160) cuando la WMA(4) se encuentre a Z puntos por debajo de la WMA(160).
Muchas gracias por el código, pero no funciona correctamente. Creo que no me he explicado bien 🙁
Sustituyendo estas líneas, conseguimos una entrada en el mercado inmediatamente después del corte de medias + Z, aunque el precio en ese momento esté por encima de 80 puntos de la WMA 160.
Solo funciona correctamente si, cuando las medias cortan, el precio en ese momento está por debajo de los 80 puntos del indicador2 , entonces sí que el sistema emite orden para comprar cuando alcance los 80 puntos. Pero si cuando las medias cortan y el indicador1 es mayor que indicador2 +Z (tal y como condiciona el código) el sistema emite orden de compra aunque el precio sea superior a indicador2 + 80 puntos.
En largos, busco que una vez las medias se corten y el indicador1 sea igual o mayor al indicador2 +Z puntos, el sistema espere a que el precio se encuentre a un máximo de 80 puntos por encima de WMA 160 para ejecutar la orden de compra. Es decir entre la WMA 160 y la WMA 160 + 80 puntos y no por encima de los 80 puntos de la WMA 160.
To help us continually offer you the best experience on ProRealCode, we use cookies. By clicking on "Continue" you are agreeing to our use of them. You can also check our "privacy policy" page for more information.Continue