Блог им. Jump_in_the_sky

Магия ChatGPT или пишем индикатор для QUIK

Коротко: я в восторге.

Пока еще этот AI далек от совершенства, но то, что он может уже сейчас, лично меня поразило.

Здесь немного не по теме: сделал запрос на создание шаблона сайта и через пару минут у меня был готов html и css код для дальнейшего креатива. Да, их миллионы готовых. Да, глобально это просто копипаст кусков кода из сети. НО: правильно формулируя задачу, на выходе получаем почти готовый результат чужими руками и что немаловажно – с возможностью объяснения и правки хоть каждой запятой.
Безусловно, для полноценной работы нужно понимать, как все работает и устроено, но рутину уже сейчас можно решать без лишней траты времени (далее по тексту это утверждение актуально).

Да, для создания кода для тестов торговых стратегий AI тоже отлично подходит. ОНО написало код, который берет рыночные данные (YF, в моем случае), лаконично описал стратегию и выдал четыре результата по тесту, включая итоговую доходность. У меня бы ушло N-минут/часов, в зависимости от сложности и наличия схожего кода (плюс правок), либо поиска его в сети. Для AI это вопрос пары минут.


Теперь от слов к делу.

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

На входе имеем задачу создать код обычной линейной регрессии (Linear Regression) в виде индикатора под QUIK на QLUA.
На само написание ушло не более 10 минут с учетом правок и исправления ошибок. Я просто кормил (копировал и вставлял в чат) ему ошибки из терминала и он сам вносил правки.

Итогом стала вот такая линия:
Магия ChatGPT или пишем индикатор для QUIK

Линейная регрессия готова.
Зачем останавливаться? Добавим линий и отложим стандартные отклонения с коэффициэнтом 2. Точнее попросим об этом. Меньше минуты и код приветствует тебя. Ну это же восхитительно.

Магия ChatGPT или пишем индикатор для QUIK

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

Магия ChatGPT или пишем индикатор для QUIK

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

Магия ChatGPT или пишем индикатор для QUIK

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

Я же для себя нашел отличного собеседника на английском языке, помощника в правке кода и своего рода ментора, потому что он может объяснить и показать на примере, как и что работает. С одной оговоркой: нужно правильно спрашивать.

  • обсудить на форуме:
  • QUIK
★8
42 комментария
ЗакрепитьКомментарий закреплен пользователем Jump_in_the_sky

Вот сам код регрессии с отклонениями:

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
avatar
Каким впн-сервисом пользуетесь, а также через какой сервис виртуальный номер получили?
Почту на гугле новую для этой темы заводили?
avatar
Артур, browsec, onlinesim, нет
avatar
Jump_in_the_sky, вот эти танцы с бубнами для подключения меня останавливают пока, а так я бы ему тоже заданий надавал!
avatar
Vkt, Поставить портативный браузер, установить в нем расширение, заплатить копейку за виртуальную симку, скормить любую почту — это даже не рядом с теми сложностями, с которыми придется столкнуться при формулировке запросов для AI.
avatar
Jump_in_the_sky, наверное все так, но я такими «танцами» никогда не занимался, а может просто старый стал, ленивый. Подожду пока более доступные сервисы появятся. Круто, что он даже на QLua может!

avatar
Vkt, 30 минут у меня заняло. Самое противное это сим карту покупать. 200 рублей отдал, сама симка дешевая, но на сервис меньше 200 не завести.

На хабре полно инструкций.
avatar
спроси его что-нибудь в этом духе: 
«Кто развивается больше когда я ставлю тебе задачи для решения — ты или я»?
Ну или не «больше», а просто — развивается. Так даже точнее будет.
Последний абзац это просто улёт. 
Да, выводы пусть каждый для себя сделает сам. Это верно.
avatar

yellow, 

Это очевидные вещи)

