¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 trades

Foro para cuestiones generales sobre la plataforma MetaTrader 4.

¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 trades

Notapor trader201 » 23 Jun 2014, 23:02

Esto no tiene sentido.

Testeé un código que tiene como condición que no haya ninguna operación abierta (sin ninguna condición en cuanto a lo que esté haciendo el mercado). El SL y TP son ambos de solo 30 pips generalmente. Testeado en gráfica de 5 minutos (indiferente porque no tiene condiciones), y durante 2 meses.
Me sale que hizo solamente 2 operaciones :o
(en GBPUSD no hizo ninguna)

¿Qué está pasando?...

Nota: en el diario me sale error nro 4108 en orderclose, pero dado que ya en OrderSend está colocado un SL y TP, está muy fácil que cierre la operación, ya que ambos (SL y TP) tienen una distancia de solo 30 pips.

Aquí el código:

void OnTick()
{
//---
double ATR, SL, TP, tiempo, lote;
ATR= iATR(NULL, PERIOD_CURRENT, 14, 1);
SL= (ATR*1000000)*1;
TP= (ATR*1000000)*1;
tiempo=Hour()>2 && Hour()<18;
lote= 0.10;
//---
if (OrdersTotal()==0)
{
int ticket1=OrderSend(Symbol(),OP_BUY,lote, Ask, 10, Ask-SL*Point, Ask+TP*Point, NULL, 1, 0, clrNONE);
{
if (OrderSelect(1, SELECT_BY_TICKET, MODE_TRADES)!=TRUE)
{
Print(GetLastError());
}
}
}

if (OrdersTotal()>0 && tiempo!=true)
{
if (OrderClose(1, 0.1, Bid, 10, clrNONE)!=true)
{
Print(GetLastError());
}
}
}
trader201
 
Mensajes: 281
Registrado: 13 Feb 2010, 21:05
Karma: 0

Re: ¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 tr

Notapor FXWizard » 24 Jun 2014, 11:22

El problema creo que lo tienes en la forma de calcular SL y TP, ¿por qué no multiplicas por Point en lugar de 1000000? Tampoco le veo mucho sentido multiplicar por 1 en ese apartado.

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Re: ¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 tr

Notapor trader201 » 24 Jun 2014, 16:59

FXWizard escribió:El problema creo que lo tienes en la forma de calcular SL y TP, ¿por qué no multiplicas por Point en lugar de 1000000? Tampoco le veo mucho sentido multiplicar por 1 en ese apartado.

Saludos,
FXWizard


Saludos FXWizard. El motivo de la multiplicación es que, si cada Point vale 0,00001 y quiero un SL del ATR*3 (0,0010 x 3= 0,0030), que equivale a 30 pips, cuando multiplique el SL*Point me bajará ese valor a 0,00000003. Por eso agrego la multiplicación de 1.000.000 en el ATR, para aumentar el valor y luego, al multiplicar por Point, este vuelve a bajarlo. Pero me di cuenta de que no tenía que multiplicar por un millon sino por cien mil (porque estaba dándome un valor de 300 pips, motivo por el que estaba haciendo solo 2 operaiones en 2 meses).

Por cierto, FXWizard, ¿cuál es la idea de multiplicar por Point en los valores de SL y el TP en OrderSend?
trader201
 
Mensajes: 281
Registrado: 13 Feb 2010, 21:05
Karma: 0

Re: ¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 tr

Notapor FXWizard » 25 Jun 2014, 10:45

trader201 escribió:Saludos FXWizard. El motivo de la multiplicación es que, si cada Point vale 0,00001 y quiero un SL del ATR*3 (0,0010 x 3= 0,0030), que equivale a 30 pips, cuando multiplique el SL*Point me bajará ese valor a 0,00000003. Por eso agrego la multiplicación de 1.000.000 en el ATR, para aumentar el valor y luego, al multiplicar por Point, este vuelve a bajarlo. Pero me di cuenta de que no tenía que multiplicar por un millon sino por cien mil (porque estaba dándome un valor de 300 pips, motivo por el que estaba haciendo solo 2 operaiones en 2 meses).

Por cierto, FXWizard, ¿cuál es la idea de multiplicar por Point en los valores de SL y el TP en OrderSend?


En realidad ninguna, porque el ATR está ya en la escala del precio, por lo que no es necesario multiplicar por Point, disculpa el lapsus.

En todo caso no veo por qué tienes que multiplicar por 100.000, precisamente por lo que acabo de decir (el ATR ya está en la escala del precio).

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Re: ¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 tr

Notapor trader201 » 26 Jun 2014, 18:52

Saludos FXWizard.


Veo incongruencia en los siguientes datos: Haciendo testeos, para probar el sistema de MT4, testeé el siguiente EA, cuya única condición es que abra una nueva posición si no hay ninguna operación abierta (eso es todo). Le coloqué SL y TP de 30 pips cada uno. Realicé el testeo en el EUR/USD "durante 14 años", y en el informe aparece que solo realizó 79 operaciones (ó 5,6 operaciones por año). El ATR(14) de 1 día, tiene como sus valores mas bajos 35 pips, y entre 80 a 300 pips los mas altos. Entonces, ¿por qué hace solamente 6 operaciones por año?... Así que comencé a probar lo siguiente:

