Перейти к содержанию

Библиотека функций трала


Рекомендуемые сообщения

Библиотека функций трала Опубликовано

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

Функции:

void TrailingByShadows(int ticket, int tmfrm, int bars_n, int indent)

void TrailingByFractals(int ticket, int tmfrm, int frktl_bars, int indent)

void TrailingStairs(int ticket, int trldistance, int trlstep)

void TrailingUdavka(int ticket, int trl_dist_1, int level_1, int trl_dist_2, int level_2, int trl_dist_3)

void TrailingByTime(int ticket, int interval, int trlstep, bool trlinloss)

void TrailingByATR(int ticket,int atr_timeframe,int atr1_period,int atr1_shift,int atr2_period,int atr2_shift,double coeff,bool trlinloss)

void TrailingRatchetB(int ticket,int pf_level_1,int pf_level_2,int pf_level_3,int ls_level_1,int ls_level_2,int ls_level_3,bool trlinloss)

void TrailingByPriceChannel(int iTicket, int iBars_n, int iIndent)

void TrailingByMA(int iTicket, int iTmFrme, int iMAPeriod, int iMAShift, int MAMethod, int iApplPrice, int iShift, int iIndent)

void TrailingFiftyFifty(int iTicket,int iTmFrme,double dCoeff,bool trlinloss)


Описание:
TrailingByShadows() - по теням N последних свечей (на текущем или других таймфреймах);

TrailingByFractals() - по фракталам, образованным заданным количеством баров (на текущем или других таймфреймах).

TrailingStairs() - аналогичный стандартному трейлинг, который, однако, переносится "скачкообразно", с определённым, задаваемым шагом.

TrailingUdavka() - производный от стандартного трейлинга, но при прохождении заданных уровней профита дистанцию трейлинга сокращаем.

TrailingByTime() - через заданный интервал времени переносим стоплосс (при возможности и независимо от результатов по позиции) на заданный шаг.

TrailingByATR() - тралим на расстоянии в N x ATR.
Более подробное описание - см. в описании соответствующих функций.

TrailingRatchetB() - система быстрого поджатия в безубыток и "ступеньками" на начальном этапе роста профита, поджатие на "лоссовом" участке для предупреждения роста убытков после их "отката".

TrailingByPriceChannel() - трейлинг по противоположной границе ценового канала.

TrailingByMA() - трейлинг по скользящему среднему.

TrailingFiftyFifty() - по закрытии очередного бара расстояние между текущим курсом и стоплоссом уменьшаем в заданное кол-во раз.

Как использовать:
- скачать библиотеку (Trailing_All.mq4);
- поместить её в папку [директория MetaTrader'a]/experts/libraries;
- подключить её в вашем советнике;
- в соответствующем участке кода Вашего советника, в соответствующее время, выбрав предварительно конкретный ордер открытой позиции (функция OrderSelect()), вызвать необходимую функцию, указав её параметры (см. эксперт с примером - MyFractals(пример).mq4);

Trailing_All.mq4
MyFractalsпример.mq4

Ссылка на сообщение
Поделиться на другие сайты

Библиотека функций трала Опубликовано


TrailingByATR() - тралим на расстоянии в N x ATR.
Более подробное описание - см. в описании соответствующих функций.


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

Кроме того, помнится, на форуме есть топик "Умные тралы" или схоже.
Может, данный пост было бы уместнее разместить в том топике?

Отдельный вопрос к админу или модерам - может, топик "Умные тралы" переместить в "Уголок Программиста"?
Ссылка на сообщение
Поделиться на другие сайты

Библиотека функций трала Опубликовано (изменено)



Кроме того, помнится, на форуме есть топик "Умные тралы" или схоже.
Может, данный пост было бы уместнее разместить в том топике?

Отдельный вопрос к админу или модерам - может, топик "Умные тралы" переместить в "Уголок Программиста"?



В топике умные тралы все представленное там используется совместно с советниками которые торгуют, либо сопровождают ручное открытие сделок. Здесь же возможность, людям которые пишут что то свое, встраивать и эксперементировать.
Очень много тралов в закрытом коде, а просить каждый раз декомпил, да и если только начал изучать mql, очень сложно разбирать код декомпелированный.

Добавлено: 22-12-2012 03:27:44

Таралинг по АТR

Функция:

void TrailingByATR(int ticket,int atr_timeframe,int atr1_period,int atr1_shift,int atr2_period,int atr2_shift,double coeff,bool trlinloss)

Описание:
ATR - (Average True Range, Средний Истинный Диапазон) - один из индикаторов волатильности; чем больше значение, тем, соответсвенно, выше средняя волатильность за заданный период (индикатора) времени; измерятеся в пунктах. Трейлинг по ATR в большинстве случаев позволяет изменять стоплосс соответственно к характеру поведения курса - при высокой волатильности (выраженных рывках) курс "отпускаем", при "топтании на месте" поджимаем более "плотно". В трейлинге используется 2 ATR, которым предлагается задавать отличные периоды - один короткий (напр., 5), другой - длинный (напр., 20). Какому из них - atr1_period или atr2_period - без разницы. Для расчета стоплосса используется всегда большее из значений 2 ATR - это сделано для того, чтобы несколько низковолатильных дней подряд (например, перед выходом новостей) не сделали наш стоплосс слишком близким к текущему курсу (т.е. обычно большим будет более "короткий" ATR, но если имеем несколько баров с низкой волатильностью, то "переходим" на более длиннопериодный ATR). atr_timeframe - период графика, минут (5, 15, 30, 60, 240, 1440 и т.д.), на котором рассчитываются ATR (одинаков для обоих ATR). atr1_shift и atr2_shift - на каком баре (текущем, 0, предыдущем - 1 или дальше "в прошлое") считать соответственно первый и второй ATR. coeff - коэффициент, на который множим ATR, чтобы получить стоплосс (при coeff=1 стоп будер размещен на расстоянии в 1 ATR, при coeff=1.5 - на расстоянии в полтора ATR и т.д.). trlinloss - указатель того, следует ли тралить на участке лоссов (от исходного стоплосса, при наличии такового, до курса открытия).

Пример:
TrailingByATR(OrderTicket(),1440,5,1,36,1,1,false), где OrderTicket() - номер ордера, 1440 - (минут, 1 сутки) таймфрейм, на котоором рассчитываются значения ATR, 5 - период "короткого" ATR, 1 - ATR с периодом 5 считаем на предыдущем баре (№1), 36 - период "длинного" ATR, 1 - второй ATR также рассчитываем на предыдущем баре, 1 - коэффициент, на который множим ATR - в данном случае стоплосс будет размещаться на расстоянии в один ATR, false - на "лоссовом" участке не тралим. Изменено пользователем talliy
Ссылка на сообщение
Поделиться на другие сайты

Библиотека функций трала Опубликовано (изменено)
talliy, понял.
Ладно, наверно, подход приемлемый.

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

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

А так, конечно, хорошее дело делаете, молодец.
Просто, пожалуйста, еще потрудитесь и доведите до автономности и исчерпывающей полноты выложенные вами описания.

Добавлено: 23-12-2012 05:01:37

http://codebase.mql4.com/ru/1101

Это оно?
Или вы выложили более свежую версию библиотеки трала? Изменено пользователем Старик
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...