В процессе загрузки ресурсов... загрузка...

Визуализационный модуль построения торговой стратегии - первое знакомство

Автор:FMZ~Lydia, Создано: 2022-12-12 16:50:29, Обновлено: 2023-09-20 09:44:29

img

Визуализационный модуль построения торговой стратегии - первое знакомство

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

Давайте вместе займемся визуальным программированием количественной торговой стратегии!

Визуальное программирование первоначального FMZ Quant

После входа вhttps://www.fmz.com, зарегистрируйте свою учетную запись (если вы уже зарегистрированы, войдите непосредственно) и нажмите: панель управления -> Стратегия -> Добавить стратегию.

img

Мы видим первоначальную стратегию визуализации. Он используется только для вывода информации об активах счета на выбранную по умолчанию биржу (первый объект обмена, добавленный на бэкстестесте или роботе). (Смотрите рисунок ниже)

img

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

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

img

  1. Настройка и регулировка модуля Некоторые модули имеют некоторые специальные регулируемые области, например:

img

Вы можете перетащить модуль Item слева к модулю Add, чтобы добавить положение тенона (конкавы), тем самым добавив положение для скрещивания текста. Таким образом, нажмите на ручку, чтобы настроить модуль.

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

img

Модуль расчета квадратного корня выводит результаты расчетов этого модуля.

img

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

img

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

img

  1. Операция Модуль можно нажать и перетащить левой кнопкой мыши. Модули можно скопировать с помощью клавиатуры ctrl+c и вставить с помощью клавиатуры ctrl+v, что так же удобно, как копирование и вставка кода или текста. Область работы может быть масштабирована с помощью колеса мыши, и все модули будут масштабироваться больше или меньше. Нажмите и перетащите пустое положение в зоне действия, чтобы переместить зону действия. Мусорный бак справа записывает недавно удаленные модули. Самое важное, что после сплицации стратегии модуля, не забудьте нажать Сохранить.

Введение в модуль инструментов визуализации

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

Есть 11 категорий.

img

Модуль использования:

img img img

  1. Выходная информация: Этот модуль обычно используется вместе с модулем текстового класса, как показано ниже:

img

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

img

Обратное тестирование:

img img

Как код языка JavaScript:

function main(){
    Log("Hello, Blockly!")
}
  1. Пуш на WeChat: Этот модуль имеет тот же внешний вид, что и выходная информация, которая отличается от той, которая одновременно отправляет информацию на WeChat, связанную с текущим счетом.

img

Как код языка JavaScript:

function main () {
Log("WeChat Push!@")
}
  1. Бросить исключение Выброс модуля исключения заставляет программу выдавать ошибку, а затем программа останавливает исполнение (без написания кода обработки исключений).

img

Аналогичным образом, в стратегии JavaScript основная функция выполняет функцию string to output напрямую.

function main () {
    throw "The first sentence throws an exception to stop the program!"
}

Результаты обратных испытаний:

img img

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

  1. Спать. Модуль сна

img

Как в стратегии JavaScript:

function main () {
    Sleep(1000 * 5)
}

Испытайте модуль сна:

img

Результаты обратных испытаний:

img

  1. Отзывы о печати

img

Этот модуль, как и API-функция LogProfit на FMZ Quant Trading Platform, которая печатает журнал возвратов и автоматически рисует кривую возврата в соответствии с входными параметрами.

Например:imgИсполнение обратного тестирования показано на рисунке ниже:

img

Соответствующий код стратегии JavaScript выглядит следующим образом:

function main () {
    LogProfit(1)
    Sleep(1000 * 5)
    LogProfit(2)
    Sleep(1000 * 5)
    LogProfit(3)
    Sleep(1000 * 5)
    LogProfit(2)
    Sleep(1000 * 5)
    LogProfit(5)
}

Он может быть скрещен в любом положении, где вы хотите вывести информацию возврата.

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

Испытание:imgРезультаты обратных испытаний:

img

