Хорошо. Гляну что там может быть не так, но наверное завтра когда выходные начнутся.
А кроме как сильно лагает при установке никаких отзывов об индикаторе тренд/флет что я написал небудет? Просто ради интереса. :))
[open source] [Советник] Mix Scalper: сконструируй свой Грааль!
От Archmagister, 16 сентября, 2013 в Лаборатория ProfitFX
То что по умолчанию М5 - так и ставить на минутный график?
Прогнал остальные идникаторы в одиночном режиме.
Вроде, всё нормально, кроме Genesis Matrix:
- на М1 сделки открывает не по сигналу;
- на М5 то же не по сигналу, и только на продажу.
Если будешь заниматься, пожалуйста, не забудь про упрощения для оптимизации.
Добавлено: 27-12-2013 07:46:23
Ttomas,
Ещё заметил ("баг"?) на стохастике:
1.М1 nap, zone, cross работают нормально (прогонял по отдельности);
2.М5:
- NAP только бай при движение индикатора в любую сторону;
- ZONE торгует не по сигналу;
- CROSS нет сделок при наличии условий.
Проверяю следующим образом - беру "нулевой" сет,
в котором выключены все индикаторы и включаю те,
которые хочу проверить с весом=1 и порогом=1 и ТФ соответствующим.
Скрины и сеты добавить не дают, пишут - лимит 5 шт на одно сообщение.....
mix_3.22_genesis_m1.set
mix_3.22_genesis_m5.set
mix_3.22_test_null_m1.set
Изменено 27 декабря, 2013 пользователем Sergey5
Я в коде индикатора ТМА в трех местах заменил
iMA(NULL,0,1,0,MODE_SMA,Price,i); //Price по умолчанию = CLOSE
на
Close;
(Здесь пытаюсь написать Close квадратная скобка открывается i квадратная скобка закрывается - скобки куда-то пропадают. Эту строку написал при редактировании сообщения)
Так как iMa с периодом 1 и есть сама цена.
Результат такой. 1 проход советника ThirdHandTMA (использующего индикатор TMA) сократился по времени ровно в 2 раза: с 16с до 8с
Если Price примет другие значения надо прописать условия if
Когда-то делал для медленного индикатора ускорение - часть расчетов вынес в DLL - тоже очень заметным было ускорение (раз в 5-10).
Изменено 28 декабря, 2013 пользователем cdy1
Подскажите, как бороться вот с этой бедою: Запись в журнале тестера "2013.12.28 11:51:54 2013.12.17 10:00 Mix Skalper v03.22 AUDJPY,M1: zero divide"
Сейчас потихоньку просматриваю замечания по работе.
Sergey5, по поводу генезиса М1 - вы неправильно настроили советник. При работе с Генезис Матриксом каждый квадрат имеет вес равный установленному в настройках тогда чтобы по системе весов получить 4из4 нужно установить вес равный 1 и порог равный 4. Это же касается и работы генезис на старшем ТФ.
По поводу Старшего генезиса, там действительно есть мой косяк с буквой маркером потому он и открывает только селл. Но вы неверно проводили поиск ошибки. Хоть он и пронумерован как М5 но он является СТАРШИМ. соответственно там присутствует алгоритм подстройки работы на старший ТФ. Из чего следует что корректное тестирование работы любого из старших индикаторов возможно только на младшем ТФ. И нужно учесть особенности. Например переменная в начале советника должна быть настроена на текущий ТФ на котором стоит бот. В блоке настроек индикатора все должно быть выставлено на настраиваемый ТФ работы.
При проверке алгоритма работы стохастиков никаких проблем не выявил, возможно дело в неправильном тестировании модулей. Если прилагаемая информация не помещается в один пост, прошу прилагать ее в архиве.
cdy1, эксперимент очень интересный но недостаточно чистый. Ведь вся сложность нагрузки ТМА и заключается в его расчете на крупных периодах. иначе смысла в нем нет. Во вторых - как проводился замер времени?
Во вторых в нашем случае вычленение передаваемых параметров не стоит свеч. Ведь зачем делать конструктор без возможности настройки и оптимизации? или тогда зачем вся эта идея с разработкой бота, мы изначально разрабатывали его так чтобы можно было найти решение подбора параметров для подстройки к текущей рыночной ситуации. Если имеется желание проверить подобный подход, то для этого ненужны мои знания, подойдут навыки владения блокнотом и Основной принцип высшего образования. Сделайте финт с индикаторами как будет описано под спойлером, только не забудьте предварительно скопировать индикаторы, так как их придется изменять.
Финт собственно заключается в том чтобы сделать внешние переменные индикатора фикцией, для этого берем любой индикатор например ТМА. Дублируем строки содержащие extern значения. В одной копии заменяем extern на static или удаляем фразу. А в другой заменяем имена переменных на разную хрень(нам все-равно как они будут значиться) получиться должно приблизительно так:
extern string Hren1 = "Current";
extern int Hren2 = 56;
extern int Hren3 = PRICE_CLOSE;
extern double Hren4 = 2.0;
extern int Hren5 = 100;
extern double Hren6 = 0.5;
static string TimeFrame = "Current";
static int TMAPeriod = 56;
static int Price = PRICE_CLOSE;
static double ATRMultiplier = 2.0;
static int ATRPeriod = 100;
static double TrendThreshold = 0.5; Это будет правильным решением, так как если я исключу из советника передачу переменных, а они будут обозначены в индикаторе то мы получим очень сильно тормозящий перевызывающийся и некорректно работающий модуль. ЗЫ чтобы корректно отображать
необходимо его перенести в зону ограниченную тегами кода, так как данная комбинация является тегом ББ кода курсива в HTML.iich, я ничего немогу подсказать по поводу данной проблемы без предоставления информации, Но скорее всего вы что-то не так настроили, так как мне ниразу не жаловались на ошибку Деления на ноль.
Добавлено: 28-12-2013 12:25:15
Sergey5, кажется я понял в чем проблема, в начале разработки я предвидел ее появление. Дело в том что в случае настройки индикатора старшего ТФ на текущий есть несколько особенностей, например для стохастика StohTF_High должен быть равен 0 иначе будет некорректная работа
Изменено 28 декабря, 2013 пользователем Ttomas
ну и намудрили вы тут :))
Правильно ли я понял, что часть индикаторов имеют ДВА уровня настроек:
1.Для текущего ТФ, указанного в начале TFForEA
2.Для старшего ТФ, назначаемого "имя индикатора"_TF_High?
И если я хочу настроить индикатор для работы в ТФ 30,
то мне надо указать TFForEA=30,
настроить индикатор первого уровня, а в настройках
этого же индикатора второго ("старшего") уровня
поставить "имя индикатора"_TF_High=0 ?
Просто я таким образом настроил стохастик для М5 и он работает правильно.
Добавлено: 28-12-2013 14:11:17
По такому же принципу настроил SSRC для М5,
но CROSS всё равно не правильно работает.
Добавлено: 28-12-2013 14:22:46
По генезису понял, проверю.
Есть предложение:
В следующей версии в настройках индикаторов:
- для текущего ТФ убрать "М1" и написать"Current";
- для старшего ТФ убрать "М5" и написать "High TF".
Изменено 28 декабря, 2013 пользователем Sergey5
В общем ввиду огромной сложности соединения воедино всех индикаторов, да еще и заставить некоторых из них работать на старшем ТФ наложены некоторые ограничения. Замечу( Только старших ТФ) то есть советник должен стоять на самом младшем из используемых.
Да все верно. Правда я допускаю что возможен один косяк в сравнении. его я постараюсь исправить в ближайшее время Критичным это будет только для некоторых индикаторов которые используют сравнение и только для сетов на старших тф
Добавлено: 28-12-2013 14:24:52
А SSRC Cross не работает в обоих режимах В смысле брутальный тоже?
SSRC брутал=false
Он открывает сделки на пересечении правильно,
но при этом открывает ещё и другие, когда SSRC гуляет между уровнями.
А это реал тайм наблюдение или опираясь на сопоставление сделок и показаний ссрц на истории. если во втором случае то возможна перерисовка индикатора, что неоднократно замечалось.
Ну и сразу про SSRC спрошу:
когда вкл NAP, до какого момента(уровня) активен этот сигнал?
А то он открывает бай, даже когда индикатор дёрнется
с 0.85 на 0.9, но это уже перебор :))
CROSS - ВТ визуал.
Сейчас прогонял и увидел.
Уровень стоит 0.9
НУ вот в чем собака зарыта. SSRCBarsCros=10 он ищет пересечение зоны в последние 10 баров. там то они есть естественно :) ставить нужно 0, 1 или 2 на больших ТФ возможно больше.
SSRC Nap работает проще. он дает сигнал если в течении настроенного количества баров индикатор показывал одно направление. Если настроено 1 то и советник будет смотреть всего 1 бар соответственно от любого дуновения цены он и будет давать сигналы. Как стоящий сигнал рассматривать стоит 2-3 бара. Регулируется параметром SSRCBarsNap=1. Если настроить на 2 то в случае если индикатор будет 2 последних бара падать он провозгласит Сел, а подниматься - Бай. Все просто.
Понятно.
Сейчас проверил генезис на М1 с порогом 4 - всё правильно работает.
ArchMagister, не забудь всё это в инструкции записать
и, наверное, надо FAQ сделать по настройкам.
Добавлено: 28-12-2013 15:26:57
Так-с... ну с индикаторами для генерации сигналов вроде разобрались. :))
Следующий вопрос об ускорении ВТ. x_x
Не думал ещё про версию с заменой TRUE/FALSE на 1/0 ?
Изменено 28 декабря, 2013 пользователем Sergey5
ну если с индикаторами разобрались то можно и за оптимизацию пары моментов взяться.
Сделаю версию параллельно с очередной, когда закончу оптимизацию.
ЦитатаArchMagister, не забудь всё это в инструкции записать
Думаю, создателю кода виднее, какие ещё там есть особенности - пока читал все эти диалоги, нашёл уже около десяти штук) Лишь по чистой случайности я на них не наткнулся. А сколько ещё осталось неупомянутых... :))
Ладно, напишу.
Следующую версию вместе с мануалом поместим в главную сборку из первого поста. Ещё я хочу накидать туда сетов. Все кто тестирует сов - соберите один или несколько своих самых лучших сетов - неважно для какого режима, ТФ или пары.
Итак.... Выкладываю свеженькую предновогоднюю версию 03.25. Скорее всего последнюю в этом году.
Основные изменения - Проводил оптимизацию, избавился от некоторых перевызовов индикаторов, исправил некорректную работы старшего генезис матрикс, теперь открывает в оба направления. Внес правки для корректной работы Некоторых старших Индикаторов. Добавил пару строчек - время выполнения цикла индикатора (для спортивного интереса) также добавил и в ранний советник 03.22 прикреплю для сравнения. Сделал отдельную версию 03.25 - All Opt для желающих оптимизировать комплекты индикаторов.
Не стесняемся, оставляем отзывы, замечания по работе в теме. Отчеты об ошибках подкрепляйте всей доступной информацией. Сеты и результаты их тестирования приветствуются независимо от Пары ТФ или Режима работы :d
Mix_Skalper_v03.22.ex4
Mix_Skalper_v03.25-AllOpt.rar
Mix_Skalper_v03.25.rar
Изменено 29 декабря, 2013 пользователем Ttomas
Лучше стало :))
Альпари стд, 3 мес, EU H1, сет ТМА+SSRC zone, один проход:
v3.22 12 min
v3.22 opt 12 min
v3.25 8 min
v3.25 opt 8 min
только весь журнал забит
"2013.12.29 21:42:18 2013.12.20 19:59 Mix Skalper v03.25-AllOpt EURUSD,H1:
Время выполнения цикла советника составило - 0 милисекунд!"
По 5-10 шт в секунду x_x
Лог файл тестера после этих 4-х проходов весил 600 Мб v:)
Изменено 29 декабря, 2013 пользователем Sergey5
На каждом цикле советника. Тоесть на каждом тике по 1 строке. А так как выполнение укладывается в отведенное время пишет 0.
На каждом цикле советника. Тоесть на каждом тике по 1 строке. А так как выполнение укладывается в отведенное время пишет 0.
А можно эти комменты убрать?
Из-за них не видно других сообщений и лог слишком грузит .
Добавлено: 29-12-2013 16:56:20
Попробовал 3.25 на RVD AUDJPY M5 1 месяц
set TMA+SSRC zone+ZWinner:
- 21 мин
440 Мб лог тестера.
Изменено 29 декабря, 2013 пользователем Sergey5
Я не стал плодить кучу копий, перезалил архивы. в самом конце есть флаг timer можно его активировать чтоб время выполнения советника в миллисекундах смотреть, но по умолчанию отключен. Впринципе ускорять уже особо нечего. Остались только танцы с бубном и протыкание кукл вуду. Медленность работы связана с огромностью советника. и очень зависит от количества подключенных индикаторов. Что ж, за все надо платить :))
Что ж хорошо, осталось написать продвинутый мануал с хитростями настройки и собрать сеты.
Что ж, за все надо платить :))
Это точно :))
Я прогнал одинаковые тесты в Альпах и РВД,
у РВД в несколько раз дольше.
Присмотрелся - история у РВД более качественная.
Выбираю качество <:-p>
Я не стал плодить кучу копий, перезалил архивы. в самом конце есть флаг timer можно его активировать чтоб время выполнения советника в миллисекундах смотреть, но по умолчанию отключен. Впринципе ускорять уже особо нечего. Остались только танцы с бубном и протыкание кукл вуду. Медленность работы связана с огромностью советника. и очень зависит от количества подключенных индикаторов. Что ж, за все надо платить :))
Архивы перезалиты здесь /laboratoriya-profitfx/24/open-source-sovetnik-mix-scalper-skonstruiruy-svoy-graal/5127/?do=findComment&comment=115725?
Форумчанам следует заменить ранее скопированные файлы с этим же именами?
Что касается управления отладочной печатью, то мне нравилось задавать к какому уровню относится каждый отладочный оператор печати.
Допусти, внешняя управляющая переменная Debug могла принимать значения от Debug=0 (отключено) до Debug=7 (печатается все).
А все операторы отладочной печати были логическими и имели вид if Debug >= X печатаем, где Х изменялся от 1 до 7 и был указателем к какому уровню/группе операторов отладочной печати относился данный оператор.
Очень гибко и большую часть отладочной печати можно было оставлять в программах для после продажного сопровождения программ даже после сдачи их заказчику.
Изменено 29 декабря, 2013 пользователем Старик
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем