¿Que tal sería este sistema?...
¿Que tal sería este sistema?...
¿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.
Agradezco vuestra opinión, consejos, críticas, puntos débiles, etc.
- Adjuntos
-
- Test Estrategia 2.xls
- (84 KiB) Descargado 236 veces
muy poco historico, ademas es baktesting y deberia ser walk forward
y muy pocas operaciones
estan incluidos los correspondientes slipages y comisiones?
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.
Es un testing pero la operaciones son discreccionales. Ya llevan el spread pero no los slipages. No se que es forward.polxx escribió:muy poco historico, ademas es baktesting y deberia ser walk forward
y muy pocas operaciones
estan incluidos los correspondientes slipages y comisiones?
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
- Richi Trader
- Mensajes: 101
- Registrado: 22 Jun 2008 12:42
- Ubicación: Madrid
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
Un saludo
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
Un saludo
Guardo en favoritos el vínculo para cuando haga sistemas automaticos.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
Un saludo
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.
Otro back testing
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.
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
- Merowingio
- Mensajes: 679
- Registrado: 13 Jun 2006 16:48
- Ubicación: Logroño
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
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.
- Merowingio
- Mensajes: 679
- Registrado: 13 Jun 2006 16:48
- Ubicación: Logroño
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.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
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
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.Merowingio escribió:Me gustaria saber pq partiendo de un stop de 1000 puntos bajas a 600 puntos en un momento determinado.
Un saludo cordial.
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 ehnstrader 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);
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);
}
//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+
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);
}
//+------------------------------------------------------------------+
¡¡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.
[/quote]
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);
}
//+------------------------------------------------------------------+
- 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!