¿Que tal sería este sistema?...

El espacio de los traders quant: sistemas de trading, gestión monetaria, automatización de sistemas.
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

¿Que tal sería este sistema?...

Mensaje por Ciclo »

¿Si lo dominara en real igual que en demo, pesais que podría ser un ganador consistente?

Agradezco vuestra opinión, consejos, críticas, puntos débiles, etc.
Adjuntos
Test Estrategia 2.xls
(84 KiB) Descargado 236 veces
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Mensaje por polxx »

muy poco historico, ademas es baktesting y deberia ser walk forward
y muy pocas operaciones
estan incluidos los correspondientes slipages y comisiones?
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

polxx escribió:muy poco historico, ademas es baktesting y deberia ser walk forward
y muy pocas operaciones
estan incluidos los correspondientes slipages y comisiones?
Es un testing pero la operaciones son discreccionales. Ya llevan el spread pero no los slipages. No se que es forward.

De todos modos voy a seguir haciendo operaciones y las seguiere metiendo en este foro. A ver si pillo un mercado lateral por que en este la mayor parte del tiempo habia tendencia.

Saludos
Avatar de Usuario
Richi Trader
Mensajes: 101
Registrado: 22 Jun 2008 12:42
Ubicación: Madrid

Mensaje por Richi Trader »

Aqui viene una explicacion del walk forward de nuestro compañero bolsa1

http://bolsa1.com/index.php?option=com_ ... &Itemid=62

De todas formas si tus operaciones son discrecionales no creo que lo tengas sobreoptimizado, aunque yo analizaria mas historico, por si acaso.

Si se mantienen los datos que pones no me parece mal sistema, eee :-D

Un saludo
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

Richi Trader escribió:Aqui viene una explicacion del walk forward de nuestro compañero bolsa1

http://bolsa1.com/index.php?option=com_ ... &Itemid=62

De todas formas si tus operaciones son discrecionales no creo que lo tengas sobreoptimizado, aunque yo analizaria mas historico, por si acaso.

Si se mantienen los datos que pones no me parece mal sistema, eee :-D

Un saludo
Guardo en favoritos el vínculo para cuando haga sistemas automaticos.
Seguieré operando para ganar experiencia por que algunas veces no sigo rigurosamente el sistema y creo que se puede mejorar. Tambien quiero probar en entornos planos y de mucha volatilidad en el corto plazo. Yo trabajo en 1 hora,pero miro 4horas, 1Dia y sobre todo 1 semana. Mi sistema es bastante flexible por que aunque me diga algo, si allí hay un Soporte o Resistencia importante y estoy en el mercado, actuo en consecuencia en esos S/R.

En realidad el sistema es muy clasico: Stocaticos y ADX con la ayuda de medias moviles, RSI y por supuesto S&R. Gestión monetaria y gestion del riesgo con el stop.

No hay sobreoptimizacion por que los parametros son mas o menos clasicos y no los toco por que creo que están bien como están.

Gracias por tu opinión Richi, la verdad es que me anima a seguir adelante.

Un saludo.

Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Otro back testing

Mensaje por Ciclo »

Este es un back testing con 448 operaciones en ocho meses de operativa discreccional
Capital inicial 3000 €
Capital final 69.353 €
Es mejorable por que he cometido muchos errores
Yo me doy por satisfecho y creo que si opero así en la realidad este negocio me puede ayudar muchisimo a vivir mejor.
No se, si estoy equivocado, por favor, decidme por que y en que.
De todos modos seguiré haciendo testing y depues operar en demo en tiempo real

Muchas gracias.
Adjuntos
StrategyTester (eur usd enero-sep 2009).pdf
(147.67 KiB) Descargado 148 veces
Avatar de Usuario
Merowingio
Mensajes: 679
Registrado: 13 Jun 2006 16:48
Ubicación: Logroño

Mensaje por Merowingio »

Me parece que el MM lo has manejado de #@#!%# madre.

Me gustaria saber en que te basas para las entradas y salidas pero vaya si eres capaz de abstraerte cuando lo operes en real y lo continuas me parece un muy buen plan de trading.

Esta sistematizado ?

Un saludo
Sol - Soy Andúril, que fue Narsil, la espada de Elendil. Que los esclavos de Mordor huyan de mí - Luna.
Avatar de Usuario
Merowingio
Mensajes: 679
Registrado: 13 Jun 2006 16:48
Ubicación: Logroño

Mensaje por Merowingio »

Me gustaria saber pq partiendo de un stop de 1000 puntos bajas a 600 puntos en un momento determinado.
Sol - Soy Andúril, que fue Narsil, la espada de Elendil. Que los esclavos de Mordor huyan de mí - Luna.
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

