Здравствуйте, гость ( Вход | Регистрация )

26 страниц V « < 9 10 11 12 13 > »   
Ответить в эту темуОткрыть новую тему
> Perceptron, Нейронная сеть
NoName
сообщение 28.4.2007, 20:03
Сообщение #101





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Я, наверное, временно откажусь от версии с двумя ордерами. Это сильно усложняет логику работы советника, а версия с двумя лотами работает ничуть не хуже. Но в дальнейшем, возможно прийдётся прибегнуть и ко второму ордеру.

P.S. Спасибо за ссылку, сейчас почитаю.
Только что отправил письмо Игорю Киму с вопросом о регистрации, а то за два месяца так и небыло подтверждения smile.gif)) Зато хороший способ для отсеивания халявщиков, зарегистрируется только тот, кому действительно необходимо!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 29.4.2007, 8:52
Сообщение #102





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Версия с лотами работает - ну как часики!
Спасибо тебе за отличную, профессионально сделанную работу!
Не нарадуюсь!
Однако....
Мы, похоже сделали ошибку - ограничив число входящих изначально лотов! И вот почему:
Реализуя отсечку на "первой ступени пирамиды", мы забыли - что оставшиеся сделки у нас - все строго профитные!
Так зачем же ограничивать их число одним лотом (ордером)! ?
Напротив , нужно их увеличивать!
И вот тебе доказатильство!
ВВел в код небольшое изменение и .... -
Символ GBPUSD (Great Britan vs US Dollar)
Период 1 Час (H1) 2004.06.16 - 2007.04.27
------------------------------------------------------------------------
Начальный депозит 10000
Чистая прибыль +20778
Общая прибыль 80468
Общий убыток -59690

Абсолютная просадка 905.00
Максимальная просадка 3655.24 (23.72%)
Относительная просадка 23.72% (3655.24)

Всего сделок 639
Короткие позиции (% выигравших) 325 (61.23%)
Длинные позиции (% выигравших) 314 (59.87%)
Прибыльные сделки (% от всех) 387 (60.56%)
Убыточные сделки (% от всех) 252 (39.44%)
Самая большая прибыльная сделка 663.04
убыточная сделка -255.60
------------------------------------------------------------------------
Просадка, увы, тоже растет, но прибыль растет при этом гораздо быстрее, - соотношение роста, - примерно (1 : 4)
Но с просадкой еще разберемся....
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 29.4.2007, 10:08
Сообщение #103





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Цитата
Мы, похоже сделали ошибку - ограничив число входящих изначально лотов! И вот почему:
Реализуя отсечку на "первой ступени пирамиды", мы забыли - что оставшиеся сделки у нас - все строго профитные!
Так зачем же ограничивать их число одним лотом (ордером)! ?
Напротив , нужно их увеличивать!
И вот тебе доказатильство!
ВВел в код небольшое изменение и ....


Тут нужно найти золотую середину! Увеличение числа лотов влечёт за собой дополнительные требования к размеру депозита. Думаю, что количество лотов нужно закладывать в логику ММ.

А вот на счёт небольших изменений, мог бы и намекнуть что ты там дописал wink.gifsmile.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 29.4.2007, 10:14
Сообщение #104





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



просто изменил число лотов - в начальном условии на открытие позиции с 2-х на 3 !


//---- Цикл открытия ордера --------------------------------------------------

Cnt=1;
while (Cnt <= 5)
{
if (OrderSend(Symbol(), OP_BUY, lots*3, Ask, 3, Bid - sl * Point, 0,
"AI", MagicNumber, 0, Blue) > 0) break;
else
{ Print ("Ошибка открытия Buy #", ErrorDescription( GetLastError() ), " попытка ", Cnt);

if (Cnt==5) return(0); //если за 5 попыток не закрыли - выходим
Cnt++;
Sleep(15000); // ждём 15 секунд
}
}
return (0);
}

else { // если перцептрон показывает вниз

Cnt=1;
while (Cnt <= 5)
{
if (OrderSend(Symbol(), OP_SELL, lots*3, Bid, 3, Ask + sl * Point, 0,
"AI", MagicNumber, 0, Red) > 0) break;
else
{ Print ("Ошибка открытия Sell #", ErrorDescription( GetLastError() ), " попытка ", Cnt);

if (Cnt==5) return(0); //если за 5 попыток не закрыли - выходим
Cnt++;
Sleep(15000); // ждём 15 секунд
}
}
return (0);
}

} //isNewBar


//----
return(0);
}

// ====================================================================================================
=
//| The PERCEPTRON - a perceiving and recognizing function |
//+-------------------------------------------------------

Далее думаю ввести lots*n
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 29.4.2007, 11:17
Сообщение #105





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Цитата(NoName @ 29.4.2007, 10:08) *

Цитата
Мы, похоже сделали ошибку - ограничив число входящих изначально лотов! И вот почему:
Реализуя отсечку на "первой ступени пирамиды", мы забыли - что оставшиеся сделки у нас - все строго профитные!
....


Тут нужно найти золотую середину! Увеличение числа лотов влечёт за собой дополнительные требования к размеру депозита. Думаю, что количество лотов нужно закладывать в логику ММ.



