Стратегия Gelium_Trader (TradeStation).

Дистрибутив.


Полная версия стратегии доступна для скачивания платным подписчикам сайт отсюда.

Для работы стратегии необходимы:
  • TradeStation 9.1.12098 (Update 12) или новее.
  • Для работы с моделями необходима библиотека Puls 2013.319 или новее. Для использования других стратегий Gelium_Trader_XXX библиотека Puls не нужна.

Описание.

Торговая стратегия Gelium_Trader является базовым движком для всех стратегий Gelium_Trader_XXX. Полное описание всех общих параметров стратегий есть в этой статье. Текущая версия Gelium_Trader содержит сигнал p_MD_XXX, который позволяет провести тестирование торговых решений на базе моделей, которые самостоятельно устанавливает трейдер с помощью индикатора Gelium_Expert.


Возможности стратегии:
  • Открытие позиций по установленным трейдером моделям.
  • Пирамидинг на откатах или с фиксированным шагом.
  • Закрытие позиций фиксированным стопом.
  • Закрытие позиций фиксированным лимитом.
  • Подтягивание стопа к минимуму отката (StopExt).
  • Выход после разворота на откате StopRT (двойной трейлинг StopReTarget).
  • Подтягивание стопа в случае нахождения цены долгого времени в малом диапазоне (StopTM). 
  • Риск фиксированным лотом или процентом депозита.
  • Ограничение числа повторных входов по одному базовому сигналу.
  • Собственный целевой критерий оптимизации (поиск максимальной доходности для года с минимальной отдачей) .
  • Экспорт торговых сигналов в MetaTrader с помощью советника Gelium_2MT.
  • Экспорт параметров стратегии в Excel.
