Problema validación de código.
Forums › ProRealTime foro Español › Soporte ProOrder › Problema validación de código.
- This topic has 8 replies, 2 voices, and was last updated 5 years ago by DTA.
-
-
04/19/2019 at 11:52 AM #96815
Buenos días a todos,
Tengo un problema con la validación del código. No puedo enviarlo a ProOrder ya que me sale un error que dice que el código es invalido.
Primero decir que es mi primer código en la vida, pues seguro que tengo fallos básicos para corregir…
Este es el código que me gustaría poder utilizar:
Problema validación de código.12345678910111213141516171819202122232425262728293031323334353637383940414243444546//EpecificationsStopOrderValidation = TrueProfitOrderValidation = TrueYear = 2019Month = 4Day = 18Hour = 00Minute = 55ContractsValue = 3.4Direccion = SELLSHORTpLossValue = 860pProfitValue = 85QuitValue = 20190418//Close market days_for Safty!!!!!!!!IF (Month = 1 AND Day =1) OR (Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31)) THENTradingDay = 0ELSETradingDay = 1//Automatic trading conditionsIf (Currentyear = Year) AND (Currentmonth = Month) AND (CurrentDayOfWeek = Day) AND (CurrentHour = Hour) AND (CurrentMinute = Minute) THENStartTradingDay = 1ELSEStartTradingDay = 0//We initialize this variable once at the beginning of the trading system, we chek de conditions of close safty days and timeIF TradingDay = 1 AND StartTradingDay = 1 THENDireccion ContractsValue CONTRACTS AT MARKET//Stop losss by pipsDEFPARM CumulateOrders = StopOrderValidationSET STOP pLOSS pLossValue//Target Profit by pipsDEFPARM CumulateOrders = ProfitOrderValidationSET TARGET pPROFIT pProfitValueENDIFENDIFENDIF//Stopping a trading system with QUITIf date > QuitValue THENQUITENDIFLa Idea final, es poder tener un código donde yo pueda seleccionar: la fecha y hora de entrada, los contratos que quiero comprar o vender, la dirección BID ASK, los pips de SL y de TP y finalmente, si quiero o no utilizar TP o SL.
Decir que estoy investigando mucho para poder aprender a programar, pero yo solo de momento no me salgo del bucle de donde estoy….
Gracias por avanzado!!!!!
Saludos.
04/19/2019 at 12:08 PM #96817Las líneas 33 y 37 están equivocadas, ¿no sé por qué está utilizando "cumulateorders" de esta manera? ¿Dónde viste eso antes? 🙂 De todos modos, la instrucción defparam no se puede colocar en medio de un código, solo se coloca en la parte superior de este. Si no desea acumular pedidos, agregue esta línea solo en la parte superior del código:
1defparam cumulateorders=false04/19/2019 at 6:50 PM #96827Buenas tardes Nicolas,
Muchas gracias por la corrección de mi código. Ahora he cambiado alguna cosillas y ya funciona.
La verdad es que no entiendo muy bien el funcionamiento del “cumulateorders”… pensaba que me serviría para activar o desactivar código. Por esta razón estaba encima del código de Stop loss y del Target profit. Hay veces que no quiero profit y pensaba que me ayudaría a deshabilitarlo o habilitarlo según si arriba escribía un true o un false.
Así ha quedado finalmente el código que me funciona:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354Defparam Cumulateorders = false//Epecifications of my control Program//Programed DateYearParameter = 2019MonthParameter = 4DayParameter = 18//Programed ScheduleHourParameter = 00MinuteParameter = 55//Programed ContractsContractsValue = 3.4//Gain and LossespLossValue = 860pProfitValue = 85//Time to LeaveQuitValue = 20190418//Close market days_for Safty!!!!!!!!IF (Month = 1 AND Day =1) OR (Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31)) THENTradingDay = 0ELSETradingDay = 1//Automatic trading conditionsIf (Currentyear = YearParameter) AND (Currentmonth = MonthParameter) AND (CurrentDayOfWeek = DayParameter) AND (CurrentHour = HourParameter) AND (CurrentMinute = MinuteParameter) THENStartTradingDay = 1ELSEStartTradingDay = 0//We initialize this variable once at the beginning of the trading system, we chek de conditions of close safty days and timeIF TradingDay = 1 AND StartTradingDay = 1 THENSELLSHORT ContractsValue CONTRACTS AT MARKET//Stop losss by pipsSET STOP pLOSS pLossValue//Target Profit by pipsSET TARGET pPROFIT pProfitValueENDIFENDIFENDIF//Stopping a trading system with QUITIf date > QuitValue THENQUITENDIFUna pregunta Nicolas, En principio el código que tengo ahora solo se ejecutara una vez, verdad? No me gustaría ver que durante el minuto que tengo programada la entrada, se ejecutara 60 veces.. (los 60 segundos).
Un abrazo y muchas gracias otra vez por toda tu ayuda y conocimiento.
04/20/2019 at 10:48 AM #96830Si inicia la estrategia en un período de tiempo de 1 minuto, el código se leerá solo al cierre de la vela de 1 minuto, por lo tanto, solo puede tener 1 pedido en cada vela, pero dependiendo de sus condiciones, obviamente. Cumulateorders se utiliza para permitir que la estrategia agregue más pedidos en el mercado que solo uno a la vez.
04/20/2019 at 10:12 PM #9685604/22/2019 at 7:58 AM #96909Buenos días.
Hoy he probado el código en mi cuenta demo, y no me funciona. He podido cargar el código hasta el ProOrder Auto Trading, he puesto el sistema en RUNING (adjunto imagen de como se ha quedado), y no ha entrado en corto…
¿Tengo alguna condición mal hecha en mi código? La idea principal, es poder dejarlo en Running y que él solito entre la operativa según día y hora programada (parte superior del código).
En fin, toda ayuda será bien recibida.
Este es exactamente el código que he cargado en ProOrder:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354Defparam Cumulateorders = false//Epecifications of my control Program//Programed DateYearParameter = 2019MonthParameter = 4DayParameter = 22//Programed ScheduleHourParameter = 08MinuteParameter = 40//Programed ContractsContractsValue = 1//Gain and LossespLossValue = 135pProfitValue = 30//Time to LeaveQuitValue = 20190423//Close market days_for Safty!!!!!!!!IF (Month = 1 AND Day =1) OR (Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31)) THENTradingDay = 0ELSETradingDay = 1//Automatic trading conditionsIf (Currentyear = YearParameter) AND (Currentmonth = MonthParameter) AND (CurrentDayOfWeek = DayParameter) AND (CurrentHour = HourParameter) AND (CurrentMinute = MinuteParameter) THENStartTradingDay = 1ELSEStartTradingDay = 0//We initialize this variable once at the beginning of the trading system, we chek de conditions of close safty days and timeIF TradingDay = 1 AND StartTradingDay = 1 THENSELLSHORT ContractsValue CONTRACTS AT MARKET//Stop losss by pipsSET STOP pLOSS pLossValue//Target Profit by pipsSET TARGET pPROFIT pProfitValueENDIFENDIFENDIF//Stopping a trading system with QUITIf date > QuitValue THENQUITENDIFUn saludo!! Y gracias!!!
04/23/2019 at 8:23 PM #97021Buenas tardes a todos,
Por favor, alguien podría echarle un ojo al mensaje que está encima de este!! Es importante ya que no puedo entender que es lo que me falta para que se ejecute el código según las fechas ..
Muchas gracias y perdonad las molestias.
04/24/2019 at 8:42 AM #97031CurrentDayOfWeek devuelve un número entre 0 o 1 y 7, no es el día del mes. Debe ver todas las instrucciones de fecha posibles aquí: https://www.prorealcode.com/documentation/category/dateandtime/
04/24/2019 at 6:43 PM #97073Hola Nicolás,
Gracias por tu respuesta. He cambiado lo que me dices y todavía no funciona. Adjunto imagen de cómo queda el ProOrder con el sistema en “Running”. He marcado en rojo la parte donde se puede ver que no estamos dentro de mercado (CADNOK).
Este es el código actual:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556Defparam Cumulateorders = false//Epecifications of my control Program//Programed DateYearParameter = 2019MonthParameter = 4DayParameter = 3//Programed ScheduleHourParameter = 8MinuteParameter = 40//Programed ContractsContractsValue = 1//Gain and LossespLossValue = 135pProfitValue = 30//Time to LeaveQuitValue = 20190425//Close market days_for Safty!!!!!!!!IF (Month = 1 AND Day =1) OR (Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31)) THENTradingDay = 0ELSETradingDay = 1//Automatic trading conditionsIf (Currentyear = YearParameter) AND (Currentmonth = MonthParameter) AND (CurrentDayOfWeek = DayParameter) AND (CurrentHour = HourParameter) AND (CurrentMinute = MinuteParameter) THENStartTradingDay = 1ELSEStartTradingDay = 0//We initialize this variable once at the beginning of the trading system, we chek de conditions of close safty days and timeIF TradingDay = 1 AND StartTradingDay = 1 THENSELLSHORT ContractsValue CONTRACTS AT MARKET//Stop losss by pipsSET STOP pLOSS pLossValue//Target Profit by pipsSET TARGET pPROFIT pProfitValueENDIFENDIFENDIF//Stopping a trading system with QUITIf date > QuitValue THENQUITENDIFSi tienes alguna idea, de por qué no funciona el código, te lo agradecería, de todas formas gracias por tu ayuda hasta ahora.
(debajo está la imagen de como se queda la orden en ProOrder)
Saludos.
-
AuthorPosts
Find exclusive trading pro-tools on