![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
NoName |
![]()
Сообщение
#101
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Я, наверное, временно откажусь от версии с двумя ордерами. Это сильно усложняет логику работы советника, а версия с двумя лотами работает ничуть не хуже. Но в дальнейшем, возможно прийдётся прибегнуть и ко второму ордеру.
P.S. Спасибо за ссылку, сейчас почитаю. Только что отправил письмо Игорю Киму с вопросом о регистрации, а то за два месяца так и небыло подтверждения ![]() |
leonid553 |
![]()
Сообщение
#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 |
![]()
Сообщение
#103
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Цитата Мы, похоже сделали ошибку - ограничив число входящих изначально лотов! И вот почему: Реализуя отсечку на "первой ступени пирамиды", мы забыли - что оставшиеся сделки у нас - все строго профитные! Так зачем же ограничивать их число одним лотом (ордером)! ? Напротив , нужно их увеличивать! И вот тебе доказатильство! ВВел в код небольшое изменение и .... Тут нужно найти золотую середину! Увеличение числа лотов влечёт за собой дополнительные требования к размеру депозита. Думаю, что количество лотов нужно закладывать в логику ММ. А вот на счёт небольших изменений, мог бы и намекнуть что ты там дописал ![]() ![]() |
leonid553 |
![]()
Сообщение
#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 |
![]()
Сообщение
#105
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Цитата Мы, похоже сделали ошибку - ограничив число входящих изначально лотов! И вот почему: Реализуя отсечку на "первой ступени пирамиды", мы забыли - что оставшиеся сделки у нас - все строго профитные! .... Тут нужно найти золотую середину! Увеличение числа лотов влечёт за собой дополнительные требования к размеру депозита. Думаю, что количество лотов нужно закладывать в логику ММ. да- пожалуй ! Но я не зря писал: "Реализуя отсечку на "первой ступени пирамиды", мы забыли - что оставшиеся сделки у нас - все строго профитные!" Вот в чем дело! Не надо пока увеличивать лоты.! Помнишь, - чуть выше приводил пример по фунту со 166 "неиспользованными" сделками? Здесь нам уже не надо бояться убытков и лишней просадки!!!!!!!!!!! Они все уже профитные. Часть из них закрылась на уровне отсечки по подтянутому стоплосу (+80), и значит ранее имели профит +160 (- иначе бы стлосс) не подтянулся бы). Так что же нам мешает ещё раз организовать аналогичную отсечку на следующем уровне нашей пирамиды ? !!!!! Мы абсолютно ничем не рискуем, - а приобретаем чистый профит! Я не сразу это сообразил, - тут надо поломать голову, - а лучше взять карандашик и нарисовать эти уровни и отсечки , и движения цены. |
leonid553 |
![]()
Сообщение
#106
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Но здесь строго
![]() ![]() |
NoName |
![]()
Сообщение
#107
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Цитата ни все уже профитные. Часть из них закрылась на уровне отсечки по подтянутому стоплосу (+80), и значит ранее имели профит +160 (- иначе бы стлосс) не подтянулся бы). Вот тут или ты уже запутался или я чего-то не понимаю. Отсечка срабатыват в момент подтяжки стопа. Первой подтяжки (около 80п) ! Почему ранее они имели профит 160 ??? А на счёт 166 сделок - тоже понять не могу. Каким образом можно это использовать? И ещё раз обращаю внимание на существенный момент! Приведу пример для версии с двумя лотами: Когда осуществляется отсечка (это делает функция OrderClose, но количество лотов указывается в половину меньше чем имеет открытая позиция), в журнале это фиксируется как закрытие двух лотов и открытие одного. Тоесть когда происходит это открытие - у нас добавляется ещё одна сделка. И по этому расчёты (кол-во приб. - кол-во убыт. сделок ) в данном случае не верны! Для анализа скорее всего прийдётся сделать свои счётчики и скидывать их показания в файл. |
leonid553 |
![]()
Сообщение
#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 |
![]()
Сообщение
#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 |
![]()
Сообщение
#110
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Ну теперь всё ясно и понятно.
Завтра-послезавтра посмотрю как это можно реализовать. Думаю проблем быть не должно. Но счётчики всёравно нужно прикрутить! ![]() |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 13.5.2025, 19:56 |