Merowingio escribió:Me parece que el MM lo has manejado de #@#!%# madre.

Me gustaria saber en que te basas para las entradas y salidas pero vaya Nsi eres capaz de abstraerte cuando lo operes en real y lo continuas me parece un muy buen plan de trading.

Esta sistematizado ?

Un saludo
Es muy simple, entro con el stocastico de una hora pero me baso en la tendencia de 4h y 1D. Pero lo mas importane, creo es cortar las perdidas rapidamente y dejar correr las ganancias, y esto se puede mejorar, creo.

No está sistematizado por que es bastante subjetivo y hay muchisismas variables que no creo que se puedan contemplar. Lo bueno de que el robot sea yo es que aprendo cada vez mas.

El MM es muy simple y creo que es tan importante o mas que el sistema, por que en realidad el sistema no es tan bueno.Me gustaria hacer un indicador en el Metatrader para saber que volumen meter en cada operación.
Si hay algún programador que me pueda ayudar, lo agradeceré. Aprovecho este post para explicarlo.

Los parametros de entrada serían los siguientes:
extern double riesgo=3
extern int periodATR=7
extern string nota_SL="Si SL== 0 entonces SL= automatico"
extern int SL=0
extern string nota_k="Si SL== 0 entonces SL=k*ATR(n)"
extern double k=2 // k= factor multiplicador del ATR(n)
//Si se hace en en el grafico de precio, entonces habria que definir la esquina
exten esquina=1

----------
/Los calculo serian esto:
riesgo=riesgo/100
If (SL==0)SL=k*iATR(NULL, 0,periodATR,0)*point
double TickValue=MarketInfo(Simbol(), MODE_TICKVALUE)
double equity = ¿? // No se como se extrae
double Size= equity*riesgo/SL/TickValue
-----
Y un ejemplo del resultado prodría ser:
"Con un riesgo del 3% y SL=50,
el tamaño de la posicion debe ser igual a 0,6"
--------
Se puede hacer mas complejo y automatico si se quiere y tener la posibilidad de poner el riesgo tambien en automatico. La idea es averiguar el ratio de Kelly de las cinco o diez (a definir) ultima operaciones y utilizar una fracción ( a elegir como parametro de entrada) del resultado, usar por ejemplo un 15% ó un 20% del mismo.

A ver si alguien se anima. Yo no lo hago por que no se como escribir el resultado.

Saludos
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

Merowingio escribió:Me gustaria saber pq partiendo de un stop de 1000 puntos bajas a 600 puntos en un momento determinado.
Eso ha sido un poco subjetivo. En realidad el stop a 100 puntos solo está para desastres, siempre corto muchisimo antes las perdidas. En algún momento he visto que la volatilidad era baja y me ha dado por bajar la distancia del stop. No tiene mayor relevancia.

Un saludo cordial.
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Mensaje por nstrader »

Si ya casi lo tienes, sería mas o menos asi:

Código: Seleccionar todo

   equity = AccountEquity();
   
   string Com = StringConcatenate("Con un riesgo del ",riesgo,"% y SL=",SL,", el tamaño de la posicion debe ser igual a ",DoubleToStr(Size,2));
   
   Comment(Com);
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

nstrader escribió:Si ya casi lo tienes, sería mas o menos asi:

Código: Seleccionar todo

   equity = AccountEquity();
   
   string Com = StringConcatenate("Con un riesgo del ",riesgo,"% y SL=",SL,", el tamaño de la posicion debe ser igual a ",DoubleToStr(Size,2));
   
   Comment(Com);
Gracias nsTrader, en cuanto pueda me pongo con ello, pero si tengo dudas o no me funciona, te lo digo eh
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

Ya lo he hecho pero no me sale nada. ¿Puede ser que sea debido a que hoy es sábado y esta cerrado?

Este es el indicador, a ver si falta algo.

Saludos

--------

#property copyright "Copyright © 2009, MetaQuotes Software Corp. Ciclo"
#property link "http://www.metaquotes.net"

#property indicator_chart_window
//---- input parameters
extern int risk=3;
extern int periodATR=7;
extern string nota_dist_SL="Si dist_SL= 0 then dist_SL= automatico";
extern int dist_SL=0;
extern string nota_k="Si dist_SL= 0 then dist_SL=k*ATR(n)";
extern double k=2.0;
extern int ExtParam1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//int counted_bars=IndicatorCounted();
//----
risk=risk/100;
if (dist_SL==0)dist_SL=k*iATR(NULL, 0,periodATR,0)*Point;
double tickValue=MarketInfo (Symbol(), MODE_TICKVALUE);
double equity = AccountEquity();
double size= equity*risk/dist_SL/tickValue;

