Скачать MetaTrader 5

Diablo

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нашел интересную программу? Опубликуй ее в CodeBase - миллионы трейдеров оценят это!
JonKatana
1520
JonKatana 2010.09.15 18:13 

Предлагаю универсальную схему выставления ордеров с использованием уровней 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.

михаил потапыч
19488
михаил потапыч 2010.09.15 18:28  
Jon Katana
14
Jon Katana 2010.09.15 18:39  
Здрасте
Андрей
1890
Андрей 2010.09.15 18:40  

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

JohKatana:
Здрасте
Бон жур
Freelance
1234
Freelance 2010.09.15 18:43  

Браво!

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

Виктор
Модератор
6559
Виктор 2010.09.15 20:38  
JohKatana:
Здрасте
И до свидания.
Светлана
3161
Светлана 2010.09.15 20:41  
КУ!!! :)
sever30
3343
sever30 2010.09.15 20:42  
granit77:
И до свидания.

а что так?
Виктор
Модератор
6559
Виктор 2010.09.15 20:50  
sever30:
а что так?
Светлана
3161
Светлана 2010.09.15 20:51  
Тот, что справа -- более привлекателен. :)
Виктор
Модератор
6559
Виктор 2010.09.15 20:52  
Swetten:
Тот, что справа -- более привлекателен. :)
Да и помоложе будет. Точнее, был...
12345678...28
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий