Расчетное время чтения: 7 мин

PrescienTrader включает в себя функции с несколькими таймфреймами, которые интегрируются с мощными функциями анализа и тестирования на истории от AmiBroker. Он также включает в себя сценарии AFL, которые демонстрируют, как использовать функции анализа. Для функций анализа требуется подписка PrescientAPI Professional.

В следующем видео показано, как настроить и запустить исследование. Пожалуйста, посмотрите видео, затем вернитесь к этой статье, чтобы продолжить обучение.

Thumbnail

Исследование

Когда вы запускаете исследование, используя включенный сценарий тестирования BackcienTrader, AmiBroker просматривает указанный вами список инструментов и указанный диапазон дат. Он генерирует строку для каждой комбинации инструмента и даты. В приведенном выше примере мы просто анализируем один инструмент (CHF / JPY) для диапазона дат с 1 октября по 31 декабря 2018 года.

Скрипты выводят следующие столбцы исследования:

  • Символ тикера
  • Дата / время
  • Open, High, Low, Close, Volume, Открытый интерес
  • Сохраненный - Этот столбец подсвечивается желтым цветом для любой строки с использованием сохраненных настроек параметров. При сохранении параметров в PrescienTrader параметры сохраняются только для выбранного инструмента и таймфрейма. Это позволяет использовать пользовательские настройки параметров для каждого инструмента и каждого таймфрейма. Когда вы запускаете исследование, PrescienTrader автоматически применяет любые пользовательские настройки параметров. Желтое выделение в столбце Сохранено напоминает, что в строке используются сохраненные настройки, а не настройки, введенные вами в окне «Параметры».
  • PL Slope - Это указывает на наклон тренда Presной линии. Положительные склоны предсказывают восходящий тренд, в то время как отрицательные склоны предсказывают нисходящий тренд.
  • FLD Score - Сумма FLD для всех действительных циклов, умноженная на силу или амплитуду каждого цикла, в зависимости от настройки PL. Положительные значения указывают, что рынок находится в циклическом восходящем тренде. Отрицательные значения указывают, что рынок находится в циклическом нисходящем тренде.
  • Trend Bar - Относительный номер бара в пределах текущего прогнозируемого тренда. Первый бар в тренде - это ноль.
  • Трендовые бары - Общее количество баров в текущем прогнозируемом тренде.
  • Trend Pct - Процент завершения текущего прогнозируемого тренда. Например, если Trend Bar = 5 и Trend Bars = 10, Trend Pct будет 50%. Обратите внимание, что Trend Pct никогда не достигнет 100%, потому что это будет означать, что начался новый тренд. В точке перекрытия между старым трендом и новым трендом Trend Pct будет 0%. В дополнение к числовому отображению в этом столбце также отображается гистограмма, которая с течением тренда меняет цвет с зеленого на красный.
  • действие - Это сигнал Buy / Sell / Short / Cover для текущей строки. Сигналы, генерируемые из включенных скриптов, просто основаны на уклоне тренда. Когда уклон тренда положительный, он отображает сигнал на покупку, а когда уклон тренда отрицательный, он отображает короткий сигнал. Это задумано как очень простой пример о том, как вы могли бы начать строить торговую систему, используя индикаторы PrescienTrader. НЕ используйте эти примеры сигналов для реальной торговли, так как вы, скорее всего, потеряете деньги! Идея состоит в том, чтобы разработать свои собственные торговые системы, используя наши индикаторы и, возможно, другие индикаторы, а затем тщательно протестировать систему. Если у вас есть действующая система, прошедшая тестирование, вы можете подключить эту систему к столбцу «Действие» для отображения ваших торговых сигналов.

Backtesting

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

  • ptStaticPL
  • ptStaticPLSlope
  • ptStaticFLDScore
  • ptStaticTrendBar
  • ptStaticTrendBars
  • ptStaticTrendPct
  • ptStaticFrequencies (Matrix)
  • ptStaticSlopes (Matrix)
  • ptStaticFLDPrices (матрица)

Если вы выполняете анализ для нескольких таймфреймов, функции будут создавать отдельный набор массивов и матриц для каждого таймфрейма. Имена будут такими же, как указано выше, за исключением того, что каждое имя будет иметь суффикс HTPx, где x представляет более высокий индекс периода времени. Например, будут названы массивы и матрицы для первого более высокого периода времени, ptStaticPLHTP1, ptStaticPLSlopeHTP1 и т. Д.… Массивы и матрицы для второго более высокого периода времени будут названы ptStaticPLHTP2, ptStaticPLSlopeHTP2 и т. Д.

Тестировщик AmiBroker очень мощный. Он поддерживает реальное тестирование портфеля, тестирование на шаг вперед, моделирование по методу Монте-Карло, тестирование на нескольких таймфреймах, пирамиду и масштабирование, несколько валют и другое. Все эти функциональные возможности и возможности доступны для тестирования и вывода из PrescienTrader. Обсуждение деталей тестирования на истории в AmiBroker выходит за рамки этой статьи. Для этого лучше всего прочитать документацию AmiBroker.

