Hola a todos, quería saber cuántos TIMEFRAME se pueden usar en una estrategia de Proorder. Estoy intentando hacer que funcione una con 3 TIMEFRAME diferentes, respetando los múltiplos de los períodos, y no hay manera de que tenga en cuenta las condiciones especificadas en los diferentes TIMEFRAME. Gracias
Aquí hay un ejemplo:
// Multiple TFs (example)
//
Timeframe(Daily,UpdateOnClose)
sma1 = average[5,0](close)
Timeframe(4h,UpdateOnClose)
sma2 = average[5,0](close)
Timeframe(1h,UpdateOnClose)
sma3 = average[5,0](close)
Timeframe(30 minute,UpdateOnClose)
sma4 = average[5,0](close)
Timeframe(15 minute,UpdateOnClose)
sma5 = average[5,0](close)
Timeframe(5 minute,UpdateOnClose)
sma6 = average[5,0](close)
Timeframe(8h,UpdateOnClose)
sma7 = average[5,0](close)
Timeframe(1 minute,UpdateOnClose)
sma8 = average[5,0](close)
Timeframe(default,UpdateOnClose)
sma9 = average[5,0](close)
Timeframe(Daily,default)
sma10 = average[5,0](close)
Timeframe(Daily,UpdateOnClose)
sma11 = average[5,0](close)
Timeframe(5 minute,default)
sma12 = average[5,0](close)
//return sma1 as "sma1",sma2 as "sma2",sma3 as "sma3",sma4 as "sma4",sma5 as "sma5",sma6 as "sma6",sma7 as "sma7",sma8 as "sma8",sma9 as "sma9",sma10 as "sma10",sma11 as "sma11",sma12 as "sma12"
buy at -close limit
//
graphonprice sma1
graphonprice sma2
graphonprice sma3
graphonprice sma4
graphonprice sma5
graphonprice sma6
graphonprice sma7
graphonprice sma8
graphonprice sma9
graphonprice sma10
graphonprice sma11
graphonprice sma12
Gracias Roberto por responder. Sé estructurar la estrategia, lo que ocurre es que no funciona. Te adjunto mi estrategia y comprobándolo en tiempo real se puede ver como aparecen operaciones ganadoras pero la estrategia no las refleja. Te adjunto el código.
//CIRONET TRADING PRUEBA | proorder
DEFPARAM CUMULATEORDERS = FALSE
iTIMENASDAQ = TIME >= 154000 AND TIME <= 215000
iP1 = 10
iP2 = 15
iP3 = 20
iP4 = 25
//////////////////////////////////////////////////////////
TIMEFRAME (90 MINUTE, DEFAULT)
iX90 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
iKST90 = WILDERAVERAGE[9](iX90)
iC90 = (iKST90 > iKST90[1])
iV90 = (iKST90 < iKST90[1])
//////////////////////////////////////////////////////////
TIMEFRAME (25 MINUTE, DEFAULT)
iX25 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
iKST25 = WILDERAVERAGE[9](iX25)
iC25 = (iKST25 > iKST25[1])
iV25 = (iKST25 < iKST25[1])
//////////////////////////////////////////////////////////
TIMEFRAME (5 MINUTE, DEFAULT)
iX5 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
iKST5 = WILDERAVERAGE[9](iX5)
iC5 = (iKST5 > iKST5[1])
iV5 = (iKST5 < iKST5[1])
//////////////////////////////////////////////////////////
TIMEFRAME (DEFAULT)
IF (iC90 AND iC25 AND iC5) AND (iTIMENASDAQ) THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
//IF LONGONMARKET AND (iSC) THEN
//SELL AT MARKET
//ENDIF
IF (iV90 AND iV25 AND iV5) AND (iTIMENASDAQ) THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
//IF SHORTONMARKET AND (iSV) THEN
//EXITSHORT AT MARKET
//ENDIF
SET STOP PLOSS 10
SET TARGET PPROFIT 0.5
Debería reportar un error, porque 90 minutos no es un múltiplo de 25. ¿No te reportaron?
No. pero es que como te decía Roberto. Utilizo esta estrategia con éxito diariamente en modo manual, pero el Proorder hace lo que le parece…no tiene nada que ver con lo que le aplico en el código.
Si cambia “TF 25 minutos” a “TF 30 minutos” y lo ajusta, debería funcionar.
thanked this post
Nada Roberto. Lo estoy probando en Nasdaq usando el TIMEFRAME DEFAULT con una temporalidad de 10 segundos. Y no tiene sentido lo que hace el Proorder. Llevo tiempo intentando que funcione y nada, al final me veré obligado a usar otra plataforma para el trading automático. He probado incluso usar un solo TIMEFRAME de 90m y el TIMEFRAME DEFAULT de 10 segundos con otros ajustes y nada. Lo podrías probar tú por favor?.
//CIRONET TRADING PROJECT | proorder
DEFPARAM CUMULATEORDERS = FALSE
iTIMENASDAQ = TIME >= 154000 AND TIME <= 215000
iP1 = 10
iP2 = 15
iP3 = 20
iP4 = 25
//////////////////////////////////////////////////////////
TIMEFRAME (90 MINUTE, DEFAULT)
iX90 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
iKST90 = WILDERAVERAGE[9](iX90)
iC90 = ((iKST90 > iKST90[1]) AND (OPEN > CLOSE) AND (iKST90 > 0))
iV90 = ((iKST90 < iKST90[1]) AND (OPEN < CLOSE) AND (iKST90 < 0))
//////////////////////////////////////////////////////////
//TIMEFRAME (30 MINUTE, DEFAULT)
//
//iX25 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
//iKST25 = WILDERAVERAGE[9](iX25)
//
//iC25 = ((iKST25 > iKST25[1]) AND (OPEN > CLOSE))
//iV25 = ((iKST25 < iKST25[1]) AND (OPEN < CLOSE))
//////////////////////////////////////////////////////////
//TIMEFRAME (5 MINUTE, DEFAULT)
//
//iX5 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
//iKST5 = WILDERAVERAGE[9](iX5)
//
//iC5 = ((iKST5 > iKST5[1]) AND (OPEN > CLOSE))
//iV5 = ((iKST5 < iKST5[1]) AND (OPEN > CLOSE))
//////////////////////////////////////////////////////////
TIMEFRAME (DEFAULT)
IF (iC90) AND (iTIMENASDAQ) THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
//IF LONGONMARKET AND (iSC) THEN
//SELL AT MARKET
//ENDIF
IF (iV90) AND (iTIMENASDAQ) THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
//IF SHORTONMARKET AND (iSV) THEN
//EXITSHORT AT MARKET
//ENDIF
SET STOP PLOSS 20
SET TARGET PPROFIT 0.5
Línea14:
Timeframe(90minute, default)
en
Timeframe(90minute, updateonclose)
cambiar.
thanked this post
Nada. Tampoco. Lo habéis probado vosotros esto?. Porque no cumple. Los datos que devuelve la estrategia no tiene nada que ver.
Dime una vela, hora y día, en la que hizo una operación incorrecta. También dime en qué herramienta lo usas.
Como te decía anteriormente ya es que ni usando sólo un TIMEFRAME. Usamos como prueba lo siguiente en NASDAQ y TIMEFRAME DEFAULT (10seg). No lo cumple por ejemplo las barras siguientes….desde el miércoles 27/04/2022 a las 17:30 hasta las 17:45 el mismo día.
//CIRONET TRADING PROJECT | proorder
DEFPARAM CUMULATEORDERS = FALSE
iTIMENASDAQ = TIME >= 154000 AND TIME <= 215000
iP1 = 10
iP2 = 15
iP3 = 20
iP4 = 25
//////////////////////////////////////////////////////////
TIMEFRAME (90 MINUTE, DEFAULT)
iX90 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
iKST90 = WILDERAVERAGE[9](iX90)
iC90 = ((iKST90 > iKST90[1]) AND (OPEN > CLOSE) AND (iKST90 > 0))
iV90 = ((iKST90 < iKST90[1]) AND (OPEN < CLOSE) AND (iKST90 < 0))
//////////////////////////////////////////////////////////
//TIMEFRAME (30 MINUTE, DEFAULT)
//
//iX25 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
//iKST25 = WILDERAVERAGE[9](iX25)
//
//iC25 = ((iKST25 > iKST25[1]) AND (OPEN > CLOSE))
//iV25 = ((iKST25 < iKST25[1]) AND (OPEN < CLOSE))
//////////////////////////////////////////////////////////
//TIMEFRAME (5 MINUTE, DEFAULT)
//
//iX5 = ROC[iP1](CLOSE)+ROC[iP2](CLOSE)+ROC[iP3](CLOSE)+ROC[iP4](CLOSE)
//iKST5 = WILDERAVERAGE[9](iX5)
//
//iC5 = ((iKST5 > iKST5[1]) AND (OPEN > CLOSE))
//iV5 = ((iKST5 < iKST5[1]) AND (OPEN > CLOSE))
//////////////////////////////////////////////////////////
TIMEFRAME (DEFAULT)
IF (iC90) AND (iTIMENASDAQ) THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
//IF LONGONMARKET AND (iSC) THEN
//SELL AT MARKET
//ENDIF
IF (iV90) AND (iTIMENASDAQ) THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
//IF SHORTONMARKET AND (iSV) THEN
//EXITSHORT AT MARKET
//ENDIF
SET STOP PLOSS 20
SET TARGET PPROFIT 0.5
Realizó alguien la prueba?. Gracias por adelantado.
Lamentablemente hoy no puedo ver las barras del 27 de abril, porque son más de 200K.
¿Qué quiere decir con la frase “No lo cumple por ejemplo las barras siguientes“? ¿Qué hay de malo con las barras?
Hola Roberto. Gracias por tu tiempo. Quiero decir con eso que los resultados que lanza la estrategia no tienen nada que ver con las condiciones a cumplir en la misma.
En la foto adjunta se puede ver que los valores NARANJA son los de la vela que abrió (e inmediatamente cerró) una operación correctamente en la siguiente barra.
Si vas a ver el valor de iKST90 en la barra anterior, verás que ahora es más bajo, así que ingresa CORTO.
Agrega estas líneas al final del código para que puedas comprobarlo por ti mismo:
graph iKST90 coloured(0,128,0,155)
graph IV90 coloured(255,0,0,255)
graph IC90 coloured(0,0,255,255)
thanked this post