Diablo - страница 21

 
JonKatana: Diablo v01.03.12

Неопытный трейдер проигрывает, потому что не фиксирует убыток. Опытный трейдер проигрывает, потому что не фиксирует прибыль. Поэтому в предыдущую схему Diablo для прямых ордеров (Buy Stop и Sell Stop) были добавлены уровни Take Profit в размере двух коридоров между ордерами:

Это всё, смерть Форексу. Однозначно.
 
JonKatana:

.. Diablo ...

Как корабль назовешь...)
 
Mathemat:
Это всё, смерть Форексу. Однозначно.
Это понятно... :-), но отдать должное Джону - его умение "держать удар" поистине не знает границ... Разве нет???
 
Я и не спорю. И давно уже перестал делать попытки убедить.
 
Mathemat:
Я и не спорю. И давно уже перестал делать попытки убедить.

Вооот! :-) Получается - желают быть обманутыми, пусть обманываются...

Пока не видно отчетов с (хотя бы микро) реала... сам не буду, даже не поставлю в очередь, рассматривать ЭТИ вещи к себе...

 
Это хороший советник?
 
vsa:
Это хороший советник?
офигенный! вон как корифеи нахваливают!
 
А кто корифеи? Если хвалят, значит хороший советник?
 
Это был сарказм. По поводу торговых систем, предлагаемых к рассмотрению Джоном Катаной, ходят неумолкаемые споры уже не первый год.
Моё личное мнение о них - слив неизбежен как рассвет солнца.
 

Diablo v08.03.12

Изменения:

+ теперь не нужно указывать первый уровень для установки - он берется автоматически на расстоянии половины коридора между ордерами;

+ в комментарий к ордерам заносится значение первого уровня для ориентира при добавлении или восстановлении ордеров.

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

Плюс пара вспомогательных скриптов для выставления ордеров в одну сторону (при добавлении или восстановлении ордеров):

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

Во вспомогательных скриптах:

Up - опорный уровень, от которого первоначально были выставлены ордера;

Start_Level - уровень, с которого начнется выставление ордеров.

Причина обращения: