Ayuda en código con condicionante previo para abrir posición
Forums › ProRealTime foro Español › Soporte ProOrder › Ayuda en código con condicionante previo para abrir posición
- This topic has 3 replies, 2 voices, and was last updated 2 years ago by robertogozzi.
-
-
11/18/2022 at 10:23 AM #20437412345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273DEFPARAM CumulateOrders = FALSE // Acumulación de posiciones desactivadaz = 60w = 60// Condiciones para entrada de posiciones largasindicator1 = WeightedAverage[9](totalPrice)indicator2 = WeightedAverage[100](totalPrice)c1 = (indicator1 CROSSES OVER indicator2)c2 = (indicator1 > indicator2 + z)c3 = (indicator1 CROSSES UNDER indicator2)C4 = (indicator1 < indicator2 - Z)c7 = (indicator1 < indicator2 - w)C8 = (indicator1 > indicator2 + w)IF c1 and C2 THENBUY 2 CONTRACT AT marketENDIF// Condiciones de salida de posiciones largasIF c3 and C7 THENSELL AT MARKETENDIF// Condiciones de entrada de posiciones cortasIF c3 and C4 THENSELLSHORT 2 CONTRACT AT marketENDIF// Condiciones de salida de posiciones cortasIF c1 and C8 THENEXITSHORT AT MARKETENDIFDEFPARAM CumulateOrders = FALSE // Acumulación de posiciones desactivadaz = 60w = 60// Condiciones para entrada de posiciones largasindicator1 = WeightedAverage[9](totalPrice)indicator2 = WeightedAverage[100](totalPrice)c1 = (indicator1 > indicator2)c2 = (indicator1 > indicator2 + z)c3 = (indicator1 < indicator2)C4 = (indicator1 < indicator2 - Z)c7 = (indicator1 < indicator2 - w)C8 = (indicator1 > indicator2 + w)IF c1 and C2 THENBUY 2 CONTRACT AT marketENDIF// Condiciones de salida de posiciones largasIF c3 and C7 THENSELL AT MARKETENDIF// Condiciones de entrada de posiciones cortasIF c3 and C4 THENSELLSHORT 2 CONTRACT AT marketENDIF// Condiciones de salida de posiciones cortasIF c1 and C8 THENEXITSHORT AT MARKETENDIF
Buenos dias a tod@s,
Necesito ayuda con mi código ya que no consigo programar mi idea correctamente.
La idea es sencilla; cuando se produce cruce al alza de MM9 versus MM100, se da una primera señal de entrada con largos y cuando el cruze es a la baja se da primera señal para abrir cortos.. Pero hasta que la distancia entre las MM no sea mínimo de 60 puntos no debe realizarse la apertura de largos o cortos, según el caso.
Con mi siguiente código, en cuanto lo activo abre posición sin esperar al cruce me medias previo:
Por otro lado cuando aplico este otro código el error está en que solo abre posición, si en el momento del cruce de MM la distancia es mínimo de 60. En caso de que la distancia mínimo de 60 se alcance más adelante, ya no abre posición.
Ruego me ayudéis para poder sacar mi sistema adelante.
Muchas gracias a tod@s.
11/19/2022 at 6:21 AM #204433Ahi esta:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556DEFPARAM CumulateOrders = FALSE // Acumulación de posiciones desactivadaONCE c1Flag = 0ONCE c3Flag = 0ONCE c1 = 0ONCE c3 = 0z = 60w = 60// Condiciones para entrada de posiciones largasindicator1 = WeightedAverage[9](totalPrice)indicator2 = WeightedAverage[100](totalPrice)IF c1 = 0 THENc1 = (indicator1 CROSSES OVER indicator2)IF c1 THENc1Flag = 1c3 = 0c3Flag = 0ENDIFENDIFc2 = (indicator1 - indicator2) > z//(indicator1 > indicator2 + z)IF c3 = 0 THENc3 = (indicator1 CROSSES UNDER indicator2)IF c3 THENc3Flag = 1c1 = 0c1Flag = 0ENDIFENDIFC4 = (indicator2 - indicator1) > Z//(indicator1 < indicator2 - Z)c7 = (indicator2 - indicator1) > w//(indicator1 < indicator2 - w)C8 = (indicator1 - indicator2) > w//(indicator1 > indicator2 + w)IF c1Flag and C2 THENBUY 2 CONTRACT AT marketENDIF// Condiciones de salida de posiciones largasIF c3Flag and C7 THENSELL AT MARKETENDIF// Condiciones de entrada de posiciones cortasIF c3Flag and C4 THENSELLSHORT 2 CONTRACT AT marketENDIF// Condiciones de salida de posiciones cortasIF c1Flag and C8 THENEXITSHORT AT MARKETENDIFNo publicaste el segundo código.
11/24/2022 at 12:07 AM #204710Hola, buenas noches Roberto.
He operado con este código en cuenta Demo para comprobarlo y, lamentablemente, ha abierto posiciones antes del cruce de MM.
Busco que, cuando activo el sistema por primera vez, no haga ninguna operación hasta que no se den los condicionantes: Un nuevo corte de MM, y una distancia mínima entre MM de 60 puntos.
Así que no debería haber abierto posición hoy, dado que lo he activado sobre las 9h y ha abierto posición sin esperar a un nuevo corte de MM.
Muchas gracias por tu ayuda.
Adjunto imagen de la entrada errónea.
11/30/2022 at 7:24 AM #205045Agregue esto como una segunda línea:
1DEFPARAM PreLOadBars = 0Lo probé y entra correctamente, después de cada cruce, si el ancho supera los 60 puntos.
Agregue estas líneas al final, para que pueda ver las diversas señales en la ventana de variables que abre el backtest:
123graph indicator1 CROSSES OVER indicator2 coloured("LawnGreen")graph indicator1 CROSSES UNDER indicator2 coloured("Red")graph abs(indicator1 - indicator2) > zz -
AuthorPosts
Find exclusive trading pro-tools on