codigo multi time frame
Forums › ProRealTime foro Español › Soporte ProOrder › codigo multi time frame
- This topic has 11 replies, 2 voices, and was last updated 4 years ago by robertogozzi.
-
-
08/03/2020 at 9:30 AM #140705
Buenos días. necesito que el sistema de 15min entre solo cuando las condiciones en diario sean las adecuadas, el código no me da problemas a la hora de compilar pero cuando lo llevo al backtesting no lo hace, no se en que estoy fallando a ver si alguien puede echarme una mano . muchísimas gracias.un saludo
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivadatimeframe(daily,updateonclose)indicator8 = MACDline[12,26,9](close)indicator9 = MACDSignal[12,26,9](close)c10 = (indicator8 > indicator9)timeframe(15 minutes,updateonclose)// Condiciones para entrada de posiciones largasindicator1 = Stochastic[89,3](close)c1 = (indicator1 CROSSES OVER 80)indicator2 = MACDline[12,26,9](close)indicator3 = MACDSignal[12,26,9](close)c2 = (indicator2 > indicator3)if indicator1 < 40 thenc3=1endifIF c1 AND c2 and c3 THENBUY 1 SHARES AT MARKETc3=0ENDIF// Condiciones de salida de posiciones largasindicator4 = ExponentialAverage[26](close)c4 = (close < indicator4)IF c4 THENSELL AT MARKETENDIF// Stops y targetsSET TARGET pPROFIT 230set stop ploss 5008/03/2020 at 9:56 AM #140709Siempre use el botón “Insert PRT Code” cuando incluya e inserte un código en sus mensajes para que sea más fácil de leer para otros.
Gracias 🙂
08/03/2020 at 10:02 AM #140711Las condiciones C1 y C3 son incompatibles, ambas no pueden ser verdaderas simultáneamente.
Nunca use la condición C10.
08/03/2020 at 2:15 PM #140733Hola robertogozzi perdona por no hacerlo con el botón insert PRT code, no lo sabía .
en cuanto el sistema sí que lo hace bien , el problema es que lo hace en todas las condiciones de diario en vez de hacerlo solo cuando el macdline sea mayor que su señal08/03/2020 at 2:33 PM #140740Si las condiciones C1 y C3 son incompatibles, ¿cómo se pone en posición? ¡MACD no puede cruzar 80 y ser inferior a 40 al mismo tiempo!
Además, NO utiliza la variable C10 creada en el marco de tiempo diario, entonces, ¿cómo la considera para ingresar al mercado?
08/03/2020 at 2:49 PM #140744El sistema mira primero si el estocastico de 89 ha estado por debajo de 40 que es condición indispensable y después si el estocastico de 89 cruza 80 y el macd es mayor que su señal entonces compra y en el backtesting eso lo hace bien el problema es que solo lo tiene que hacer si en diario el macd es mayor que su señal ( cortado al alza) no sé qué tendría que cambiar. Estoy perdido
08/03/2020 at 4:01 PM #140761El método para verificar si el indicador STOCHASTIC está cruzando 80 después de estar por debajo de 40 debe hacerse de manera diferente.
En primer lugar, si el estocástico cruza al alza 80, primero habrá sido DEFINITIVAMENTE por debajo de 40. Entonces, el punto esencial es saber CUÁNTAS velas antes de haber estado por debajo de 40. Por ejemplo, cuando hay una cruz al alza en 80, debe haber estado primero debajo de 40 por NO MÁS DE 20 velas (u otro valor numérico editable).
Además, está mezclando el STOCHASTIC diario con el de 15 minutos, no tiene mucho sentido verificar que el STOCHASTIC incrico 80 diario y que el de 15 minutos era previamente menor de 40.
Resuma las condiciones que desea, para cada período de tiempo (time frame), como una lista:
- ….
- ….
- ….
después de lo cual intentaré crearlo.
08/03/2020 at 4:44 PM #14076508/03/2020 at 6:24 PM #140778Ahí tienes:
123456789101112131415161718192021222324252627282930DEFPARAM CumulateOrders = falseTIMEFRAME(default)ONCE N = 50 //50 bars to look back for Stochastic to be < 40//------------------------------------------------------------------TIMEFRAME(Daily,UpdateOnClose)SignalD = ExponentialAverage[9](MACDline[12,26,9](close)) //SignalMyMacdD = MACDline[12,26,9](close) //Macdc1 = MyMacdD > SignalD//------------------------------------------------------------------TIMEFRAME(1 hour,UpdateOnClose)Signal5 = ExponentialAverage[9](MACDline[12,26,9](close)) //SignalMyMacd5 = MACDline[12,26,9](close) //Macdc2 = MyMacd5 > Signal5//c3 = Stochastic[89,3](close) CROSSES OVER 80 //Stochastic bullish crossoverc4 = summation[n](Stochastic[89,3](close) < 40) //Stochastic < 40 within the last N barscExit = ExponentialAverage[26](close)////------------------------------------------------------------------TIMEFRAME(default)Cond = c1 AND c2 AND c3 AND c4IF Cond AND Not OnMarket THENBUY 1 CONTRACT AT MARKETENDIFIF LongOnMarket AND (close < cExit) THENSELL AT MarketENDIF//SET TARGET pPROFIT 230set stop ploss 5008/03/2020 at 6:37 PM #14078208/03/2020 at 6:39 PM #14078308/03/2020 at 7:39 PM #140787Lo sentimos, reemplace la línea 10 con:
1TIMEFRAME(15 minute,UpdateOnClose) -
AuthorPosts
Find exclusive trading pro-tools on