string Com = StringConcatenate("con riesgo= ",risk,"y distancia SL= ",dist_SL,
",potition size= ",DoubleToStr(size,3));

Comment(Com);
//----
return(0);
}
//+------------------------------------------------------------------+
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Mensaje por nstrader »

Tenias unos errores de programación

Código: Seleccionar todo

#property copyright "Copyright © 2009, MetaQuotes Software Corp. Ciclo" 
#property link "http://www.metaquotes.net" 

#property indicator_chart_window 
//---- input parameters 
extern double risk=3; 
extern int periodATR=7; 
extern string nota_dist_SL="Si dist_SL= 0 then dist_SL= automatico"; 
extern int dist_SL=0; 
extern string nota_k="Si dist_SL= 0 then dist_SL=k*ATR(n)"; 
extern double k=2.0; 
//extern int ExtParam1; 
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function | 
//+------------------------------------------------------------------+ 
int init() 
{ 
//---- indicators 

//---- 
return(0); 
} 
//+------------------------------------------------------------------+ 
//| Custom indicator deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
{ 
//---- 
Comment("");
//---- 
return(0); 
} 
//+------------------------------------------------------------------+ 
//| Custom indicator iteration function | 
//+------------------------------------------------------------------+ 
int start() 
{ 
//int counted_bars=IndicatorCounted(); 
//---- 
risk=risk/100; 
if (dist_SL==0)dist_SL=k*iATR(NULL, 0,periodATR,0)/Point; 
double tickValue=MarketInfo (Symbol(), MODE_TICKVALUE); 
double equity = AccountEquity();
double size= equity*risk/dist_SL/tickValue; 

string Com = StringConcatenate("con riesgo= ",risk," y distancia SL= ",dist_SL," ,potition size= ",DoubleToStr(size,3)); 

Comment(Com); 
//---- 
return(0); 
} 
//+------------------------------------------------------------------+
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

¡¡Magnifico nstrader!!

Muchas gracias. He retocado algunas cosas.
Dejo archivo adjunto por si a alguien le interesa.

-------------

He cambiado el archivo adjunto por que el programilla tenía un error. con equity=0, su valor siempre era el mismo.


Código: Seleccionar todo


//+------------------------------------------------------------------+
//|                                            PotitionSizeCalc.mq4 |
//|     Copyright © 2009, MetaQuotes Software Corp. Ciclo y NsTrader |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2009, MetaQuotes Software Corp. Ciclo y NsTrader" 
#property link "http://www.metaquotes.net" 

#property indicator_chart_window 
//---- input parameters 
extern double risk=3;
extern int TFrameATR=0; 
extern int periodATR=7;
extern string nota_dist_SL="Si dist_SL= 0 then dist_SL= automatico"; 
extern int dist_SL=0; 
extern string nota_k="Si dist_SL= 0 then dist_SL=k*ATR(n)"; 
extern double k=2.0;
extern double equity=0;
extern string nota_equity="Si equity==0 then equity=AccountEquity";
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function | 
//+------------------------------------------------------------------+ 
int init() 
{ 
//---- indicators 


//---- 
return(0); 
} 
//+------------------------------------------------------------------+ 
//| Custom indicator deinitialization function | 
//+------------------------------------------------------------------+ 
int deinit() 
{ 
//---- 
Comment(""); 
//---- 
return(0); 
} 
//+------------------------------------------------------------------+ 
//| Custom indicator iteration function | 
//+------------------------------------------------------------------+ 
int start() 
{ 
double riesgo=risk/100;
int dist=dist_SL;
if (dist_SL==0)dist=k*iATR(NULL,TFrameATR,periodATR,0)/Point; 
Comment("");
double tickValue=MarketInfo (Symbol(), MODE_TICKVALUE); 
double equityCta=equity;
if (equity==0)equityCta=AccountEquity(); 
double size= equityCta*riesgo/dist/tickValue; 

string Com = StringConcatenate("Con un riesgo del ",riesgo*100,"% sobre una equity de ",equityCta, " y distancia SL=",dist,", potition size= ",DoubleToStr(size,2)); 
Comment(Com); 

//---- 
return(0); 
} 
//+------------------------------------------------------------------+ 


[/quote]
Adjuntos
PotitionSizeCalc.mq4
(2.17 KiB) Descargado 55 veces
Última edición por Ciclo el 29 Oct 2009 05:41, editado 4 veces en total.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Sistemas de Trading”