Diablo

 

Предлагаю универсальную схему выставления ордеров с использованием уровней Rabbit. Скрипт для автоматического выставления ордеров по этой схеме:

// Diablo v16.09.10
#property copyright "Jon Katana"
#property show_inputs
extern double Up=0;
extern double Down=0;
extern int Levels=0;
extern int Step=0;
extern double Vol=0;
extern int Spread=0;
int start()
{for(int i=0;i<Levels;i++)
{OrderSend(Symbol(),OP_BUYSTOP,Vol,Up+(2*i*Step+Spread)*Point,0,0,0,0,0);
OrderSend(Symbol(),OP_SELLSTOP,Vol,Down-2*i*Step*Point,0,0,0,0,0);
OrderSend(Symbol(),OP_SELLLIMIT,Vol,Up+(2*i+1)*Step*Point,0,0,0,0,0);
OrderSend(Symbol(),OP_BUYLIMIT,Vol,Down-((2*i+1)*Step-Spread)*Point,0,0,0,0,0);
OrderSend(Symbol(),OP_BUYSTOP,Vol,Up+(2*i*Step+Spread)*Point,0,Up+(2*i-1)*Step*Point,Up+(2*i+2)*Step*Point,0,0);
OrderSend(Symbol(),OP_SELLLIMIT,Vol,Up+(2*i+2)*Step*Point,0,Up+((2*i+3)*Step+Spread)*Point,Up+((2*i+1)*Step+Spread)*Point,0,0);
OrderSend(Symbol(),OP_SELLSTOP,Vol,Down-2*i*Step*Point,0,Down-((2*i-1)*Step-Spread)*Point,Down-((2*i+2)*Step+Spread)*Point,0,0);
OrderSend(Symbol(),OP_BUYLIMIT,Vol,Down-((2*i+2)*Step-Spread)*Point,0,Down-(2*i+3)*Step*Point,Down-(2*i+1)*Step*Point,0,0);}
OrderSend(Symbol(),OP_SELLLIMIT,Vol,Up,0,Up+(Step+Spread)*Point,Down-(Step-Spread)*Point,0,0);
OrderSend(Symbol(),OP_BUYLIMIT,Vol,Down+Spread*Point,0,Down-Step*Point,Up+Step*Point,0,0);
return(0);}
Переменные:

Up - значение ближайшего к цене верхнего уровня Rabbit, (например, 1.3040);

Down - значение ближайшего к цене нижнего уровня Rabbit (например, 1.3000);

Levels - количество уровней Rabbit, на которых будут выставлены ордера одного типа (например, 5 - будут задействованы по 10 уровней вверх и вниз от цены);

Step - шаг между уровнями Rabbit в пунктах (например, 40);

Vol - объем одного ордера (например, 0.01);

Spread - спред (например, 2).

Diablo при любых траекториях движения цены за день закрывается либо в прибыли (от одного до нескольких коридоров между уровнями Rabbit), либо в нуле (за вычетом спредов). Минусовое закрытие бывает только при сильных (более одного коридора) откатах от уровней прямых свободных ордеров (Buy Stop или Sell Stop), начиная с пятого уровня Rabbit, считая от цены. Сильный откат от пятого уровня приносит убыток в один коридор, от седьмого - два и так далее. Остальные траектории приносят прибыль (от одного до десятков коридоров) либо ноль. В Diablo часть ордеров закрывается по Take Profit либо Stop Loss, а часть не имеет стопов, образуя взаимные замки, которые нужно закрывать вручную либо по окончании дня, либо на следующее утро. Цена не должна выходить за пределы сетки ордеров, поэтому количество уровней нужно брать с запасом.

Схема состоит из четырех частей:

1) Начиная с ближайшего к цене уровня Rabbit ставятся прямые свободные ордера на уровни индикатора в таком порядке: Buy Stop - Sell Limit - Buy Stop - Sell Limit... и так далее. То же самое в другую сторону: Sell Stop - Buy Limit - Sell Stop - Buy Limit... У этих ордеров нет ни Stop Loss, ни Take Profit, их нужно закрывать вручную по окончании дня.

2) На те же позиции прямых свободных ордеров (Buy Stop и Sell Stop) ставятся ордера такого же типа, но с Take Profit равным 2хStep и Stop Loss = Step. То есть там же, где стоит свободный Buy Stop, ставится второй Buy Stop, но уже со стопами.

3) На все те же позиции прямых ордеров ставятся перевернутые ордера (Sell Limit и Buy Limit) с Take Profit и Stop Loss равными Step.

4) Только на первые ближайшие к цене уровни Rabbit ставятся перевернутые ордера Sell Limit и Buy Limit с Take Profit = 2xStep и Stop Loss = Step.

 
 
Здрасте
 

Это что... для симуляции нужно сделать виртуальные уровни и написать симуляцию со всеми возможными переходами? Т.е. оно может несколько и завораживает- но только потому что просчитать не удастся поведение такой системы.

JohKatana:
Здрасте
Бон жур
 

Браво!

Рады видеть и читать новую "заряженнную" тему!

 
JohKatana:
Здрасте
И до свидания.
 
КУ!!! :)
 
granit77:
И до свидания.

а что так?
 
sever30:
а что так?
 
Тот, что справа -- более привлекателен. :)
 
Swetten:
Тот, что справа -- более привлекателен. :)
Да и помоложе будет. Точнее, был...
Причина обращения: