Для начинающих в количественной торговле и программатической торговле, какие самые большие трудности в обучении?
С развитием технологий ИИ решения этих проблем могут быть найдены до некоторой степени.ChatGPTС помощью новой платформы FMZ для обновления редактора стратегии и интеграции с ChatGPT, она значительно улучшает производительность количественной оценки.новые функции редактора стратегии FMZВместе!
Хотя современные возможности ChatGPT уже очень мощные, и он может очень хорошо понять человеческие вопросы, ответы, которые он предоставляет, все еще очень чувствительны к таким факторам, какполнота и точность описания вопроса. Если описанный сценарий или содержание вопроса неточны, ChatGPT может не быть в состоянии дать идеальный ответ. Поэтому, используя его для решения некоторых проблем, необходимо попытаться выразить их правильно и полностью.
Далее мы будем использовать функцию ChatGPT редактора стратегии платформы FMZ для решения проблемы дизайна кода.
Правый клик на пустое место, выберите ChatGPT опцию и нажмите, чтобы вызватьChatGPT
, илиИспользуйте Ctrl+K для вызова ChatGPT.
Если я начинаю торговать количественно, у меня есть одно требование:
Используйте одноминутную К-линию для синтеза любых данных о периоде К-линии.
Как новичок, мои навыки программирования плохие, и я действительно не знаю, как написать такой алгоритм. В прошлом я мог только искать информацию и просить помощи у экспертов. Теперь, с ChatGPT, я могу спросить его о ответах напрямую. Конечно, как упоминалось выше, описывая требование напрямую:Использовать одноминутные данные K-линии для синтеза любых данных K-линии периода
Так что давайте сделаем это описание требований немного более полным:
> On the FMZ platform, calling the exchange.GetRecords(60) function can obtain one-minute K-line data, and the data structure is: [{
> Time : Millisecond timestamp, // Start time of the period
> Open : 1000,
> High : 1500,
> Low : 900,
> Close : 1200,
> Volume : 1000000
> }, ...]
> Please design an algorithm that uses one-minute K-line data to synthesize any minute's K-line data. For periods that can be divided by 60 minutes, start counting from the whole point of 0 minutes. Implement it in Javascript language, write this algorithm as a separate function, test it in the function main() and use $.PlotRecords(KLineData, "name") for drawing.
После вызова ChatGPT вы можете заполнить упомянутое выше оптимизированное содержание вопроса.
ChatGPT начинает работать.
Подождите, пока он закончит писать.
ИногдаChatGPT
добавляетСимволы для обертывания кода, что в маркировке указывает, что обертанный контент является кодом. так что мы просто должны удалить первую и последнюю строку.$.PlotRecords(KLineData, "name")
Для чертежа стратегия должна ссылаться на библиотеку чертежей для того, чтобы нарисовать. Целью чертежа является проверка правильности данных K-линии, синтезированных кодом Chat GPT
Код, предоставленныйChatGPT
Я установил по умолчанию K-линейный период системы backtesting на 5 минут, который используется для сравнения с K-линейными диаграммами, полученными из данных K-линий, рассчитанных алгоритмом Chat GPT
По предварительным данным, кажется, что алгоритм, данный ChatGPT для синтеза 5-минутной K-линии из 1-минутной K-линии, является правильным.
/*
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");
}
FMZcomposeKLineData
Функция в коде только что написанный ChatGPT, правый клик, чтобы показать меню:
Даже ChatGPT может предоставить предложения по оптимизации и оптимизированный код.
Обновление редактора FMZ, помимо добавления функции ChatGPT, также оптимизирует и улучшает онлайн-программирование, добавляя много удобных функций.
Правый клик в пустое место или при выборе кода, чтобы показать меню.
Он отображает различные комбинации клавиш.
Переименовать символ для изменения имени локальной переменной.
Это только изменило название переменной.records
вmain
функция вышеприведенного изображения.
Изменить все случаи, выбрать имя переменной, слово и редактировать все то же самое содержание в тексте одновременно.
Формат выбора, формат выбранного кода.
Форматируйте документ, форматируйте весь код.
Перейдите к определению: Перейдите к определению. Перейдите в справочник: Перейдите в справочник. Перейти к символу...: перейти к названиям переменных, названиям функций и т.д.
Peek Definition: Предварительный просмотр определения, просмотр определения выбранного кода без выхода из текущей строки кода. Peek References: предварительный просмотр цитат, просмотр ссылок на текущую строку кода в других строках кода, не покидая текущую строку кода, он может пройти быстро, чтобы лучше понять логику и структуру кода.