Параметры и переменные параметров

При запуске анализа PrescienTrader будет использовать значения параметров, указанные вами в окне «Параметры». Однако, если вы ранее сохранили настройки инструмента для текущего рынка и таймфрейма, сохраненные настройки переопределяют настройки, отображаемые в окне параметров, Это позволяет выполнять анализ портфеля с использованием различных значений параметров для каждого инструмента в портфеле. Когда вы просматриваете окно «Параметры», оно отображает последние введенные вами настройки, которые не обязательно являются сохраненными настройками. Нажмите на Сбросить все кнопка для отображения сохраненных настроек прибора.

Кроме того, вы можете сохранить настройки по умолчанию. В отличие от сохраненных настроек инструмента, сохраненные настройки по умолчанию НЕ переопределить отображаемые настройки. Это позволяет вам воспользоваться тем, что AmiBroker автоматически запоминает последние введенные вами настройки, поэтому, если вы тестируете определенный набор настроек несколько раз, вам не нужно вводить их повторно каждый раз. Однако вы всегда можете вернуться к сохраненным настройкам по умолчанию, нажав Сбросить все кнопка. Имейте в виду, что сохраненные настройки инструмента имеют приоритет над сохраненными настройками по умолчаниютак что если вы нажмете Сбросить все и он не отображает ваши настройки по умолчанию, это означает, что вы сохранили настройки инструмента для текущего отображаемого инструмента и таймфрейма.

Наконец, вы можете переопределить большинство параметров, установив переменную AFL, соответствующую каждому параметру. Доступные переменные включают в себя:

  • ptPolarity (0 = положительный, 1 = отрицательный)
  • ptPLBasis (0 = амплитуда, 1 = сила)
  • ptLookbackRange
  • ptMinFrequency
  • ptMaxFrequency
  • ptHarmonicFilter
  • ptMinConfidence
  • ptBestXCycles

Каждая переменная также имеет более высокие вариации периода времени для анализа нескольких таймфреймов. Чтобы установить более высокую переменную периода времени, добавьте HTP1, HTP2, HTP3 и т. Д. К имени переменной. Например:

  • ptMinFrequencyHTP1
  • ptMaxFrequencyHTP2
  • ptLookbackRangeHTP3
  • ptHarmonicFilterHTP2
  • ptMinConfidenceHTP1
  • ptPLBasisHTP4

Переменные всегда имеют приоритет над настройками окна параметров и любыми сохраненными настройками. Если вы установите переменную параметра в AFL, соответствующий параметр исчезнет из окна «Параметры». Вы должны установить все свои переменные параметра ДО вызова PrescientAnalysis или PrescientAnalysisPrepare функции.

Однопоточный и многопоточный анализ

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

PrescienTrader Backtester Script - однопоточный раздел

Пример сценария анализа называется PrescienTrader Backtester, Если вы просмотрите этот скрипт, вы увидите, что он содержит однопоточный раздел и многопоточный раздел, который можно переключать между настройками параметров. Секция однопотокового анализа содержит одну строку кода:

PTBacktest ();

The PTBacktest Функция не принимает параметров, потому что вы настраиваете все параметры в окне Параметры. Когда он выполняется, он создает запрос API, отправляет запрос в PrescientAPI, анализирует ответ, выводит результаты в столбцы исследования и генерирует массивы AFL, описанные выше.

Чтобы выполнить анализ нескольких таймфреймов, просто вызовите функцию PrescientAnalysis несколько раз. Например, если вы хотите проанализировать базовый период времени и два более высоких периода времени, вы должны использовать следующий код:

PTBacktest (); PTBacktest (); PTBacktest ();

Каждый экземпляр функции создает другой таймфрейм в окне «Параметры», поэтому в приведенном выше примере окно «Параметры» будет содержать настройки для базового периода времени, HTP1 и HTP2. Не путайте многопоточность с мульти-таймфреймом; это две совершенно разные концепции. Многопоточность означает выполнение более одного анализа за раз, например, анализ портфеля инструментов. Мульти-таймфрейм относится к анализу каждого инструмента за более чем один таймфрейм. Например, вы можете анализировать S & P 500 на дневной, недельный и месячный периоды. В этом примере вам также будет полезно работать в многопоточном режиме, поскольку он будет анализировать все три таймфрейма одновременно. Однако вы можете запустить анализ нескольких таймфреймов в однопоточном режиме, и в этом случае он будет анализировать таймфреймы последовательно.

Сценарий анализа PrescienTrader - многопоточный раздел

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

