Создание сигнального индикатора (для новичков)
Страница 1 из 5 1 2 3 4 5 ПоследняяПоследняя
Показано с 1 по 10 из 42

Тема: Создание сигнального индикатора (для новичков)

  1. #1
    Новичок Аватар для SilverKZ
    Регистрация
    19.11.2012
    Сообщений
    204
    Promo (¢)
    3,898
    Благодарности
    Получено: 138
    Отправлено: 13

    Cool Создание сигнального индикатора (для новичков)

    Создание сигнального индикатора (для новичков)

    Для чего нужны сигнальные (или стрелочные) индикаторы:
    1) Разгрузить график от избыточного количества индикаторов;
    2) Известить трейдера о возникновении сигнала по формализованным правилам;
    3) Скрыть методику принятия решения.

    Сигнальный индикатор, с заложенными в него правилами входа и выхода с рынка, сам по себе уже может представлять законченную торговую систему.

    Создание стрелочного индикатора будет легко освоить на следующем примере.
    Допустим, необходимо создать индикатор сигнализирующий о моменте пересечения двух скользящих средних (рис 1).

    [IMG]http://s003.radikal.ru/i202/1212/7b/646ae37c56a0.jpg[/IMG]

    Ниже представлен шаблон, на основе которого вы можете создавать свои сигнальщики. В коде все строки закомментированы. Как говорится, хорошие программы - это хорошо документированные программы.
    Результат работы индикатора отображен ни рисунке 2.

    [IMG]http://s019.radikal.ru/i610/1212/d9/af6a0fd70613.jpg[/IMG]

    Теперь скользящие средние линии можно убрать с графика, оставить только сигнальщик. При появлении стрелок, вы будете точно знать, что произошло пересечение средних (рис 3).

    [IMG]http://s020.radikal.ru/i721/1212/50/6e42df8cb346.jpg[/IMG]

    Шаблон индикатора
    [PHP]//|------------------------------------------------------------------|
    //| Indicator Arrow.mq4|
    //| Copyright © 2012, Mr.SilverKZ |
    //| SilverKZ@mail.kz |
    //+------------------------------------------------------------------+
    #property copyright "SilverKZ"
    #property link "SilverKZ@mail.kz"
    //---- отрисовка индикатора в главном окне
    #property indicator_chart_window
    //---- количество индикаторных буфферов
    #property indicator_buffers 2
    //---- цвета индикатора
    #property indicator_color1 Blue
    #property indicator_color2 Red
    //---- входные параметры индикатора
    extern int MA_Fast = 12;
    extern int MA_Slow = 26;
    //---- индикаторные буфферы
    double buf_1[];
    double buf_2[];
    //+------------------------------------------------------------------+
    //| Функция инициализации, запускается один раз |
    //+------------------------------------------------------------------+
    int init()
    {
    //---- 2 индикаторных буффера использованы для счёта
    SetIndexBuffer(0, buf_1);
    SetIndexBuffer(1, buf_2);
    //---- Стиль исполнения графика
    //---- DRAW_ARROW - стрелки(символы)
    SetIndexStyle (0, DRAW_ARROW, STYLE_SOLID, 3);
    SetIndexStyle (1, DRAW_ARROW, STYLE_SOLID, 3);
    SetIndexArrow (0, 233);
    SetIndexArrow (1, 234);
    //---- установка значений индикатора, которые не будут видимы на графике
    SetIndexEmptyValue(0,0.0);
    SetIndexEmptyValue(1,0.0);
    //---- установка номера бара, начиная с которого будет отрисовываться индикатор
    SetIndexDrawBegin(0,MA_Slow);
    SetIndexDrawBegin(1,MA_Slow);
    //---- завершение инициализации
    return (0);
    }
    //+------------------------------------------------------------------+
    //| Основная Функция, запускается на каждом тике |
    //+------------------------------------------------------------------+
    int start()
    {
    //---- проверка количества баров на достаточность для расчёта
    if (Bars <= MA_Slow) return (0);
    //---- получение уже посчитанных баров
    int ExtCountedBars = IndicatorCounted();
    //---- проверка на возможные ошибки
    if (ExtCountedBars < 0) return (-1);
    //---- последний посчитанный бар должен быть пересчитан
    if (ExtCountedBars > 0) ExtCountedBars--;
    //---- основной цикл расчёта индиатора
    for (int i=Bars - ExtCountedBars-1;i>=0; i--)
    {
    //---- получение значений индикатора в переменные
    double MA_Fast_1 = iMA(NULL, 0, MA_Fast, 0, MODE_EMA, PRICE_CLOSE, i+1);
    double MA_Slow_1 = iMA(NULL, 0, MA_Slow, 3, MODE_LWMA, PRICE_CLOSE, i+1);
    double MA_Fast_2 = iMA(NULL, 0, MA_Fast, 0, MODE_EMA, PRICE_CLOSE, i+2);
    double MA_Slow_2 = iMA(NULL, 0, MA_Slow, 3, MODE_LWMA, PRICE_CLOSE, i+2);
    //---- проверка условий по вашим правилам и отрисовка стрелки
    if (MA_Fast_1 > MA_Slow_1 && MA_Fast_2 <= MA_Slow_2) buf_1[i+1] = Low[i+1] - 10 * Point;
    if (MA_Fast_1 < MA_Slow_1 && MA_Fast_2 >= MA_Slow_2) buf_2[i+1] = High[i+1] + 10 * Point;
    }
    //---- завершение основной функции
    return (0);
    }
    //---- end[/PHP]

    Вместо стрелок можно использовать другие символы. Для этого в данных строках необходимо заменить коды символов (233 и 234).
    SetIndexArrow (0, 233);
    SetIndexArrow (1, 234);
    Коды символов:
    [IMG]http://s017.radikal.ru/i412/1212/07/6ba2d9530ca7.jpg[/IMG]

    Для создания своего сигнальщика изменения вносите только в следующий код:
    1)
    [PHP]//---- входные параметры индикатора
    extern int MA_Fast = 12;
    extern int MA_Slow = 26;[/PHP]
    2)
    [PHP]//---- получение значений индикатора в переменные
    double MA_Fast_1 = iMA(NULL, 0, MA_Fast, 0, MODE_EMA, PRICE_CLOSE, i+1);
    double MA_Slow_1 = iMA(NULL, 0, MA_Slow, 3, MODE_LWMA, PRICE_CLOSE, i+1);
    double MA_Fast_2 = iMA(NULL, 0, MA_Fast, 0, MODE_EMA, PRICE_CLOSE, i+2);
    double MA_Slow_2 = iMA(NULL, 0, MA_Slow, 3, MODE_LWMA, PRICE_CLOSE, i+2);
    //---- проверка условий по вашим правилам и отрисовка стрелки
    if (MA_Fast_1 > MA_Slow_1 && MA_Fast_2 <= MA_Slow_2) buf_1[i+1] = Low[i+1] - 10 * Point;
    if (MA_Fast_1 < MA_Slow_1 && MA_Fast_2 >= MA_Slow_2) buf_2[i+1] = High[i+1] + 10 * Point;[/PHP]

    На этом все, удачных торгов!!!

    П.С. Если материал был вам полезен, прошу отблагодарить ==========================================>

    Вы не можете благодарить!
    Последний раз редактировалось SilverKZ; 06.12.2012 в 22:59.

  2. #2
    Новичок
    Регистрация
    13.05.2012
    Сообщений
    126
    Promo (¢)
    2,140
    Благодарности
    Получено: 20
    Отправлено: 5
    Как раз то что нужно, тоже делаю свои индикаторы в силу своих возможностей и тоже стараюсь торговую идею целиком реализовать в индикаторе. Что самое привлекательное, это не нужно делать отдельного советника, он уже есть - шаблон exp iCustom со всеми настройками для открытия и сопровождения сделок по сигналам индикатора. Спасибо!

    Вы не можете благодарить!

  3. #3
    Инсайдер Аватар для Names
    Регистрация
    13.09.2012
    Сообщений
    8,647
    Promo (¢)
    290
    Благодарности
    Получено: 377
    Отправлено: 202
    SilverKZВы сову на ма гоняли на истории?Я сколько сов не перепробывал на МА, все они оказывались не рентабельными, или мало рентабельными,(Не сталкивались с ТС ЗЗ+МА?

    Вы не можете благодарить!

  4. #4
    Уже не гость
    Регистрация
    10.07.2012
    Сообщений
    1
    Promo (¢)
    0
    Благодарности
    Получено: 0
    Отправлено: 1
    Срасибо SilverKZ очеь полезная, а глвное доступно изложенная статья.

    Вы не можете благодарить!

  5. #5
    Новичок
    Регистрация
    13.05.2012
    Сообщений
    126
    Promo (¢)
    2,140
    Благодарности
    Получено: 20
    Отправлено: 5
    Цитата Сообщение от Names Посмотреть сообщение
    SilverKZВы сову на ма гоняли на истории?Я сколько сов не перепробывал на МА, все они оказывались не рентабельными, или мало рентабельными,(Не сталкивались с ТС ЗЗ+МА?
    С такой ТС не сталкивался, вообще юзаю только свои идеи, чужие ТС как то не приживаются, больше нравится изобретать и реализовывать своё, кое что если понравится беру на вооружение, полезного много чего всречается.

    На основе МА еще не разу не строил ТС, как раз сейчас решил попробовать с чем это едят, пока думаю как это реализовать в индюке - на основе двух МА, но только конечно же не банальные пересечения.

    Вы не можете благодарить!

  6. #6
    Инсайдер Аватар для Names
    Регистрация
    13.09.2012
    Сообщений
    8,647
    Promo (¢)
    290
    Благодарности
    Получено: 377
    Отправлено: 202
    Цитата Сообщение от Blast Посмотреть сообщение
    С такой ТС не сталкивался, вообще юзаю только свои идеи, чужие ТС как то не приживаются, больше нравится изобретать и реализовывать своё, кое что если понравится беру на вооружение, полезного много чего всречается.

    На основе МА еще не разу не строил ТС, как раз сейчас решил попробовать с чем это едят, пока думаю как это реализовать в индюке - на основе двух МА, но только конечно же не банальные пересечения.
    Согласен на банальном пересечении это довольно просто и сигнал слишком запаздывающий.Тогда вы хотите как на пробой или отскок ма?, тогда автоматически встает вопрос как будете фильтровать ложные сигналы.

    Вы не можете благодарить!

  7. #7
    Новичок Аватар для SilverKZ
    Регистрация
    19.11.2012
    Сообщений
    204
    Promo (¢)
    3,898
    Благодарности
    Получено: 138
    Отправлено: 13
    [QUOTE=Names;72195]Согласен на банальном пересечении это довольно просто и сигнал слишком запаздывающий.Тогда вы хотите как на пробой или отскок ма?, тогда автоматически встает вопрос как будете фильтровать ложные сигналы.[/QUOTE]

    Давайте начнем с самого начала, с азов классического теханализа. Что он говорит, он говорит: не торгуйте против тренда, торгуйте в сторону основной тенденции. Движение цен имеет загзагообразный характер - импульс и коррекция. Как не крути самый безопасный и прибыльный вход - это вход в направлении основной тенденции на откатах по окончании коррекции. Эти точки пометил на скрине.
    Почему это самый безопасный и прибыльный вход, потому что:
    1. Минимальные риски, т.к. стоплосс очень короткий
    2. Вероятность получения прибыли большая, т.к.вход в направлении основного тренда
    3. Соотношение профит/стоп большое, т.к. стоп короткий, а прибыль растет в импульсной волне до следующего локального максимума (минимума)

    [IMG]http://s019.radikal.ru/i635/1212/00/c599fc5ed1ae.jpg[/IMG]

    Лоси будут обязательно в этих точках, т.к. до последнего не знаешь, новый тренд начался или продолжается коррекция. И ни один индикатор не покажет, эти лоси считаются плановыми.

    [IMG]http://s019.radikal.ru/i610/1212/4d/3eece5abd4e2.jpg[/IMG]

    Далее под эти точки подбираем индикаторы: 1) показывающие тренд и 2) показывающие разворот

    Все ИМХО, но мне кажется, что в этом и есть суть прибыльной торговли, а остальное все надстройка и мишура
    Предлагаю наши исследования направить в этом направлении. Сформулируем основные правила, напишем советник

    Вы не можете благодарить!
    Последний раз редактировалось SilverKZ; 11.12.2012 в 23:54.

  8. #8
    Новичок
    Регистрация
    13.05.2012
    Сообщений
    126
    Promo (¢)
    2,140
    Благодарности
    Получено: 20
    Отправлено: 5
    Цитата Сообщение от Names Посмотреть сообщение
    Согласен на банальном пересечении это довольно просто и сигнал слишком запаздывающий.Тогда вы хотите как на пробой или отскок ма?, тогда автоматически встает вопрос как будете фильтровать ложные сигналы.
    Пока вопрос открытый, делаю основные прикидки. Идея пока проста - направление задаёт MA c большим периодом, а входы по быстрой машке. Далее количество входов - доливок нужно ограничить каналом, минимальным разбросом цены для отката, также это будет ограничивать количество ложных входов на флете и еще часть зафильтруется из за несовпадения сигналов обоих машек. Также за счет применения установки короткого стопа в безубыток в том числе и для совокупной позиции, если такая образуется, позволит как мне кажется минимизировать убытки на флете и вовремя закрыть все ордера одного направления. Возможно трал тоже что то добавит, хотя это уже не существенно.

    Флет и с чем там придется столкнуться пока особо не беру во внимание, а на тренде хочу получить примерно то что на рисунке - красные стрелки входы по совпадению сигналов машек, зеленые - откаты определяемые каналом который убирает лишние сигналы, черные - расположение стопов, если доливка то стоп для всех ордеров общий, как то так...

    Вы не можете благодарить!

  9. #9
    Новичок Аватар для SilverKZ
    Регистрация
    19.11.2012
    Сообщений
    204
    Promo (¢)
    3,898
    Благодарности
    Получено: 138
    Отправлено: 13
    [QUOTE=Blast;72253]Пока вопрос открытый, делаю основные прикидки. Идея пока проста - направление задаёт MA c большим периодом, а входы по быстрой машке. Далее количество входов - доливок нужно ограничить каналом, минимальным разбросом цены для отката, также это будет ограничивать количество ложных входов на флете и еще часть зафильтруется из за несовпадения сигналов обоих машек. Также за счет применения установки короткого стопа в безубыток в том числе и для совокупной позиции, если такая образуется, позволит как мне кажется минимизировать убытки на флете и вовремя закрыть все ордера одного направления. Возможно трал тоже что то добавит, хотя это уже не существенно.

    Флет и с чем там придется столкнуться пока особо не беру во внимание, а на тренде хочу получить примерно то что на рисунке - красные стрелки входы по совпадению сигналов машек, зеленые - откаты определяемые каналом который убирает лишние сигналы, черные - расположение стопов, если доливка то стоп для всех ордеров общий, как то так...
    [/QUOTE]

    Ну вот и вы к этому пришли. Правильным путем идем. По существу вопроса:
    1) С определением направления полностью согласен - МА, период оптимизируется в советнике, не суть
    2) А вот для входов лучше использовать осцилляторы, чтобы не голословно, давайте проведу сравнительный анализ входов по осцилляторам и быстрой МА. Какая у вас машка - метод, период
    3) С каналом можно подробней, а лучше линии чиркнуть на скрине

    В прошлом году спецом тестировал простейшую систему, период теста 1 месяц. Результаты меня порадовали.
    Итоги работы за месяц:
    всего сделок по сигналам = 38
    закрыто по тейк-профиту =13 или +1170п.
    закрыто по трейлинг-стопу = 11 или +141п.
    закрыто по стоп-лоссу = 14 или -840п.
    Общий доход = +471 п.
    Минимум усилий и строгое соблюдение правил.

    [IMG]http://i022.radikal.ru/1212/d4/fe58458230d6.jpg[/IMG]

    [IMG]http://s020.radikal.ru/i715/1212/2f/b1e78cd84f55.jpg[/IMG]

    Вы не можете благодарить!
    Последний раз редактировалось qwezz; 16.05.2013 в 18:36.

  10. #10
    Новичок
    Регистрация
    13.05.2012
    Сообщений
    126
    Promo (¢)
    2,140
    Благодарности
    Получено: 20
    Отправлено: 5
    Цитата Сообщение от SilverKZ Посмотреть сообщение
    Ну вот и вы к этому пришли. Правильным путем идем. По существу вопроса:
    1) С определением направления полностью согласен - МА, период оптимизируется в советнике, не суть
    2) А вот для входов лучше использовать осцилляторы, чтобы не голословно, давайте проведу сравнительный анализ входов по осцилляторам и быстрой МА. Какая у вас машка - метод, период
    3) С каналом можно подробней, а лучше линии чиркнуть на скрине
    Пока не углубляюсь в детали методов и периодов, нужен начальный общий концепт, осциллятор это тоже вариант, а канал это как бы некоторая мертвая зона где сигналы игнорируем, иначе их слишком много на быстрой машке. В общем то это не канал как таковой, просто условие поиска нового сигнала - определенное расстояние от нового локального экстремума менее/более которого сигналы игнорируются, пока не знаю насколько это оправдано, во всяком случае баловался фракталами - http://http://forum.roboforex.ru/showthread.php?t=670&p=63455&viewfull=1#post63455 и в общем то на флете это даёт некоторый результат, вот и думаю как это использовать здесь, применительно к трендовой ТС как фильтр для флета, а может удастся всё таки тренд и флет "подружить". :о)

    Машку, ту что на скрине выбрал потому что она уже сигналит сменой цвета, если интересует могу выложить.

    Вы не можете благодарить!

Страница 1 из 5 1 2 3 4 5 ПоследняяПоследняя

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •