НЕСТАНДАРТНАЯ ТАКТИКА

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
Рекомендуем также посетить раздел "Торговые системы" и подобрать себе торговую систему для успешного трейдинга.

Предположим, что мы имеем некую автоматическую торговую систему. Профитную.
Пусть на входе этой системы имеются, для примера, — три параметра — A, B, C.
Пусть входы у нас по этой системе будут практически случайными!
Мы подбираем параметры (А-В-С), чтобы на выходе системы получить максимальный профит за период, например, 1 год т.е. оптимизируем.
Система работает без стопов — переворотами.
(Практически получилось, что такая система дает за год не менее +3000 пипсов при исходном капитале 1000$, и работе 0.1-лотом)
Далее, — для уменьшения риска и уменьшения просадки сделает так:
Включаем эту систему в реверсном режиме, — т.е. там, где ранее мы продавали, теперь будем покупать, а где покупали, теперь будем продавать!
Но перед этим, — сначала подберем опять (т.е. оптимизируем систему) три параметра А-В-С так, чтобы уже в реверсном режиме выход был не менее профитным, чем в изначальном режиме!
Что у нас получается?
При одновременном включении обоих систем (прямой и реверсной), мы будем иметь суммарный профит +6000 . При этом, — одновременно системы осмысленно (не в "тупую" !!!) работают во встречных режимах, уменьшая текущую относительную просадку!
Почему осмысленно, а не в тупую? Да потому, что реверсная система за счет иных параметров А-В-С будет работать с некоторым сдвигом относительно прямой системы! Уменьшая суммарные убытки. А прибыль поступательно, при этом, будет расти!
А значит, — мы смело можем подключить блок MONEY MANAGEMENT — и "возрадоваться над оным" !
вот такая идея …
Если тема интересна присутствующим, то можно попробовать воплотить идею в конкретике.
Свести потом результаты в Экселл и обьединить две версии в одном советнике.

Что же касается рисков, то Именно в этом и предполагаю конечный смысл идеи. Не столько увеличить прибыль, — сколько уменьшить риски.
Хотя прибыль при этом (как оказалось ), — также, поступательно растет!
Вот на скорую руку, -пока примитивно реализовал идею. Использавал аналог советника кот, не так давно выкладывал в ветке "ПЕРЕКЛИЧКА…"

Оптимизировал прямую и реверсную версию на 12-месячной истории GBPUSD, H1
С марта 2006 по март 2007. (Любопытно, — что реверсная версия при оптимизаци дала больший профит, чем версия прямая!)
Потом прогнал обе версии вне выборки, — за апрель/май/июнь 2007г.
Результаты ниже, — на графиках баланса :

Продолжаю развивать идею. В качестве "заготовки" для реализации использован нейро/советник Artificial Intelligence (Искуственный Интеллект) Ю.Решетова.
С некоторыми изменениями и дополнениями. В частности, — предусмотрен вызов иного базового индикатора для работы Перцептрона. А также добавлены дополнительные условия по открытию и сопровождению позиций.
GBPUSD, H1, 2.5-летняя история — январь 2005/май 2007г.
В прямой версии за этот период наблюдалось 250 сделок. В реверсной версии — 360.
За счет того, что уровень стоплосса оказался разным (при оптимизации).
Чистая Прибыль, — по каждой версии, — примерно +10000 пипсов (работа 0.1 лотом — без ММ).
Отношение прибыльных сделок к убыточным , — примерно 3:2 в обоих версиях.
Графики баланса по истории выглядят — см. рис.!
Легко заметить, что в значительном большинстве случаев убыточные участки прямой версии компенсируются прибыльными участками версии реверсной, и наоборот.
Более того, — там где на одном графике наблюдается "флет", — то на другом, как правило, идет подьем!
В итоге получаем максимальную прибыль при минимальном риске!
Конечно всё это пока, скорее, — первые, эмоциональные впечатления!
Свел данные сделок в Экселл, но из-за расхождения дат сделок и отсутствия навыка пока не удается обработать материалы..

Следующий шаг, — для моральной и эмоциональной поддержки, — установка блока MONEY MANAGEMENT.
Вставил библиотеку расчета лотов по версии Игоря Кима.
В оба советника.
Минимальная просадка получается при использовании Фр/пропорционального метода (Р.Джонс, "Сделай миллионы, играя числами").
Чистая Прибыль также минимальная — " всего" +80000 и +200000 соответственно!

Реверсная версия:
————————————————————————-
Начальный депозит 10000.00
Чистая прибыль +79864.93
Матожидание выигрыша 150.97
Максимальная просадка 16969.67 (23.98%)
Относительная просадка 33.23% (3511.48)
—————————————————————————

Прямая версия:
—————————————————————————-
Начальный депозит 10000.00
Чистая прибыль +205035.51
Матожидание выигрыша 779.60
Абсолютная просадка 308.00
Максимальная просадка 25801.44 (12.27%)
Относительная просадка 18.14% (6971.07)

Всего сделок 263
Короткие позиции (% выигравших) 130 (60.00%)
Длинные позиции (% выигравших) 133 (62.41%)
Прибыльные сделки (% от всех) 161 (61.22%)
Убыточные сделки (% от всех) 102 (38.78%)
Самая большая прибыльная сделка 13354.20
убыточная сделка -3240.46
Средняя прибыльная сделка 2467.08
убыточная сделка -1883.96
Максимальное количество непрерывных выигрышей (прибыль) 9 (33415.82)
непрерывных проигрышей (убыток) 5 (-6143.22)
———————————————————————
Ниже — графики балАнса при вкл. ММ
Странно, что в инверсном режиме число сделок почему-то возрастает с з60 до 550.
Так вроде не должно быть!
Ну никак не пойму, в чем дело!
На этих графиках ещё лучше видно как прибыль одного режима компенсирует убытки другого.
При поступательном росте общей прибыли!

Mentalityman !
Cпециально для вас (и для всех др. конечно…) выкладываю версию советника с вызовом инд. Стохастик.
А в закачке — результат теста график и параметры по полученному результату.

Код:
/+——————————————————————+
//| N0_NO_N0.mq4 |
//| Copyright © 2007, Tradersforum. |
//| Leonid553 & NoName(-and) |
//+——————————————————————+

//—- input parameters
extern int Stochastic_period=7;
extern int slowing=3;
extern int x1 = 88;
extern int x2 = 123;
extern int x3 = 22;
extern int x4 = 107;
// StopLoss level
extern int sl = 79;
extern int lots = 0.1;
extern int MagicNumber = 888;
static int prevtime = 0;
static int spread = 3;
//—координаты точек————
extern int P_1=0;
extern int P_2=7;
extern int P_3=14;
extern int P_4=21;

//+——————————————————————+
//| expert initialization function |
//+——————————————————————+
int init()
{
//—-
return(0);
}
//+——————————————————————+
//| expert deinitialization function |
//+——————————————————————+
int deinit()
{
//—-
return(0);
}
//+——————————————————————+
//| expert start function |
//+——————————————————————+
int start()
{
if(Time[0] == prevtime)
return(0);
prevtime = Time[0];
//—-
if(IsTradeAllowed())
{
spread = MarketInfo(Symbol(), MODE_SPREAD);
}
else
{
prevtime = Time[1];
return(0);
}
int ticket = -1;
// check for opened position
int total = OrdersTotal();
for(int i = 0; i < total; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
// check for symbol & magic number
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
int prevticket = OrderTicket();
// long position is opened
if(OrderType() == OP_BUY)
{
// check profit
if(Bid > (OrderStopLoss() + (sl * 2 + spread) * Point))
{
if(perceptron() < 0)
{
// reverse
ticket = OrderSend(Symbol(), OP_SELL, lots * 2, Bid, 3,
Ask + sl * Point, 0, "AI", MagicNumber,
0, Red);
Sleep(30000);
if(ticket < 0)
{
prevtime = Time[1];
}
else
{
OrderCloseBy(ticket, prevticket, Blue);
}
}
else
{
// trailing stop
if(!OrderModify(OrderTicket(), OrderOpenPrice(),
Bid — sl * Point, 0, 0, Blue))
{
Sleep(30000);
prevtime = Time[1];
}
}
}
// short position is opened
}
else
{
// check profit
if(Ask < (OrderStopLoss() — (sl * 2 + spread) * Point))
{
if(perceptron() > 0)
{
// reverse
ticket = OrderSend(Symbol(), OP_BUY, lots * 2, Ask, 3,
Bid — sl * Point, 0, "AI", MagicNumber,
0, Blue);
Sleep(30000);
if(ticket < 0)
{
prevtime = Time[1];
}
else
{
OrderCloseBy(ticket, prevticket, Blue);
}
}
else
{
// trailing stop
if(!OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + sl * Point, 0, 0, Blue))
{
Sleep(30000);
prevtime = Time[1];
}
}
}
}
// exit
return(0);
}
}
// check for long or short position possibility
if(perceptron() > 0)
{
//long
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, 3, Bid — sl * Point, 0,
"AI", MagicNumber, 0, Blue);
if(ticket < 0)
{
Sleep(30000);
prevtime = Time[1];
}
}
else
{
// short
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, 3, Ask + sl * Point, 0,
"AI", MagicNumber, 0, Red);
if(ticket < 0)
{
Sleep(30000);
prevtime = Time[1];
}
}
//— exit
return(0);
}
//+——————————————————————+
//| The PERCEPRRON — a perceiving and recognizing function |
//+——————————————————————+
double perceptron()
{
double w1 = x1 — 100.0;
double w2 = x2 — 100.0;
double w3 = x3 — 100.0;
double w4 = x4 — 100.0;
double a1 = iStochastic(NULL,0, Stochastic_period, 3, slowing, MODE_SMA, 0, MODE_MAIN, P_1)- 50;
double a2 = iStochastic(NULL,0, Stochastic_period, 3, slowing, MODE_SMA, 0, MODE_MAIN, P_2)- 50;
double a3 = iStochastic(NULL,0, Stochastic_period, 3, slowing, MODE_SMA, 0, MODE_MAIN, P_3) — 50;
double a4 = iStochastic(NULL,0, Stochastic_period, 3, slowing, MODE_SMA, 0, MODE_MAIN, P_4) — 50;
return (w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
}
//+——————————————————-

http://traderbooks.ru/system.php?id=191

Поделиться в социальных сетях

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>