![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
leonid553 |
![]()
Сообщение
#41
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Сделал.
extern int ExpertID =1111; А как быть с : extern int MagicNumber = 838; ? Теперь как-то он стал работать непонятно! хотя и чуть лучше - профитнее. Но там же в коде есть: else { // trailing stop if(!OrderModify(OrderTicket(), OrderOpenPrice(), Bid - sl * Point, 0, 0, Blue)) { Sleep(30000); prevtime = Time[1]; ------------------------------------------------------------------------------------------- Это наверное как-то влияет? |
NoName |
![]()
Сообщение
#42
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Конечно влияет!
Пришли советник, попробую поправить. |
leonid553 |
![]()
Сообщение
#43
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
вот он:
Прикрепленные файлы ![]() |
leonid553 |
![]()
Сообщение
#44
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Поработал пока с версией советника с инд. Фишера .(закачка в пост 30)
По евроиене, h1 (любимая моя пара!) Результат с сентября 2005 г. ---Символ EURJPY (Euro vs Japanese Yen) Период 1 Час (H1) 2005.09.12 09:00 - 2007.03.28 16:59 Модель - По ценам открытия (быстрый метод на сформировавшихся барах) Параметры RangePeriods=11; PriceSmoothing=0.4; IndexSmoothing=0.5; x1=225; x2=54; x3=9; x4=63; sl=57; lots=0.1; MagicNumber=833; P_1=0; P_2=7; P_3=14; P_4=21; Баров в истории 9492 Смоделировано тиков 18873 Качество моделирования n/a Начальный депозит 10000.00 Чистая прибыль 4224.36 Общая прибыль 8670.18 Общий убыток -4445.81 Прибыльность 1.95 Матожидание выигрыша 15.88 -------------------------------------------------------------- Абсолютная просадка 27.77 Максимальная просадка 308.67 (2.23%) Относительная просадка 2.33% (262.68) --------------------------------------------------------------- Всего сделок 266 Короткие позиции (% выигравших) 145 (57.24%) Длинные позиции (% выигравших) 121 (76.03%) Прибыльные сделки (% от всех) 175 (65.79%) Убыточные сделки (% от всех) 91 (34.21%) Самая большая прибыльная сделка 371.47 убыточная сделка -58.33 Средняя прибыльная сделка 49.54 убыточная сделка -48.86 Максимальное количество непрерывных выигрышей (прибыль) 13 (461.68) непрерывных проигрышей (убыток) 6 (-308.67) Средний непрерывный выигрыш 3 непрерывный проигрыш 2 ------------------------------------------------------- Андрей! Обрати внимание на просадки - оч. приличный результат! А когда будет сделан "разумный" трал, то результаты будут ещё лучше! Эскизы прикрепленных изображений Прикрепленные файлы ![]() |
NoName |
![]()
Сообщение
#45
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Да, действительно, просадка около 2% - отличный результат
![]() Вот вариант советника с "разумным" тралом: ![]() |
leonid553 |
![]()
Сообщение
#46
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Благодарю! Оч. кстати!
Решил выяснить - почему в строчках кода double w1 = x1 - 100.0; заявлено именно (х-100) Вспомнил, что Решетов рекомендовал применять весовые коэффициэнты не более 200. Вопрос сразу прояснился! Получается, что при такой записи - весовые коэф-ты у нас получаются двухполярными! Также как и шкала индикатора! В результате имеем своего рода расширение "динамичечкого диапазона" значений индикатора. Положительные значения при этом увеличиваются при х>100, а отрицательные также по абсолютной величине увеличиваются при х.>100. Т.е. уменьшаются. При х<100 - динамический диапазон, напротив, сужается! Тут надо ещё посоображать... |
leonid553 |
![]()
Сообщение
#47
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Руки до всего не доходят! - времени не хватает!
Ну ладно... Оптимизировал по всей доступной истории (с 2005г) EURJPY, H1 по трем версиям - Стохастик, WPR, Фишер. Репрезентативная выборка показала устойчивый профит за янв-февр.-матр - в среднем 200-500 пипсов ежемесячно. Периодичность - примерно одна сделка в день. Пришла пора попробывать на систему на "многослойке"! По фунту и по евроиене все версии уже "приплясывают" в ожидании! Поэтому предлагаю сделать значения Х1-Х2-Х3-Х4 - фиксированные для каждого индикатора, т.е.примерно так: double perceptron_1() { double w1 = 225 - 100.0; double w2 = 54 - 100.0; double w3 = 9 - 100.0; double w4 = 63 - 100.0; ....... Т.к. данная версия нужна будет только для конкретной торговли, а не для оптимизации. И так по каждому индикатору - double perceptron_2() ... double perceptron_3() ... double perceptron_4() .... |
leonid553 |
![]()
Сообщение
#48
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
Вроде так(значения х1-х4 еще не подставил):
---------------------------------------------------------------------------------------------- The PERCEPRRON - a perceiving and recognizing function | //+------------------------------------------------------------------+ double perceptron() { //---------------------------------------------------------------------- double f1 = y1 - 100.0; double f2 = y2 - 100.0; double f3 = y3 - 100.0; double f4 = y4 - 100.0; return (p_1 * f1 + p_2 * f2 + p_3 * f3 + p_4 * f4); } // --------------------------------------------------------------------------- double p_1() { double w1 = x1 - 100.0; double w2 = x2 - 100.0; double w3 = x3 - 100.0; double w4 = x4 - 100.0; double a1 = iStochastic(Symbol(), 0,Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, P_1); double a2 = iStochastic(Symbol(), 0,Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, P_2); double a3 = iStochastic(Symbol(), 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN,P_3); double a4 = iStochastic(Symbol(), 0,Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, P_4); return (w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4); } //----------------------------------------------------------------------------- double p_2() { double r1 = x1 - 100.0; double r2 = x2 - 100.0; double r3 = x3 - 100.0; double r4 = x4 - 100.0; double b1 = iWPR (Symbol(), 0,WPR_period, P_1); double b2 = iWPR(Symbol(), 0,WPR_period, P_2); double b3 = iWPR(Symbol(), 0, WPR_period, P_3); double b4 = iWPR(Symbol(), 0,WPR_period, P_4); return (r1 * b1 + r2 * b2 + r3 * b3 + r4 * b4); } //------------------------------------------------------------------------- double p_3() { double v1 = x1 - 100.0; double v2 = x2 - 100.0; double v3 = x3 - 100.0; double v4 = x4 - 100.0; double c1 = iCustom(NULL, 0, "Fisher_m11",RangePeriods,PriceSmoothing, IndexSmoothing,0,P_1); double c2 = iCustom(NULL, 0, "Fisher_m11",RangePeriods,PriceSmoothing, IndexSmoothing,0,P_2); double c3 = iCustom(NULL, 0, "Fisher_m11",RangePeriods,PriceSmoothing, IndexSmoothing,0,P_3); double c4 = iCustom(NULL, 0, "Fisher_m11",RangePeriods,PriceSmoothing, IndexSmoothing,0,P_4); return (v1 * c1 + v2 * c2 + v3 * c3 + v4 * c4); } //--------------------------------------------------------------------------- double p_4() { double e1 = x1 - 100.0; double e2 = x2 - 100.0; double e3 = x3 - 100.0; double e4 = x4 - 100.0; double d1 = iAC(Symbol(), 0, P_1); double d2 = iAC(Symbol(), 0, P_2); double d3 = iAC(Symbol(), 0, P_3); double d4 = iAC(Symbol(), 0, P_4); return (e1 * d1 + e2 * d2 + e3 * d3 + e4 * d4); } ------------------------------------------------------------------------------------------------- Не компиллируется! Пишет: 'p_1' - variable not defined 'p_2 ---------------------------- 'p_3 --------------------------- 'p_4 ---------------------------- |
NoName |
![]()
Сообщение
#49
|
![]() Группа: Активный участник Сообщений: 514 Регистрация: 1.5.2006 Из: Украина, Кременчуг Пользователь №: 146 Спасибо сказали: 0 раз(а) ![]() |
Проблема в последнем результирующем слое.
p_1, p_2 ... - это функции, значит после них нужно поставить скобки. Вот так будет правильно: Код double perceptron() { //---------------------------------------------------------------------- double f1 = y1 - 100.0; double f2 = y2 - 100.0; double f3 = y3 - 100.0; double f4 = y4 - 100.0; return (p_1() * f1 + p_2() * f2 + p_3() * f3 + p_4() * f4); } Интересная картина получается, однако. Даже, затрудняюсь представить конечный результат. Последний слой будет оценивать результаты работы остальных трёх и принимать окончательное решение. Чувствую что количество входов в рынок при такой архитектуре станет меньше. Дай Бог, что бы отбрасывались только убыточные входы ![]() |
leonid553 |
![]()
Сообщение
#50
|
![]() Группа: Активный участник Сообщений: 2 002 Регистрация: 14.4.2006 Из: г.Самара Пользователь №: 28 Спасибо сказали: 11 раз(а) ![]() |
ДА, ДЕЙСТВИТЕЛЬНО!
С р_1() всё получилось Эскизы прикрепленных изображений |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 13.3.2025, 10:58 |