- Cuando coloqué SL y TP de "Ask-+0.0030" (sin la palabra Point), hizo solo 81 operaciones.
- Luego coloque "Ask-+300*Point", ya que un Point vale 0.00001 (Para saber esto lo que hice fue colocar en el código la función Alert, para que dijera Bid+Point, y cuando Bid 1,36133, Ask+Point= 1,36134). Pero hizo solamente 79 operaciones.
- Sin embargo, probé con SL y PT de "Ask-+30*Point", y realizó 2797 operaciones (como si cada point fuera 1 pip: 0.0001 y no 0.00001, por lo que entonces en la anterior estaria diciendo 300 pips, y por eso hizo solo 79. Pero cuando coloque para que me dijera en Alert el valor de Ponit dice 0.00001, y en la primera prueba, colocando directamente Ask+-0.0030 hizo solo 79 operaciones...).

¿Por que hizo solo 81 operaciones al colocar Ask-+0.0030? No hay término Point. Estoy colocando 30 pips...
???

Aquí el código:

if (OrdersTotal()==0)
{
if (OrderSend(NULL, OP_BUY, 0.1, Ask, 10, Ask-0.0030, Ask+0.0030, NULL, 0, 0, clrNONE)!=true)
{
Print("errorabriendo", GetLastError());
}
}
trader201
 
Mensajes: 281
Registrado: 13 Feb 2010, 21:05
Karma: 0

Re: ¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 tr

Notapor FXWizard » 27 Jun 2014, 10:47

Dos cuestiones al respecto:

- Lo primero de todo, veo que OrderSend lo metes dentro de un if, eso es un error, lo normal es poner If CondiciónCompra/Venta Then OrderSend, no sé por qué pones esa condición. O lo haces solo para ver si se ha abierto la orden? No acabo de entenderlo.

- En todo caso, siempre revisa el historial de órdenes del backtest, ahí tendrás la clave de qué está haciendo exactamente el EA y que TP/SL está poniendo a las órdenes. Corre un backtest corto para diferentes valores de TP y SL y mira a ver qué valores pone a las órdenes.

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Re: ¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 tr

Notapor trader201 » 27 Jun 2014, 16:41

FXWizard escribió:...veo que OrderSend lo metes dentro de un if, eso es un error, lo normal es poner If CondiciónCompra/Venta Then OrderSend, no sé por qué pones esa condición. O lo haces solo para ver si se ha abierto la orden? No acabo de entenderlo


Lo hago con intención de que me diga por qué no abrió un orden en caso de que haya algún error. Aunque supongo que puedo hacer esto?:

if (OrdersTotal()==0)
{
OrderSend(NULL, OP_BUY, 0.1, Ask, 10, Ask-0.0030, Ask+0.0030, NULL, 0, 0, clrNONE);
Print("errorabriendo", GetLastError());
{

FXWizard escribió:...revisa el historial de órdenes del backtest, ahí tendrás la clave de qué está haciendo exactamente el EA y que TP/SL está poniendo a las órdenes...


Cierto. No lo había pensado. Estaba confirmando solo con la función "Alert()".

Lo revisé y me pareció curioso que, efectivamente, Point tiene valor de 0,00001 (quinto decimal), ya que las ordenes en el diario (BackTesting) dicen tener stop loss de solo 3 pips cuando escribí SL de "Ask-30*Point". Lo que me lleva a una nueva duda, pues el MetaTrader me está aceptando SL de solo 3 pips, cuando mi broker no permite tener 3 pips de SL (cuando intento colocarlo manualmente, no me lo permite).

Lo otro es que, efectivamente, al colocar "Ask-0.0030" está colocando SL de 30 pips, (igual coloqué el mismo número para TP) y me hizo, en 14 años que seleccioné para el backtesting (2000 al 2014), solo 81 operaciones, y noté que, las operaciones que aparecen en el diario, todas tiene fecha solo del 2014. PEro seleccioné que haga el testeo desde el 2000. ¿Por qué no está haciendo testeo en estos otros años?...
trader201
 
Mensajes: 281
Registrado: 13 Feb 2010, 21:05
Karma: 0

Re: ¿Que está pasando? SL y TP de solo 30p, e hizo solo 3 tr

Notapor FXWizard » 27 Jun 2014, 18:26

trader201 escribió:Lo hago con intención de que me diga por qué no abrió un orden en caso de que haya algún error. Aunque supongo que puedo hacer esto?:

if (OrdersTotal()==0)
{
OrderSend(NULL, OP_BUY, 0.1, Ask, 10, Ask-0.0030, Ask+0.0030, NULL, 0, 0, clrNONE);
Print("errorabriendo", GetLastError());
{



Mucho mejor así ;)


trader201 escribió: Cierto. No lo había pensado. Estaba confirmando solo con la función "Alert()".

Lo revisé y me pareció curioso que, efectivamente, Point tiene valor de 0,00001 (quinto decimal), ya que las ordenes en el diario (BackTesting) dicen tener stop loss de solo 3 pips cuando escribí SL de "Ask-30*Point". Lo que me lleva a una nueva duda, pues el MetaTrader me está aceptando SL de solo 3 pips, cuando mi broker no permite tener 3 pips de SL (cuando intento colocarlo manualmente, no me lo permite).


Eso es raro, revísalo bien. Si quieres sube un pantallazo de las operaciones de cada backtest para comparar y ver si se me ocurre por qué puede ser eso.

trader201 escribió:Lo otro es que, efectivamente, al colocar "Ask-0.0030" está colocando SL de 30 pips, (igual coloqué el mismo número para TP) y me hizo, en 14 años que seleccioné para el backtesting (2000 al 2014), solo 81 operaciones, y noté que, las operaciones que aparecen en el diario, todas tiene fecha solo del 2014. PEro seleccioné que haga el testeo desde el 2000. ¿Por qué no está haciendo testeo en estos otros años?...


Me temo que te falta histórico, ¿has realizado una descarga completa desde el History Center o has importado algún histórico fiable?

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Siguiente

Volver a MetaTrader 4

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado