Diablo - page 21

 
JonKatana: Diablo v01.03.12

The inexperienced trader loses because he does not lock in a loss. An experienced trader loses because he does not take profits. That is why in the previous Diablo's scheme for direct orders (Buy Stop and Sell Stop) we have added Take Profit levels in the size of two corridors between orders:

That's it, death to forex. Unequivocally.
 
JonKatana:

.. Diablo ...

Whatever you call the ship...)
 
Mathemat:
That's it, death to forex. Unequivocally.
That's understandable... :-), but I have to hand it to John - his ability to "hold the punch" truly knows no bounds... Doesn't he?
 
I'm not arguing. And I stopped trying to convince a long time ago.
 
Mathemat:
I'm not arguing. And I stopped trying to convince a long time ago.

There! :-) So they want to be deceived, let them be deceived...

Until I see reports from (at least micro) real life... won't myself, won't even put in a queue, consider THIS stuff to myself...

 
Is it a good advisor?
 
vsa:
Is it a good advisor?
It's awesome! Look how the coryphaei are praising it!
 
Who are the coryphaei? If they praise it, is it a good advisor?
 
That was sarcasm. There has been an unremitting debate about the trading systems proposed by John Katana for years.
My personal opinion of them is that they are as inevitable as the sunrise.
 

Diablo v08.03.12

Changes:

+ now no need to specify the first level to set - it is taken automatically at half the distance of the corridor between orders;

+ The comment to the orders contains the value of the first level as a reference point when adding or restoring orders.

// 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);}

Plus, there are a couple of auxiliary scripts for placing orders in one direction (when adding or restoring orders):

// 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);}

In auxiliary scripts:

Up - reference level from which orders were initially placed;

Start_Level - level at which orders are initially placed.