Diablo - página 21

 
JonKatana: Diablo v01.03.12

El operador inexperto pierde porque no bloquea la pérdida. Un operador experimentado pierde porque no toma ganancias. Por eso en el esquema anterior de Diablo para las órdenes directas (Buy Stop y Sell Stop) hemos añadido niveles de Take Profit del tamaño de dos pasillos entre las órdenes:

Eso es, muerte al forex. Sin lugar a dudas.
 
JonKatana:

.. Diablo ...

Como sea que se llame el barco...)
 
Mathemat:
Eso es, muerte al forex. Sin lugar a dudas.
Eso es comprensible... :-), pero tengo que reconocer que la habilidad de John para "aguantar el golpe" no tiene límites... ¿No es así?
 
No estoy discutiendo. Y hace tiempo que dejé de intentar convencer.
 
Mathemat:
No estoy discutiendo. Y hace tiempo que dejé de intentar convencer.

¡Allí! :-) Si quieren engañarse, que se engañen...

Hasta que no vea informes de la vida (al menos micro) real... no lo haré yo mismo, ni siquiera lo pondré en la cola, considero que esto es para mí...

 
¿Es un buen consejero?
 
vsa:
¿Es un buen consejero?
¡Es impresionante! ¡Mira cómo lo alaban los corifeos!
 
¿Quiénes son los corifeos? Si lo elogian, ¿es un buen consejero?
 
Eso fue un sarcasmo. Desde hace años existe un debate incesante sobre los sistemas de comercio propuestos por John Katana.
Mi opinión personal sobre ellos es que son tan inevitables como el amanecer.
 

Diablo v08.03.12

Cambios:

+ ahora no es necesario especificar el primer nivel a establecer - se toma automáticamente a la mitad de la distancia del corredor entre las órdenes;

+ El valor del primer nivel como punto de referencia a la hora de añadir o restablecer órdenes se coloca en el comentario de las mismas.

// Diablo v08.03.12
#property copyright "Jon Katana"
#property show_inputs
extern int Step=0,Spread=0,Levels=0;
extern double Vol=0;
int start()
{double Up=Bid+0.5*Step*Point;
string C=DoubleToStr(Up,5);
for(int i=0;i<(Levels);i++)
{OrderSend(Symbol(),OP_BUYSTOP,Vol,Up+(i*Step+Spread)*Point,0,Up+(i-1)*Step*Point,Up+(i+2)*Step*Point,C);
OrderSend(Symbol(),OP_SELLSTOP,Vol,Up-(i+1)*Step*Point,0,Up-(i*Step-Spread)*Point,Up-((i+3)*Step-Spread)*Point,C);
OrderSend(Symbol(),OP_SELLLIMIT,Vol,Up+i*Step*Point,0,Up+((i+1)*Step+Spread)*Point,Up-((i+1)*Step-Spread)*Point,C);
OrderSend(Symbol(),OP_BUYLIMIT,Vol,Up-((i+1)*Step-Spread)*Point,0,Up-(i+2)*Step*Point,Up+i*Step*Point,C);}
return(0);}

Además, hay un par de scripts auxiliares para colocar órdenes en una dirección (al añadir o restaurar órdenes):

// Diablo UP v08.03.12
#property copyright "Jon Katana"
#property show_inputs
extern int Step=0,Spread=0,Levels=0,Start_Level=0;
extern double Up=0,Vol=0;
int start()
{string C=DoubleToStr(Up,5);
for(int i=Start_Level;i<(Levels);i++)
{OrderSend(Symbol(),OP_BUYSTOP,Vol,Up+(i*Step+Spread)*Point,0,Up+(i-1)*Step*Point,Up+(i+2)*Step*Point,C);
OrderSend(Symbol(),OP_SELLLIMIT,Vol,Up+i*Step*Point,0,Up+((i+1)*Step+Spread)*Point,Up-((i+1)*Step-Spread)*Point,C);}
return(0);}
// Diablo DN v08.03.12
#property copyright "Jon Katana"
#property show_inputs
extern int Step=0,Spread=0,Levels=0,Start_Level=0;
extern double Up=0,Vol=0;
int start()
{string C=DoubleToStr(Up,5);
for(int i=Start_Level;i<(Levels);i++)
{OrderSend(Symbol(),OP_SELLSTOP,Vol,Up-(i+1)*Step*Point,0,Up-(i*Step-Spread)*Point,Up-((i+3)*Step-Spread)*Point,C);
OrderSend(Symbol(),OP_BUYLIMIT,Vol,Up-((i+1)*Step-Spread)*Point,0,Up-(i+2)*Step*Point,Up+i*Step*Point,C);}
return(0);}

En los guiones auxiliares:

Arriba - nivel de referencia a partir del cual se hicieron los pedidos inicialmente;

Start_Level - nivel en el que se colocan inicialmente las órdenes.