да- пожалуй !
Но я не зря писал:
"Реализуя отсечку на "первой ступени пирамиды", мы забыли - что оставшиеся сделки у нас - все строго профитные!"
Вот в чем дело!
Не надо пока увеличивать лоты.!
Помнишь, - чуть выше приводил пример по фунту со 166 "неиспользованными" сделками?
Здесь нам уже не надо бояться убытков и лишней просадки!!!!!!!!!!!
Они все уже профитные. Часть из них закрылась на уровне отсечки по подтянутому стоплосу (+80),
и значит ранее имели профит +160 (- иначе бы стлосс) не подтянулся бы).
Так что же нам мешает ещё раз организовать аналогичную отсечку на следующем уровне нашей пирамиды ? !!!!!
Мы абсолютно ничем не рискуем, - а приобретаем чистый профит!

Я не сразу это сообразил, - тут надо поломать голову, - а лучше взять карандашик и нарисовать эти уровни и отсечки , и движения цены.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 29.4.2007, 11:27
Сообщение #106





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Но здесь строго mad.gif придется использовать ту твою версию, - где вместо переворота исрользуется закрытие и вновь открытие позиции!
rolleyes.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 29.4.2007, 11:45
Сообщение #107





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Цитата
ни все уже профитные. Часть из них закрылась на уровне отсечки по подтянутому стоплосу (+80),
и значит ранее имели профит +160 (- иначе бы стлосс) не подтянулся бы).


Вот тут или ты уже запутался или я чего-то не понимаю.
Отсечка срабатыват в момент подтяжки стопа. Первой подтяжки (около 80п) ! Почему ранее они имели профит 160 ??? А на счёт 166 сделок - тоже понять не могу. Каким образом можно это использовать?

И ещё раз обращаю внимание на существенный момент! Приведу пример для версии с двумя лотами: Когда осуществляется отсечка (это делает функция OrderClose, но количество лотов указывается в половину меньше чем имеет открытая позиция), в журнале это фиксируется как закрытие двух лотов и открытие одного. Тоесть когда происходит это открытие - у нас добавляется ещё одна сделка. И по этому расчёты (кол-во приб. - кол-во убыт. сделок ) в данном случае не верны! Для анализа скорее всего прийдётся сделать свои счётчики и скидывать их показания в файл.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 29.4.2007, 12:43
Сообщение #108





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



ДА действительно!
Поторопился я немного. Третий лот вводить придется.

"Отсечка срабатыват в момент подтяжки стопа. Первой подтяжки (около 80п) ! Почему ранее они имели профит 160 ??? А на счёт 166 сделок - тоже понять не могу. Каким образом можно это использовать?"

Я сам начинаю рассуждать и при этом часто теряю нить. Нужно сосредоточится!

166 СДЕЛОК В ПЕРВОЙ ВЕРСИИ закрылись с профитом +80.
Часть из них закрылась переворотом, дойдя до уровня
if(Bid > (OrderStopLoss() + (sl * 2 + spread) * Point)),
т.к. перцептрон изменил значение с "+"на "-".
Но все др. сделки из этих 166-ти уже имея профит +80. пошли дальше (перцептрон не изменил значения) .
При этом стоплосс у нас передвинулся "на мизер"!
Далее цена прошла ещё +80 (профит стал 80+80=160) - , но перцептрон не изменил значения !
(те сделки ,где перц. изменился я учел - их 57 и профит у них >=160).
Стоп лосс в этот момент полнялся уже на след. ступень - см. рис.
Значит, имея профит уже 80+80=160 эти сделки пошли дальше, но тут цена повернулась против нас и вернулась к уровню последнего стоплосса и закрылись +80! - см. син. стрелку на рис.
Вот эти-то сделки из 166-и и надо нам отсечь! - отсечь с профитом = +160 !!!!!!!!!!!
Сколько их?
Вопрос интересный! А ведь их немало! Пусть даже их всего лишь половина, или даже треть от 166-и. Но их профит= +160 !!!
А дополнительная просадка при этом останется = -1200
Можно сделать счетчик и их подсчитать, но проЩе вместо счетчика предусмотреть в коде советника третий лот (с отсечкой) и выяснить этот вопрос практически!


Эскизы прикрепленных изображений
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 29.4.2007, 14:40
Сообщение #109





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Как это реализовать программно?.
И насколько это реализуемо?
Надо подумать.
Если мы введем в код - lots*m
Т.Е. сразу сделаем версию для "общего" случая.
Где отсечка будет реализовываться на всех уровнях, причем число уровней, видимо, будет равно (m-1) лотов в ордере.
Практически - не более 4-6.
Для пипсовочных версии - неплохое решение!
Для наших же размеров стопов реально будет достаточно 3-4-х.

-----------------------------------------------------------------
//------ ОТКРЫТЫХ ОРДЕРОВ НЕТ ---------
if (Signal > 0) { // если перцептрон показывает вверх

//---- Цикл открытия ордера --------------------------------------------------

Cnt=1;
while (Cnt <= 5)
{
if (OrderSend(Symbol(), OP_BUY, lots*m, Ask, 3, Bid - sl * Point, 0,
"ST", MagicNumber, 0, Blue) > 0) break;

---------------------------------------------------------------------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 29.4.2007, 16:21
Сообщение #110





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Ну теперь всё ясно и понятно.
Завтра-послезавтра посмотрю как это можно реализовать. Думаю проблем быть не должно. Но счётчики всёравно нужно прикрутить! smile.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

26 страниц V « < 9 10 11 12 13 > » 
Ответить в эту темуОткрыть новую тему

 



- Текстовая версия Сейчас: 13.5.2025, 19:56