Параметры стратегии:
p_MD_XXX - параметры для работы с моделями. В других стратегиях Gelium_Trader_XXX параметры сигналов для открытия позиций будут другие. Например, p_SRB_XXX. Соответственно параметры p_MD_XXX в других стратегиях будут отсутствовать.
  • p_MD(1) - 1 - разрешается торговля по моделям.

  • p_MD_ExtIdent(1) - отступ в пунктах от экстремума для входа на прорыве.

  • p_MD_TargetMinus(20) - количество пунктов, на которое уменьшается размер цели. В среднем, для базовых пар и золота, цена не доходит до целевого уровня в среднем 20 пунктов Fоrexite.

  • p_MD_Ident2w(100) - уровень входа на опережение относительно предыдущего экстремума на второй волне. Для входа по второй волне стоп размещается на 1 пункт выше предыдущей волны.

  • p_MD_Open(1) - 1 - разрешаются входы по моделям.

  • p_MD_Exit(1) - 1 - разрешаются закрытия позиций по моделям.

  • p_MD_Series("model_"+gp_SymbolName) - название серии с данными моделей (серия создается с помощью индикатора Gelium_Expert

  • p_Impuls_Rollback(0) - максимально допустимый размер отката против импульсного движения.

  • p_Impuls_Start(0) - размер движения в одном направлении без откатов больше p_Impuls_Rollback-пунктов, достижение которого включает флаг наличия импульса.
p_Risc - параметры управления вычислением объёма сделки.
  • p_RiscCapital(10000) - размер депозита на начало года.

  • p_RiscPrc(10) - процент риска в одной позиции относительно текущего остатка. Если параметр равен нулю, используется фиксированный размер позиции.

  • p_RiscPrc_NoLossReserve(0) - если параметр равен нулю, то после установки ордера размер рискового депозита уменьшается на величину возможной потери. Если параметр равен 1, резервирование под возможный убыток не осуществляется
p_Profit - фиксирование прибыли с помощью заданного размера профита в пунктах относительно цены открытия позиции.
  • p_Profit(0) - размер фиксированного профита в пунктах.

  • p_Profit_Indiv(0) - если параметр равен нулю, уровень фиксации прибыли для всех открытых позиций вычисляется относительно цены открытия последней позиции. Если параметр равен 1, то каждый вход имеет свой отдельный уровень фиксации прибыли.

  • p_Profit_Impuls(0) - если параметр равен нулю, ордер для фиксации прибыли ставится всегда. Если параметр равен 1, то ордер для фиксации прибыли ставится только в том случае, если был детектирован импульс
p_Stop - параметры фиксирование убытка с помощью заданного размера уровня stop loss в пунктах относительно цены открытия позиции.
  • p_Stop(50) - размер стопа в пунктах.

  • p_Stop_Indiv(0) - если параметр равен нулю, уровень фиксации убытка для всех открытых позиций вычисляется относительно цены открытия последней позиции. Если параметр равен 1, то каждый вход имеет свой отдельный уровень фиксации убытка
p_StopZero - подтягивание стопа к уровню без убытка или фиксации гарантированной прибыли. В случае, когда стоп подтягивается к уровню гарантированной прибыли, будущая прибыль добавляется к объёму рискового депозита и учитывается при расчёте объёма новых позиций.
  • p_StopZero(0) - если параметр больше нуля, то после прохождения в направлении позиции более p_StopZero-пунктов, стоп переносится в ноль или на уровень фиксации прибыли в p_StopZeroProf-пунктов лучше цены открытия позиции.

  • p_StopZeroProf(0) - размер фиксации профита в пунктах.

  • p_StopZeroAsLimit(0) - если параметр равен нулю, параметр p_StopZeroProf не может быть больше параметра p_StopZero. Это приводит к запрещению установки ордера фиксации прибыли. Если параметр равен 1 и p_StopZeroProf>=p_StopZero, то при прохождении StopZero-пунктов будет установлен лимитный ордер согласно параметру p_StopZeroProf. Это может быть полезно, когда целью стратегии являются краткосрочные импульсы.

  • p_StopZeroWait(0) - время ожидания в минутах, прежде чем изменение ордеров согласно параметров p_StopZero можно будет использовать. Параметр имеет смысл для торговли внутри дня
p_StopRT - закрытие позиции двойным трейлингом по методу StopRT (StopReTarget).
  • p_StopRT1(0) - порог движения в пунктах против открытой позиции, после достижения которого позиция будет закрыта на откате в направлении открытой позиции.

  • p_StopRT2(0) - размер отката в пунктах в направлении ранее открытой позиции, по достижению которого позиция будет закрыта.

  • p_StopRT_Impuls(0) - если параметр равен нулю, метод закрытия позиций используется всегда. Если параметр равен 1, то метод закрытия позиций используется только в том случае, если был детектирован импульс.
p_StopExt - закрытие позиции с помощью подтягивания стопа к минимуму/максимуму отката против направления текущей позиции.
  • p_StopExt1(0) - размер отката в пунктах для подтягивания стопа.

  • p_StopExt2(0) - порог прохождения в направлении открытой позиции в пунктах, по достижению которого стоп будет установлен на один пункт ниже экстремума отката.
p_StopTm - закрытие позиции с помощью подтягивания стопа к минимуму/максимуму диапазона цен за заданное число баров.
  • p_StopTm1(0) - число баров бокового диапазона для подтягивания стопа.

  • p_StopTm2(0) - максимальный допустимый размер диапазона в пунктах
p_SF - параметры управления целевым критерием оптимизации. Метод управления целью оптимизации рассматривается на форуме в теме "Gelium_Helper_SF - установка своего критерия оптимизации в TradeStation".
  • p_SF(-16) - последний год интервала настройки в формате YY, для которого делается учёт минимальной годовой прибыли. Если параметр меньше нуля, коррекция результата работы стратегии не производится и оптимизация выполняется согласно заданному целевому критерию оптимизации TradeStation. Например, если мы задаём p_SF=16 и оптимизация производится на данных [2010-2018], то интервалом настройки будет интервал [2010-2016] и минимальная годовая доходность этого интервала будет установлена в качестве результата работы стратегии. Интервалом проверки будут данные за период [2017-2018]. Результаты торговли на интервалах и настройки, и проверки, будут сохранён в Excel. Стоит учесть, что оптимизация на данных с добавлением интервала проверки потребует больше времени, так как стратегия считается на большем объёме истории.

  • p_SF_AllYear(1) - если p_SF_AllYear=1, то все года интервала настройки должны иметь сделки. Если в какой-то год сделок не будет, минимальной доходностью будет -10000 (потеря депозита).

  • p_SF_TargetMode(0) - если p_SF_TargetMode=0, ведётся поиск максимальной доходности для года с меньшим доходом. Если параметр p_SF_TargetMode=1, ведётся поиск максимальной средней геометрической прибыли для серии из всех прибыльных лет (функция СРГЕОМ в Excel).

  • p_SF_WinPrc(0) - если параметр p_SF_WinPrc>0, то параметр p_SF_WinPrc используется как коэффициент коррекции минимальной годовой доходности пропорционально проценту прибыльных сделок по формуле: MinYearPrc * ((WinTrades / TotalTrades) / p_SF_WinPrc). Таким образом, чем больше p_SF_WinPrc, тем сильнее процент прибыльных сделок влияет на результат генетической оптимизации. На мой взгляд, достаточно использовать p_SF_WinPrc=1.

  • p_SF_FileFlag(0) - если параметр равен 1, создаётся файл-флаг "c:\Optimization.flag" во время оптимизации. Файл флаг может использоваться для отправки уведомлений в случае завершения оптимизации. Что может быть весьма актуально при использовании арендованных многопроцессорных серверов.

  • p_SF_Debug(0) - если параметр равен 1, в лог TradeStation выводится отладочная информация и производится коррекция результирующей доходности стратегии не зависимо от того, выполняется оптимизация или нет. Включение этого режима позволяет проверить работу коррекции итогового дохода стратегии и разобраться с проблемой, если таковая возникнет
Управление возможностью открытия позиции и числом входов по одному и тому же сигналу.
  • p_IgnoreMP(1) - 0 - открывать новые позиции только когда нет открытых позиций.
    1 - игнорировать наличие открытых позиций.

  • p_MaxEntryCount(4) - допустимое число входов по одному базовому сигналу. Например, если позиция открывается на пробитии экстремума и выбивается из-за короткого стопа, можно установить p_MaxEntryCount=4, чтобы было осуществлено 4 попытки входа в направлении базового сигнала.

  • p_MaxEntryMode(0) - режим вычисления цены для повторного входа:  0 - максимальный/минимальный экстремум с момента открытия позиции, 1 - максимальный/минимальный экстремум за заданное параметром p_MaxEntBars число баров, 2 - исходная цена входа.

  • p_MaxEntryBars(0) - число баров для вычисления уровня повторного входа
Управление использованием истории цен. Обратите внимание: в случае пропуска истории в объёме года или более, при включении оптимизации с p_SF_AllYear=1, пропуск заданного промежутка истории не приведёт к блокировке работы стратегии. Пропуск истории будет корректно учтён во время генетической оптимизации с собственным критерием оптимизации.
  • p_StartDate(0) - дата начала торговли в формате TradeStation. До достижения этой даты сигналы для открытия позиций игнорируются.

  • p_SkipDate1(-1081020) - дата начала пропуска истории. Если параметр меньше нуля, он игнорируется.

  • p_SkipDate2(-1091020) - дата окончания пропуска истории. Если параметр меньше нуля, он игнорируется.

  • p_SkipLastBarOnChart(1) - 1 - последний бар чарта игнорируется. Это необходимо в некоторых случаях при синхронизации экспорта торговых сигналов
Использование тиковых баз. В последних версиях стратегии эта группа сигналов отключена.
  • p_TickBase(0) - Флаг использования тиковой базы для установки ордеров по точным цена. Если p_TickBase=1, используется тиковая база. Если p_TickBase=0, тиковая база не используется.

  • p_TickBaseFile(Getsymbolname) - название файл базы данных с тиками без расширения. Например: p_TickBaseFile(Getsymbolname) или p_TickBaseFile("XAU-D"). Расположение файлов с тиковыми базами устанавливается в параметрах Puls.

  • p_TickDebug(0) - флаг режима отладки установки ордеров на базе цен тиковой базы.
p_Trade - экспорт торговых приказов в текстовый файл для автоматизации торговли в MetaTrader4 с помощью советника Gelium_2MT.
  • p_TradeExport(0) - 1 - выполнять экспорт торговых приказов в текстовый файл. 0 - не выполнять.

  • p_TradeSymbol(gp_GetSymbolName) - название торгового символа.

  • p_TradeFile("c:\Chart\Trade\Test") - путь и название файла сигнала без расширения. В качестве расширения к названию файла будет добавлен текст ".Signal". В данном примере будет производиться экспорт в файл "c:\Chart\Trade\Test.Signal".

  • p_TradeStart(0) - дата начала торговли в формате TradeStation. Если p_TradeStart меньше первого бара графика, торговля ведётся без ограничений.

  • p_TradeSumPlus(0) - зарезервировано на будущее.

  • p_TradeOpenSpread(1) - использовать спред для вычисления цены ордера ASK. В качестве спреда берётся комиссия, установленная для стратегии в параметрах TradeStation.

  • p_TradeShow(1) - 1 - показывать окно с информацией об изменениях ордеров.

  • p_TradeMail(1) - 1 - отправлять уведомление о наличии изменений на электронную почту с помощью утилиты MailSender.

  • p_TradeMinChange(1) - Минимальное изменение цены ордера в пунктах, ведущее к созданию уведомления.
Исходные цены баров, которые используются внутри стратегии. При необходимости можно использовать любую серию данных. Например, все расчёты можно делать на базе O Data2, H Data2, L Data2, С Data2, а торговля будет вестись на главной серии Data1.
  • p_O(O) - Open.

  • p_H(H) - Heigh.

  • p_L(L) - Low.

  • p_C(C) - Close.
p_Excel - экспорт статистики работы стратегии в Excel. Ручное сохранение в Excel выполняется с помощью кнопки Save, которая расположена сверху на информационной панели.

  • p_Excel_WorkBook("c:\Chart\Reports\GT_Reports.xlsm") - рабочая книга Excel с поддержкой макросов.

  • p_Excel_Sheet("Test") - рабочий лист для записи информации.

  • p_Excel_Comment(1) - 1 - осуществлять запись сжатого комментария с основными параметрами стратегии.

  • p_Excel_Optim(0) - 1 - делать экспорт статистики во время оптимизации стратегии. 0 - не делать экспорт во время оптимизации.

  • p_Excel_OverHelper(0) - 1 - отправка данных в Excel через экспериментальную версию Gelium_Helper. 0 - отправка данных напрямую в Excel. Пока лучше делать экспорт данных напрямую в Excel после завершения оптимизации.

  • p_Excel_OverText(0) - 1 - экспериментальный экспорт данных в текстовый файл. 0 - экспорт напрямую в Excel. Пока лучше делать экспорт данных напрямую в Excel после завершения оптимизации.

  • p_Excel_TextFile("c:\GT_Op.txt") - Файл для записи данных в текстовом формате.

  • p_Excel_MinYear(-100) - сохранять данные только если доходность в процентах худшего года интервала настройки больше значения p_Excel_MinYear.

  • p_Excel_MinProfit(0) - сохранять данные только если общая доходность интервала настройки больше значения p_Excel_MinProfit.

  • p_Excel_OOSProfit(0) - сохранять данные только если минимальная доходность худшего года интервала проверки больше значения p_Excel_OOSProfit.

  • p_Excel_SparkLine(0) - 1 - экспортировать данные для построения в Excel SparkLine. Экспорт этих данных замедляет экспорт в Excel.

  • p_Excel_AutoSave(0) - 1 - автоматически сохранять рабочую книгу Excel после экспорта данных.
p_Info - информационная панель.
  • p_Info(1) - тип вывода результатов стратегии на график справа от текущей цены:
    • p_Info = 0 - отчет не выводится.
    • p_Info = 1 - отчет выводится на график.
    • p_Info = 2 - отчет выводится в отдельную панель, вне окна графика, справа.
    • p_Info > 20 - отчет выводится и текст отчета выводится с отступом p_Info-баров справа от последнего бара на графике.
    В TradeStation расположение отчета масштабируется при перетягивании или сжатии графика по вертикали.



    В первых строках отчета выводится название стратегии и параметры актуальных ордеров. Далее выводится таблица с результатами работы стратегии по годам:
    • Yaer - год.
    • Profit - доход стратегии в долларах.
    • Profit% - годовой доход относительно начального капитала 10 000$.
    • MaxDD % - максимальная просадка относительно начального баланса или максимального дохода в течение года.
    • TT - количество сделок.
    • Win% - количество выигрышных сделок.
    После таблицы с результатами торговли находится список используемых параметров. Параметры с нулевыми значениями, как правило, не используются и в список не выводятся.p_Info_Font
    ("Lucida Console")Шрифт для отображения текста отчета.p_Info_FontSize(8)Размер шрифт для отображения текста отчета.

  • p_Info_Width(550) - ширина информационной панели.

  • p_Info_Orders(1) - 1 - отрисовывать линии ордеров и позиций.p_Info_Slippage(0)Если p_Info_Slippage > 0, на график выводятся исходные уровни ордеров, которые можно сравнить с исполнением с учетом проскальзываний:


  • p_Color1(Black) - обычный цвет текста или цвет линий входа на графике.

  • p_Color2(Blue) - выделяемый цвет текста.

  • p_Color3(Red) - цвет текста для убыточных позиций или уровня стопа.
p_Debug - вывод отладочной информации.
  • p_DebugXXX - Серия параметров, включающий вывод отладочной информации. Подробную информацию не привожу, так как эти параметры нужны только в случае проблем со стратегией.

Вопросы и ответы.

  • Почему не срабатывает продажа по второй модели, с пробитием цены 1352.1?


    Ведь окончание этой модели захватывает участок цен для продажи.


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

    В вашем случае необходимо создать вторую модель для входа ниже уровня 1352.1. Для этого необходимо перенести модель в конец дня заключения первой сделки продажи:


    Далее повторно создается модель для продажи ниже 1352.1 и она делается главной, чтобы ее целевой уровень использовался последующими моделями:

Похожие материалы по тэгам

Наверх