Коротко: я в восторге.
Пока еще этот AI далек от совершенства, но то, что он может уже сейчас, лично меня поразило.
Здесь немного не по теме: сделал запрос на создание шаблона сайта и через пару минут у меня был готов html и css код для дальнейшего креатива. Да, их миллионы готовых. Да, глобально это просто копипаст кусков кода из сети. НО: правильно формулируя задачу, на выходе получаем почти готовый результат чужими руками и что немаловажно – с возможностью объяснения и правки хоть каждой запятой.
Безусловно, для полноценной работы нужно понимать, как все работает и устроено, но рутину уже сейчас можно решать без лишней траты времени (далее по тексту это утверждение актуально).
Да, для создания кода для тестов торговых стратегий AI тоже отлично подходит. ОНО написало код, который берет рыночные данные (YF, в моем случае), лаконично описал стратегию и выдал четыре результата по тесту, включая итоговую доходность. У меня бы ушло N-минут/часов, в зависимости от сложности и наличия схожего кода (плюс правок), либо поиска его в сети. Для AI это вопрос пары минут.
Теперь от слов к делу.
Описанные ниже индикаторы есть, пожалуй, везде. Ничего в них сложного и даже можно рыбку поймать. Сам же процесс создания их меня очень порадовал.
На входе имеем задачу создать код обычной линейной регрессии (Linear Regression) в виде индикатора под QUIK на QLUA.
На само написание ушло не более 10 минут с учетом правок и исправления ошибок. Я просто кормил (копировал и вставлял в чат) ему ошибки из терминала и он сам вносил правки.
Линейная регрессия готова.
Зачем останавливаться? Добавим линий и отложим стандартные отклонения с коэффициэнтом 2. Точнее попросим об этом. Меньше минуты и код приветствует тебя. Ну это же восхитительно.

Это не подключение библиотеки, нет. Это внесение изменений в код по новым формулам, а точнее перенос их на понятный QUIK`у язык, пока ты пьешь кофе или играешь на гитаре. Результат:

Далее попросил сделать для меня SLOPE версию, чтобы наклоны видеть и… Готово. Да проще пареной репы. За это время я только и успел что смахнуть пыль с монитора. Я только нулевую линию добавил на скорую руку:

Выводы пусть каждый для себя сделает сам. Их очень много и не только по теме трейдинга и создания роботов, тестов и т.п.
Я же для себя нашел отличного собеседника на английском языке, помощника в правке кода и своего рода ментора, потому что он может объяснить и показать на примере, как и что работает. С одной оговоркой: нужно правильно спрашивать.
Вот сам код регрессии с отклонениями:
Settings = { Name = "*Linear_Regression with Standard Deviation Bands", Period = 20, show_line = 1, show_bands = 1, bands_coeff = 2, line = { { Width = 2, Name = "Linear_Regression", Type = TYPE_LINE, Color = RGB(255, 0, 0) }, { Width = 1, Name = "Upper_Band", Type = TYPE_LINE, Color = RGB(0, 255, 0) }, { Width = 1, Name = "Lower_Band", Type = TYPE_LINE, Color = RGB(0, 255, 0) } } } function LinearRegression(index, period) if index == 1 then Closes = {} end Closes[index] = C(index) if index >= period then sumX = 0 sumY = 0 sumXY = 0 sumXX = 0 for i = 0, period - 1 do x = i + 1 y = Closes[index - period + x] sumX = sumX + x sumY = sumY + y sumXY = sumXY + x * y sumXX = sumXX + x * x end slope = (period * sumXY - sumX * sumY) / (period * sumXX - sumX * sumX) intercept = (sumY - slope * sumX) / period -- Calculate standard deviation bands stdev_sum = 0 for i = 0, period - 1 do stdev_sum = stdev_sum + (Closes[index - period + i + 1] - slope * i - intercept)^2 end stdev = math.sqrt(stdev_sum / period) upper_band = slope * period + intercept + stdev * Settings.bands_coeff lower_band = slope * period + intercept - stdev * Settings.bands_coeff return slope * period + intercept, upper_band, lower_band end end function Init() return #Settings.line end function OnCalculate(index) line, upper_band, lower_band = LinearRegression(index, Settings.Period) if index >= Settings.Period and Settings.show_bands == 1 then return line, upper_band, lower_band end return line endПочту на гугле новую для этой темы заводили?
«Кто развивается больше когда я ставлю тебе задачи для решения — ты или я»?
Ну или не «больше», а просто — развивается. Так даже точнее будет.
Последний абзац это просто улёт.
Да, выводы пусть каждый для себя сделает сам. Это верно.