Каковы самые большие трудности в обучении новичков в количественном и программном трейдинге? В общем, причин несколько:
- Дефицит базовых знаний: в том числе основных концепций, рыночных правил, торговых знаний, стратегического мышления и т. д.
- Плохая основа программирования: включая логическое выражение, разработку и написание программы, отладку программы и исправление ошибок.
- Слабое логическое мышление: процесс мышления может легко привести к путанице, и чем больше вы думаете, тем больше вы запутываетесь.
- Трудности самообучения: при столкновении с проблемами трудно понять, с чего начать их решение, и направление поиска проблемы может быть даже неясным.
С развитием технологии ИИ можно найти решения этих проблем в некоторой степени. Популярный в последнее время ChatGPT можно использовать в качестве инструмента для обучения, исследований и творчества в области количественного трейдинга. Благодаря новому обновлению платформы FMZ для редактора стратегий и интеграции с ChatGPT значительно повышается производительность количественного анализа. Давайте вместе изучим новые функции редактора стратегий FMZ!
Используйте ChatGPT для помощи в разработке кода
Хотя текущие возможности ChatGPT уже очень сильны, и он может очень хорошо понимать человеческие вопросы, ответы, которые он предоставляет, по-прежнему очень чувствительны к таким факторам, как полнота и точность описания вопроса. Если описанный сценарий или содержание вопроса неточны, ChatGPT может не дать точного ответа. Поэтому при использовании его для решения некоторых задач необходимо стараться правильно и полно их излагать.
Далее мы будем использовать функцию ChatGPT редактора стратегии платформы FMZ для решения проблемы разработки кода. Авторизуйтесь на платформе FMZ и перейдите на страницу редактирования стратегии.
Вызов ChatGPT
Щелкните правой кнопкой мыши пустое место, выберите параметр ChatGPT и нажмите, чтобы вызвать ChatGPT
, или используйте Ctrl+K, чтобы вызвать ChatGPT.
Техника постановки вопросов
Если я сейчас новичок в количественной торговле, у меня есть требование:
Используйте одноминутную K-линию для синтеза данных K-линии за любой период.
Как новичок, мои способности программирования плохи, и я действительно не знаю, как написать такой алгоритм. Раньше я мог только искать информацию и обращаться за помощью к специалистам. Теперь, с помощью ChatGPT, я могу запросить ответы напрямую. Конечно, как упоминалось выше, прямое описание требования: «Использовать данные K-линии за одну минуту для синтеза данных K-линии за любой период». GPT вряд ли даст вам 100% полезный ответ, поэтому вам все равно нужно постараться, чтобы подробно описать проблему. Взяв требование в качестве примера, я постоянно корректировал свои вопросы и задавал много раз, прежде чем получил полезный ответ, который соответствовал моим потребностям.
Итак, давайте сделаем это описание требования немного более полным:
На платформе FMZ вызов функции exchange.GetRecords(60) может получить данные K-линии за одну минуту. Структура данных следующая: [{
Time : Метка времени в миллисекундах, // Время начала период
Открытие: 1000,
Максимум: 1500,
Минимум: 900,
Закрытие: 1200,
Объем: 1000000
}, …]
Пожалуйста, разработайте алгоритм, который использует данные K-линии за одну минуту для синтеза данных K-линии за любую минуту. Для периодов, которые можно разделить на 60 минут, начните отсчет с полной точки 0 минут. Реализуйте его на языке Javascript, напишите этот алгоритм в виде отдельной функции, протестируйте его в функции main() и используйте $.PlotRecords(KLineData, «имя») для рисования.
После вызова ChatGPT заполните вопрос.
ChatGPT начинает работать.
Подождите, пока он закончит писать.
Иногда ChatGPT сыграет шутку и обернет код symbols, which means that the wrapped content is code in markdown. So we just need to delete the first and last lines. Because I asked it to use
$.PlotRecords(KLineData, 'name')``` для рисования, стратегия должна ссылаться на библиотеку рисования для рисования. Целью рисования является проверка правильности данных K-линии, синтезированных кодом ChatGPT.
Библиотека сюжетов (библиотека шаблонов JavaScript) общедоступна и может быть скопирована в вашу собственную библиотеку стратегий на Strategy Square. После копирования в собственную библиотеку стратегий ваша стратегия JavaScript может ссылаться на нее. Адрес Сюжетной Библиотеки
Хорошо, вернемся к теме, код, предоставленный ChatGPT, можно протестировать напрямую. Я установил период K-линии по умолчанию для системы тестирования на исторических данных на 5 минут для сравнения с диаграммой K-линии, построенной на основе данных K-линии, рассчитанных с помощью алгоритма ChatGPT.
Бэктест показывает:
Предварительно кажется, что алгоритм, предоставленный ChatGPT для синтеза 5-минутной K-линии из 1-минутной K-линии, верен.
Полный код, написанный ChatGPT:
/* Synthesize arbitrary minute K-line data @param {Array} records - One-minute K-line data @param {Number} period - Synthetic period, unit in minutes @return {Array} - Synthesized K-line data */ function composeKLineData(records, period) { var result = []; var index = 0; var open = records[0].Open; var high = records[0].High; var low = records[0].Low; var close = records[0].Close; var volume = records[0].Volume; var time = records[0].Time - records[0].Time % (period * 60 * 1000); for (var i = 1; i < records.length; i++) { var record = records[i]; if (record.Time < time + period * 60 * 1000) { high = Math.max(high, record.High); low = Math.min(low, record.Low); close = record.Close; volume += record.Volume; } else { result[index] = { Time: time, Open: open, High: high, Low: low, Close: close, Volume: volume }; index++; open = record.Open; high = record.High; low = record.Low; close = record.Close; volume = record.Volume; time = record.Time - record.Time % (period * 60 * 1000); } } result[index] = { Time: time, Open: open, High: high, Low: low, Close: close, Volume: volume }; return result; } function main() { var records = exchange.GetRecords(60); var kLineData = composeKLineData(records, 5); // Synthesize 5-minute K-line data $.PlotRecords(kLineData, "KLineData"); }
Объясните код
Интегрированный ChatGPT FMZ не только помогает вам писать код, но и помогает вам объяснять код. Выберите функцию composeKLineData
в коде, только что написанном ChatGPT, щелкните правой кнопкой мыши, чтобы открыть меню:
Дайте предложения, оптимизируйте код
Даже ChatGPT может предоставить предложения по оптимизации и оптимизированный код.
Другие функции, добавленные в редактор
Обновление редактора FMZ, помимо добавления функции ChatGPT. Он также оптимизирует и расширяет возможности онлайн-программирования, добавляя множество удобных функций.
Просмотр комбинаций клавиш
Щелкните правой кнопкой мыши в пустом месте или при выборе кода, чтобы отобразить меню.
Он отображает различные сочетания клавиш.
Изменить имя переменной
Переименуйте символ, чтобы изменить имя локальной переменной.
Он изменил только имя переменной records
в функции main
на картинке выше.
Изменить весь тот же контент
Изменить все вхождения, выбрать имя переменной, слово и одновременно редактировать все одинаковое содержимое в тексте.
Форматирование (оптимизация кода, автоматическое выравнивание формата)
Format Selection, отформатируйте выбранный код.
Форматировать документ, форматировать весь код.
Перейти к определению, ссылке
Перейти к определению: перейти к определению.
Перейти к ссылкам: перейти к ссылкам.
Перейти к символу…: перейти к именам переменных, именам функций и т. д.