Индикаторы: Rabbit - страница 17

 

Поправка в скрипте: было не туда смещение на спред в ордерах Sell Limit:

// Diablo v13.02.12
#property copyright "Jon Katana"
#property show_inputs
extern int Step=0,Spread=0,Levels=0;
extern double Up=0,Vol=0;
int start()
{for(int i=0;i<(Levels);i++)
{OrderSend(Symbol(),OP_BUYSTOP,Vol,Up+(i*Step+Spread)*Point,0,Up+(i-1)*Step*Point,0,0,0);
OrderSend(Symbol(),OP_SELLSTOP,Vol,Up-(i+1)*Step*Point,0,Up-(i*Step-Spread)*Point,0,0,0);
OrderSend(Symbol(),OP_SELLLIMIT,Vol,Up+i*Step*Point,0,Up+((i+1)*Step+Spread)*Point,Up-(Step*(i+1)-Spread)*Point,0,0);
OrderSend(Symbol(),OP_BUYLIMIT,Vol,Up-((i+1)*Step-Spread)*Point,0,Up-(i+2)*Step*Point,Up+i*Step*Point,0,0);}
return(0);}
 

Diablo v01.03.12

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


// Diablo v01.03.12
#property copyright "Jon Katana"
#property show_inputs
extern int Step=0,Spread=0,Levels=0;
extern double Up=0,Vol=0;
int start()
{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,0,0);
OrderSend(Symbol(),OP_SELLSTOP,Vol,Up-(i+1)*Step*Point,0,Up-(i*Step-Spread)*Point,Up-((i+3)*Step-Spread)*Point,0,0);
OrderSend(Symbol(),OP_SELLLIMIT,Vol,Up+i*Step*Point,0,Up+((i+1)*Step+Spread)*Point,Up-((i+1)*Step-Spread)*Point,0,0);
OrderSend(Symbol(),OP_BUYLIMIT,Vol,Up-((i+1)*Step-Spread)*Point,0,Up-(i+2)*Step*Point,Up+i*Step*Point,0,0);}
return(0);}
 

Diablo v08.03.12

Изменения:

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

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

// 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 - уровень, с которого начнется выставление ордеров.

 
JonKatana:

Diablo v01.03.12

Неопытный трейдер проигрывает, потому что не фиксирует убыток. Опытный трейдер проигрывает, потому что не фиксирует прибыль.

Поверьте опытный трейдер не проигрывает - иначе он не опытный.
 

Три вопроса:

1. В новой версии скрипта, где берется двойной профит на прямые ордеры - диабло остается таким же не убиваемым?

2. Как лучше, выставлять заново на тех же местах отработанные ордеры (которые закрылись по профиту или по лосю) или нет?

3. Если выставлять, то какие лучше: которые закрылись по ТП или СЛ, или и те и другие?

Спасибо!

 
trotiloff:

Три вопроса:

1. В новой версии скрипта, где берется двойной профит на прямые ордеры - диабло остается таким же не убиваемым?

2. Как лучше, выставлять заново на тех же местах отработанные ордеры (которые закрылись по профиту или по лосю) или нет?

3. Если выставлять, то какие лучше: которые закрылись по ТП или СЛ, или и те и другие?

Спасибо!

1. Да. Можно уменьшить цель для Take Profit до полуторной ширины коридора - тогда шанс закрытия в прибыли сразу возрастет.

2, 3. Верхняя и нижняя (относительно цены на момент выставления) сетки ордеров независимы друг от друга. Восстанавливать ордера одной стороны можно только после полного закрытия всех открытых ордеров этой стороны. Восстанавливать нужно все ордера, независимо от того, как они закрылись.

 
JonKatana я тебя уважаю,респект и уважуха как говориться
 
куды девалси автор со своими мильонами? уже в вегасе?
 
JonKatana:

Diablo v09.02.12 (Immortal Version)


Система полностью неубиваемая. Предоставленная сама себе, в итоге всегда закрывается с прибылью или в нуле.


да, отлично сливает депозит.