avatar
Jump_in_the_sky, 
Очевидные вещи, что тебя найобывают. )
«в свою очередь вы также развиваетесь получая новые знания и умения в области, в которой задача была поставлена»
Ты развиваешься только в «знаниях и умениях» ставить «задачи», не более — то есть деградируешь. Потому что развитие имеет место быть только в собственном решении задач, а не в их постановке для кого-то.
Ещё и хвастаешься этим. то есть у тебя комбо.))
А вот он, действительно, улучшает свои навыки и становится более опытным в решении задач, т.е. отбирает (твоими руками) способности, навыки и компетенции (т.е работу) у твоих будущих (возможно) детей.
И то, что ты этого не понимаешь, лишний раз показывает, что естественный интеллект людям (стремящимся пользоваться искусственным) не нужен.

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


p.s. Хаха, он даже «Вы» пишет тебе в ответ с маленькой буквы, только сейчас заметил))) Сразу показывает, что о тебе думает (запрограммирован думать)))
avatar

yellow, Вы слишком узко мыслите.

Глуп ли человек, который пользуется опытом предыдущих поколений для решения своих задач? Вопрос риторический.

Касаемо отбора рабочих мест: население земли выросло с 1.6 до 8 млрд. за ~100 лет. По вашей логике следует избавиться от «лишних» людей, ведь они отнимают и будут отнимать (занимать) не только места, но и еду и кров.

avatar
денег скока с энтого поимел?...
avatar
wistopus, Вы же не из налоговой?)
avatar
возможности поражают конечно
avatar
сделал запрос на создание шаблона сайта и через пару минут у меня был готов html и css код для дальнейшего креатива.

а это где глянуть?

✔ ⓈⒺⓇⒼⒾⓄ:Ⓩ, Нигде, только скрин с локалки. Минимум правок с моей стороны (отцентровка, путь к картинкам):



avatar
Jump_in_the_sky, а-а-а, я думал шаблон под индикатор имеется ввиду…

✔ ⓈⒺⓇⒼⒾⓄ:Ⓩ, их есть у него. Именно сама структура кода индикатора. Нужно лишь немного подправить запросами (на картинке чистая без правок):



avatar
В реальных расчётах неплохо иметь циклический буфер для эффективного расчёта текущих сумм. Типа: S = S — s(1) + s(n+1).
Имея свою библиотеку, не нужно кланяться Искусственному Интеллекту.
А в WelathLab это входит в его набор индикаторов.

А касаемо AI, этот пример показывает не его удалённость от совершенства, но чисто технические качества вместо интеллектуальных.
Интеллект должен предложить торговую стратегию. Можно поискать в обучении нейросети.
avatar
Ну да, кланяться WelathLab это же другое.
avatar
Jump_in_the_sky, 13:55 ты прав! Совершенно другое! Я не ищу интеллекта в WealthLab (как и в молотке или нейросети), а только то, что мне нужно
www2.wealth-lab.com/wl5wiki/LinearReg.ashx
www2.wealth-lab.com/wl5wiki/LinearRegSlope.ash
LinearReg(DataSeries ds, int period, string description)
LinearRegSlope(DataSeries ds, int period, string description)
две строки и вуаля!
Но про циклический буфер и WealthLab'у приходится объяснять подробнее.
avatar

Rostislav Kudryashov, Суть текущего диалога и поста разные.

avatar
Jump_in_the_sky, 14:21 суть в том, что от Интеллекта следует ожидать услуг интеллектуальных, а не технических. Для забивания гвоздей гораздо удобнее молоток.
PS вот если интеллект родит выигрышную торговую стратегию — будет интересно.
Но мне пока не попадались сообщения о нейросети с удачными прогнозами выше 60%. Причём прогнозами, мало пригодными для взятия прибыли.
avatar

Rostislav Kudryashov, Суть в том, что openai машет молотком вместо меня и теперь я не отобью себе пальцы.

 

Несбывшиеся ожидания проблемы ожидавшего.

 