postVars = PTBacktestPrepare ();
if (StrLen (postVars)> 0) {
    ih = InternetPostRequest ("https://api.prescientrading.com", postVars);
    if (ih) {
        ответ = "";
        while ((line = InternetReadString (ih))! = "")
            ответ + = строка;
        PTBacktestExecute (ответ);
        InternetClose (Ih);
    }
    еще {
        msg = "Нет ответа от API - Возможен тайм-аут или проблема с подключением к Интернету - Ожидание 60 секунд";
        _TRACE (MSG);
        PTLogToFile (MSG);
        PTWait (60);
    }
}

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

Давайте разберем это шаг за шагом ...

  1. На первом этапе мы вызываем PTBacktestPrepare и присваиваем результат переменной postVars. Эта функция использует параметры, определенные в окне «Параметры», для генерации данных в правильном формате для запроса API.
  2. На втором этапе мы делаем запрос API с использованием функций InternetPostRequest и InternetReadString. Поскольку он взаимодействует с удаленным сервером, это самая медленная часть процесса и, следовательно, больше всего выигрывает от работы в нескольких потоках.
  3. На последнем этапе мы запускаем PTBacktestExecute для данных, возвращаемых из API. Эта функция анализирует данные, выводит результаты в столбцы исследования и генерирует массивы AFL, описанные выше.

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

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

оптимизация

Оптимизация - это процесс точной настройки параметров для достижения наилучших результатов для рынка или группы рынков. AmiBroker позволяет оптимизировать до 64 параметров одновременно, поддерживает оптимизацию портфеля и включает в себя три интеллектуальных механизма оптимизации, Оптимизация стандартного роя частиц, Tribes и CMA-ES.

PrescienTrader поддерживает оптимизацию всех своих параметров без необходимости написания кода для каждого параметра. Чтобы установить параметры оптимизации, нажмите и удерживайте сдвиг ключ и нажмите на значок панели инструментов параметров. Откроется окно параметров оптимизации, где вы можете ввести ассортимент (От и До) для каждого параметра и шаг для числовых параметров. Диапазон представляет диапазон оптимизации. Например, чтобы оптимизировать диапазон просмотра, вы можете выбрать что-то вроде:

Смотреть диапазон от: 5
Диапазон просмотра до: 10
Шаг диапазона просмотра назад: 1

Ввод этих параметров оптимизировал бы диапазон просмотра от 5 до 10 с шагом 1, поэтому он будет проверять значения 5, 6, 7, 8, 9, 10.

логирование

При запуске анализа PrescienTrader постоянно выводит информацию в окно трассировки. Каждая строка содержит следующую информацию:

  • Тип анализа (тестирование, оптимизация, исследование и т. Д.)
  • Символ анализируемого инструмента
  • Период времени (ежедневно, еженедельно, ежемесячно и т. Д.)
  • Ряд данных (Закрыть, Среднее и т. Д.)
  • Значения параметров:
    • полярность
    • PL Basis
    • Минимальная частота
    • Максимальная частота
    • Диапазон просмотра
    • Фильтр гармоник
    • Мин Уверенность
    • Best X Cycles

Для каждого значения параметра в скобках указывается его источник. Источник может быть одним из следующих:

  • Param - значение было взято из окна параметров.
  • Opt - значение было сгенерировано на основе параметров оптимизации, указанных в окне параметров.
  • Сохранено - сохраненное значение для этого инструмента и период времени.
  • AFL - значение было взято из переменной AFL, соответствующей параметру.
  • Array - значение было взято из массива AFL. Поскольку массивы могут использовать разные значения для каждой панели, никакие значения не будут отображаться.

Переменные AFL имеют наивысший приоритет, затем следуют сохраненные значения, а затем значения, указанные в окне «Параметры».

В дополнение к окну Trace, вы можете включить ведение журнала в файл, введя путь к файлу в окне Parameters.

Эта статья была полезной?
нелюбовь 0
Взгляды: 500
ВЕЧНО СВОБОДНЫЙ
Ежедневные торговые сигналы
PrescientSignals
ПОДПИСЫВАТЬСЯ
Подпишитесь, чтобы ежедневно получать БЕСПЛАТНЫЕ торговые сигналы на ваш электронный почтовый ящик
Бесплатные сигналы задерживаются на одну неделю. Это позволяет без риска оценить нашу услугу PrescientSignals, сравнивая прогнозы предыдущей недели с фактическими результатами.
ВЕЧНО СВОБОДНЫЙ
Ежедневные торговые сигналы от PrescientSignals
ПОДПИСЫВАТЬСЯ
Подпишитесь, чтобы ежедневно получать БЕСПЛАТНЫЕ торговые сигналы на ваш электронный почтовый ящик
Бесплатные сигналы задерживаются на одну неделю. Это позволяет без риска оценить нашу услугу PrescientSignals, сравнивая прогнозы предыдущей недели с фактическими результатами.