Мы видим, что комбинация модулей, состоящая из print returns и sleep будет выполняться непрерывно после завершения модуля петли.

  1. Исполнение петли каждые N секундimgИспользование этого модуля в основном то же самое, что и модуля петли. Единственное отличие в том, что модуль имеет свой собственный сон.img

  2. Точная обработкаimgЭтот модуль может быть использован, когда переменный модуль или числовое значение необходимо контролировать точность. Числовое значение входной части параметра будет выводиться как числовое значение указанной десятичной запятой в соответствии с настройками.

Например, точная обработка выполняется на значении 3.1415926535897.

img

Дисплей обратного тестирования:

img

  1. Прочистить журналimg

Он используется для очистки журналов. Некоторые журналы могут храниться в соответствии с параметрами ввода. Как в документе API:

LogReset()
  1. Чистый журнал возвращенияimg

Он используется для очистки журналов возврата. Как в документе API:

LogProfitReset()

Ниже приведены некоторые часто используемые модули инструментов

  1. Модуль функции для получения определенного атрибута рынкаimgЭтот модуль инструмента необходимо использовать вместе с модулем котировок в типе модуля транзакции, как показано на рисунке:imgИспользовать модуль выходной информации для вывода последней цены транзакции последнего рынка тикеров:imgДисплей обратного тестирования:img

Как код стратегии JavaScript:

function main () {
    Log(exchange.GetTicker().Last)
}
  1. Модуль, получающий атрибут строки данных K-линииimgЭтот модуль также должен использоваться вместе с модулем сбора данных K-линии в типе модуля транзакций.

Сначала мы создаем модуль переменной под названием K-линия.imgЗатем мы получаем данные K-линии, используем модуль данных K-линии для его получения и присваиваем значение модулю переменной: K-линия.imgЗатем мы используем модуль длины списка в List Module Type для получения длины модуля переменной K-линии, который используется для указания, какая строка на K-линии для получения данных.imgСложите их вместе, как показано на рисунке:img

Временная марка последней строки K печатается при запуске обратного теста.img

  1. Модуль, получающий данные заказа в книге заказовimgОн также должен использоваться вместе с модулем Get Depth Data в Transaction Module Type.imgИндекс устанавливается на 0, а ордер на продажу устанавливается для получения информации об одном ордере на продажу.

img

Как код стратегии JavaScript:

function main () {
    Log(exchange.GetDepth().Asks[0])
}
  1. Модуль для получения атрибута в информации об активахimgЭтот модуль необходимо использовать вместе с модулем получения информации об активах.imgНапример: напечатать наличную валюту текущего счетаimgДисплей обратного тестирования:img

Как код стратегии JavaScript:

function main () {
    Log(exchange.GetAccount().Stocks)
}
  1. Модуль для получения атрибута в данных порядкаimgЭтот модуль используется для получения значения атрибута в данных о заказах, например цены или количества продажи в книге заказов (пример No 13).img

Результаты обратных испытаний:img

Как код стратегии JavaScript:

function main () {
    Log(exchange.GetDepth().Asks[0].Price)
}

Он также может быть использован для получения атрибута в информации о заказе, возвращенной модулем Query Order Details Module (объясняется в расширенной главе).

  1. Модуль для получения атрибутов позиции в информации о позицииimgАналогичным образом, он должен использоваться вместе с Get Futures Position Module. Обратите внимание, что данные о позиции, возвращаемые Get Futures Position Module, представляют собой массив (список), который содержит позиции в разных контрактах и направлениях. Поэтому при использовании индекс должен быть указан.

Учившись так много, давайте объединим операции хеджирования, то есть хеджирования как краткосрочных, так и форвардных контрактов.

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

img

Результаты обратных испытаний:

img

Примеры стратегий визуализации:

https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318Более подробные стратегии приведены в:https://www.fmz.com/square

Другие изделия из этой серии

-Визуализационный модуль для создания торговых стратегий - Подробно (https://www.fmz.com/digest-topic/9509) -Визуализационный модуль для создания торговой стратегии - расширенное понимание (https://www.fmz.com/bbs-topic/9815)

Заскучающее программирование можно легко завершить с помощью строительных блоков.


Связанные

Больше