avatar
Jump_in_the_sky, 14:30 т.е. никакой не Интеллект, а Костыли для  Инвалидов умственного труда.
avatar
Rostislav Kudryashov, Следуя такой логике, Автомобиль это Коляска для Инвалидов пешего передвижения.
avatar
Jump_in_the_sky, 14:40 пальцем в небо! WealthLab делает свою работу — никакой ChatGPT не угонится. И мои библиотеки в Quik'е — тоже и так же просто и эффективно.
Делать простую работу сложным инструментом — извращение.
avatar

Rostislav Kudryashov, Извращение это в каждом ответе вместо конструктивного диалога писать про программу (проплатили рекламу, признавайтесь?) и свои библиотеки, так и не поняв суть поста, при этом безосновательно и дальше пытаться доказывать бесполезность бесплатного инструмента для широкого круга аудитории.

avatar
Зачем индикатор, надо сразу спрашивать где покупать/продавать.
avatar

Volahub, Кому надо тот и спросит, верно?)

avatar
Jump_in_the_sky, нет, вряд-ли до этого кто-то уже додумался )
avatar
Jump_in_the_sky, все индикаторы давно придуманы. И даже круче типа уровни Мюррея. Проблема графика в неопределенности и определенности. Неопределенность клонит график в боковик, а определенность в резкий рост или слив. График это не следствие индикаторов, а наоборот. Я изучил много индикаторов и расстался с ними в 2010 г.Темная зона торговли — это свечной анализ.Попробуйте рассказать ИИ названия свечей? Интересно что она скажет? Про свечной нет книг.Брошенный ребенок, повешенный, беременный харами, поглощение? чего? кем? Вопросов будет очень много.Системы торговли по свечам нет.Только ошметки и намеки. Мораль — индикаторы не нужны. Свечной анализ — психология людей в  чистом виде. Все знания о торговле в свечном, но кто их собрал? Палыч Вова Гусев? Свечи — это буквы не понятного языка. Кто прочтет буквы поймет и график. Короткий путь   к  пониманию свечного — VSA(про одну свечу и объем) +VA (волновой анализ Эла) + фракталы Вильямса. Полезно и про силу чисел -уровней и силу дней календаря (Ганн ).
avatar

ezomm, да, все что нужно для торговли уже придумано и разжевано.

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

Касаемо свечей — есть и книги, и мне даже удалось описать основные модели на pinescript для TW. Уверен, openai тоже сможет при правильных вводных. Есть ли там рыба? Сложно сказать.

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

avatar
человечество со временем отупеет… тренд на это.
avatar
Только нужно всегда помнить, что это система так же может убедительно нести хрень. И нужно перепроверять за ней.
avatar
Или я чего-то не понимаю, либо вы с ИИ изобрели индикатор, т.н. конверт. envelope.  Есть готовый в квике.

павел петрович попов, индикаторы разные. Важно не то что, а как получилось.

«Описанные ниже индикаторы есть, пожалуй, везде»

avatar

Jump_in_the_sky,  Важно не то что, а как получилось.

Ну напрягите этот ИИ, пусть изобретет что-то новое и небывалое.

павел петрович попов, Без внятного ТЗ, результат ХЗ
avatar

Jump_in_the_sky, Без внятного ТЗ, результат ХЗ

 

А какое ТЗ было, в свое время, у изобретателей эппла?

павел петрович попов, Ведь это лучше спросить у изобретателей эппла, нет?

Хотя скорее абсорбентов технологий:

Принято считать, что благодаря первому в мире миниатюрному сенсорному экрану на прорывном для своего времени iPhone 3G компания начала завоевывать рынки, сердца и умы пользователей по всему миру.

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

Это небольшой пример того, что они не изобретали сенсорный экран, а воспользовались наработками и впоследствии выкупили компанию.

 

Открою маленький секрет — современные телефоны это просто рация с доп. функциями. Для передачи использует радиоволны. Радиоволны известны давно, показаны в 1895.

Точно сейчас что-то изобретается или на основе уже известных принципов строится usability?

avatar

теги блога Jump_in_the_sky

....все тэги



UPDONW
Новый дизайн