VPM (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 24 След.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Ваше замечание, о несоответствии ньютоновской модели для описания микромира, прекрасно иллюстрирует ограниченность классических подходов в финансах, и необходимость использования более сложных и адаптивных методов. Так и я про это.
Нет у меня ни какого идеализма относительно математики, но написания автоматической торговой стратегии требует некой формализации подходов, и математика здесь на высоте.
ДА, Ньютоновская механика, основанная на законах движения и гравитации, прекрасно описывает поведение макроскопических объектов (планеты, машины, здания и т.д.). Она предсказуема, и работает в условиях, где можно пренебречь квантовыми эффектами. Так и я подчеркиваю, что речь идет о средне срочных стратегиях, показателями которых являются профит фактор и процент прибыльных сделок.
А с помощью полосового фильтра, все это можно построить и про тестировать.
Касаемо микромира, да ньютоновская механика перестает работать.
Микромир описывается квантовой механикой, где царят вероятностные законы, принцип неопределенности и суперпозиция состояний. Если у Вас есть пример таккого подхода, покажите обсудим.
Касаемо Вашего утверждения:
Цитата
TGB написал:
где "ограниченность круга участников" является ключевым утверждением.---    Представьте на минуту, что вы сумели найти доходную стратегию торгов устойчиво обеспечивающую прибыль 60% годовых. Если вы хоть что-то понимаете в фондовом рынке, то как только эту стратегию станут использовать другие участники рынка, то они будут разрушать вашу стратегию.
не могу полностью согласиться, важно не то что узнают, важней что начнут активно применять. И здесь в помощь все та же классическая  ньютоновская механика. Важно не сколько участников пользуется, а стратегии поставки цены на рынок, проще говоря объемы. Деньги в (классическом понимании) и выгода двигают рынки, и не только фондовый.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
TGB,  Да все верно Вы излагаете, только нужны формализованные в код утверждения и желательно строго математически обоснованы, а так философия. В "9) Использование синусоидальных волн." приводится принцип построения опережающего фильтра к нему еще полагается определить доминирующий период в данных, и это математика, бери и встраивай в стратегии, доминирующий период поможет адаптировать такую стратегию. И это просто один подход к написанию адаптивной стратегии. Согласен торгуем вероятностями, но этот подход гораздо лучше, чем стандартные индикаторы с огромными лагами.
Цитата
VPM написал:
Свинг-трейдинг — это стиль торговли, который направлен на захват среднесрочных движений рынка. В отличие от скальпинга или долгосрочного инвестирования, свинг-трейдинг требует баланса между частотой сделок и их качеством.
и "чихать" на роботов. :smile:  
QLUA, вопросы начинающих.
 
Цитата
Igor_User написал:
Есть ли какие-нибудь ещё способы определить строку, из-за которой эта ошибка произошла?
Lua предоставляет несколько подходов для обработки и обнаружения ошибок, а также для организации процесса работы с ними. Основные способы обнаружения ошибок, использование pcall или xpcall. Если нужно не только отловить ошибку, но и логировать её с дополнительной информацией ( место ошибки, стек вызовов и т.д.), можно использовать debug или писать собственное логирование.
Создание окна и кнопок в Quik.
 
Vasiliy,  Все дело в том какой версией луа вы пользуетесь, если 5.4 то Вам нужна 64 разрядная длл. Если задача сводится
Цитата
Vasiliy написал:
Задача: Создать окно и пару кнопок, в дальнейшем хочу привязать к кнопкам стоп и тейк, ну и развивать эту тему.
То достаточно стандартных средств qlua, для этого создаете окно рабочего места стандартной библиотекой (см. Функции для работы с таблицами Рабочего места
QUIK ) с помощью ф. SetTableNotificationCallback - Задание функции обратного вызова для обработки событий в таблице и переменных, решаете свою задачу. Совет отфильтруйте сообщения на форуме по этой функции найдете все необходимое, включая примеры. Удачи.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Поднимая записи наткнулся.
Ценные идеи и концепции,  связанные с разработкой и оптимизацией торговых стратегий, в контексте свинг-трейдинга, взятые из работ John F. Ehlers.
John F. Ehlers - это практикующий трейдер, написал несколько книг и массу полезных статей по трейдингу, формализовав строго матиматически, в код свои идеи. Я лишь перевел и немного структурировал текст, чтобы он стал более целостным и удобным для чтения.

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

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

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

2) Предсказуемость правил входа и выхода. Следующим критерием является предсказуемость правил входа и выхода.
** Большинство стратегий, основанных на правилах, зависят от индикаторов, настроек или шаблонов. Однако поиск прогнозного индикатора, вероятно, является самой сложной частью разработки торговой стратегии. Индикаторы используются в качестве вспомогательного средства для принятия решений о покупке и продаже, но они не должны быть единственным источником сигналов.

3) Тестирование стратегии.
** При тестировании своей стратегии вы должны совершить достаточно сделок, чтобы результаты были статистически значимыми.
** Одно практическое правило заключается в том, что у вас должно быть не менее 30 сделок для каждого параметра. Это позволяет минимизировать влияние случайных факторов и убедиться в устойчивости стратегии.

4) Использование стоп-лосса.
** Правила стоп-лосса следует использовать с осторожностью.
** Стоп-лосс не должен быть неотъемлемой частью стратегии на этапе разработки. Моя процедура заключается в разработке стратегии без использования правила стоп-лосса. После того, как основная часть стратегии станет удовлетворительной, я исследую максимально возможные неблагоприятные отклонения и только затем вставляю правило стоп-лосса, которое ограничивает максимальные убытки, не сильно влияя на прибыльные сделки.

5) Тестирование вне выборки.
** Последний общий аспект разработки стратегии, который нельзя упускать из виду, — это тестирование «вне выборки».
** Тестирование вне выборки означает, что вы применяете свою торговую стратегию к одному и тому же символу в другом временном диапазоне или к нескольким различным символам, причем все это выполняется без изменения параметров. Это помогает убедиться в устойчивости стратегии к различным рыночным условиям.

6) Характеристики эффективности стратегии.
** Эффективность торговой стратегии легче всего характеризовать процентом прибыльных сделок и коэффициентом прибыли.
** Коэффициент прибыли — это отношение валового выигрыша к валовому проигрышу. Следование за трендом обычно означает попытку определить возможность входа и затем быстро выйти из сделки, если тренд не развивается. Это означает, что можно заработать много денег на нескольких сделках, но на этом пути будет много убыточных сделок. Таким образом, торговля по тренду означает готовность принять относительно низкий процент прибыльных сделок для достижения относительно высокого коэффициента прибыли.

7) Индикаторы и их роль.
** Я утверждаю(это John F. Ehlers), что не существует индикаторов для прогнозирования трендов.
** Индикаторы прогнозирования более применимы к краткосрочным процессам, таким как колебательная или импульсная торговля. Если индикаторы действительно являются предсказательными, краткосрочная торговля характеризуется более высоким процентом прибыльных сделок. Однако фактор прибыли краткосрочных сделок обычно меньше, потому что спектральное расширение ограничивает колебания краткосрочных рыночных движений.

8) Осцилляторы и их использование.
** Общий класс индикаторов, поддерживающих краткосрочную торговлю, называется осцилляторами.
** Лучший способ торговать на осцилляторе — это предвидеть поворотную точку и полагаться на статистическую отдачу от среднего значения как на предсказательную. При достаточно малой полосе пропускания полосовой фильтр создает выходной сигнал, который можно охарактеризовать как синусоидальную волну, имеющую медленно изменяющиеся амплитуду и фазу.

9) Использование синусоидальных волн.
** Факт, что косинусоидальная волна опережает синусоидальную волну на 90 градусов, важен, потому что это дает нам возможность искусственно продвинуть точку поворота выходного сигнала полосового фильтра на четверть цикла.
** Продвигая сигнал на четверть цикла, мы можем свести на нет или уменьшить вычислительную задержку, требуемую фильтром. Из расчетов мы знаем, что скорость изменения синусоидальной волны — это в точности косинусоидальная волна, амплитуда которой изменяется аргументом. Разница в один столбик создает скорость изменения синусоидальной волны, поэтому косинусоидальная волна с поправкой на амплитуду может быть вычислена в коде как:

Косинус = (Период / (2 * math.pi)) * (BP - BP[1])

Да, действительно так просто создать опережающий торговый сигнал с использованием выходного сигнала полосового фильтра, если вы знаете или оцениваете период синусоидальной волны!

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

Заключение. Разработка и оптимизация торговой стратегии — это сложный процесс, который требует глубокого понимания рынка и инструментов анализа. Использование простых и предсказуемых правил, тестирование вне выборки и правильное применение индикаторов помогут вам создать устойчивую и прибыльную систему. Помните, что успешная стратегия — это не только правильные сигналы, но и дисциплина в их исполнении.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
nikolz,  Если бы, все было так просто, как Вы рассуждаете, в учебных заведениях уволили бы учителей и преподавателей. :sad:  
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
nikolz,  Учебник мало прочитать, его еще необходимо понять. В моем "опусе", лишь краткие выдержки и не только из этого учебника, на что бы следовало обратить внимание по моему скромному мнению, начиная собирать торговую программу.
Цитата
VPM написал:
Этот небольшой опус — попытка поделиться своим опытом и, возможно, помочь другим избежать ошибок или оптимизировать свой подход.
Если бы мне, еще пару - тройку лет назад сказали, обрати внимание на Метатаблицы и объектно-ориентированное программирование, я бы наверно "пальцем у виска покрутил" :smile: , сегодня это мой основной подход, леплю туда где можно и без него обойтись. А если бы прислушался к совету, сегодня бы не переписывал код, а использовал годами проверенный модуль. За ссылку спасибо, но лично у меня книга сохранена на компе, возможно кому понадобиться.
Я лишь сделал пролог, к обсуждению универсальных модулей торговой системы, способной щелкать любые стратегии без изменений, ну или с минимальными  изменениями в модулях.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Собирая новую автоматическую систему, я поднимаю старые наработки, и довожу их до современного уровня понимания написания скриптов на Lua.
Этот небольшой опус — попытка поделиться своим опытом и, возможно, помочь другим избежать ошибок или оптимизировать свой подход.

1) Основы Lua: таблицы как основа всего.
Основная структура Lua — это таблицы. Именно из таблиц строятся все остальные конструкции языка. Таблицы в Lua — это не просто массивы или словари, а универсальный инструмент, который можно использовать для создания сложных структур данных. Если представить таблицу как отдельный модуль, то система становится четко структурированной.  Например, можно создать таблицу, которая будет содержать данные и методы для работы с ними.  Это позволяет разделять логику и данные, что делает код более читаемым и поддерживаемым.

2) Универсальные модули. Написав универсальный функциональный модуль, его можно использовать в разных скриптах.  Например, модуль для работы с математическими расчетами или модуль для обработки данных можно легко интегрировать в различные проекты.  Это экономит время и уменьшает количество ошибок, так как модуль уже протестирован и отлажен.
Код
Пример простого модуля: Модуль для математических расчетов
local MathUtils = {}
function MathUtils.add(a, b)
    return a + b
end
function MathUtils.multiply(a, b)
    return a * b
end
return MathUtils

Как можно использовать в других скриптах:
local MathUtils = require "MathUtils"
local result = MathUtils.add(5, 3)
print(result)  -- Вывод: 8

3) Метатаблицы и объектно-ориентированное программирование. В Lua нет классов в классическом понимании, но есть метатаблицы, которые творят чудеса, позволяют создавать объектно-ориентированные структуры. Метатаблицы — это мощный инструмент, который позволяет определять поведение таблиц, например, перегрузку операторов или наследование. С помощью метатаблиц можно создавать объекты с методами и свойствами.
Такой класс инкапсулирует всю логику, связанную с определенной задачей. Это позволяет изолировать код, упрощает его тестирование и повторное использование. Например, в торговой системе, можно выделить логику управления позициями, расчетов и генерации сигналов в отдельные классы.
Код
Пример класса для торговой системы:
local TradingSystem = {}
TradingSystem.__index = TradingSystem
function TradingSystem.new(params)
    local self = setmetatable({}, TradingSystem)
    self.length = params.length or 20
    self.frac = params.frac or 5
    self.pt_stop = params.pt_stop or 3
    self.price = {}
    self.smooth = {}
    self.coef = {}
    self.distance2 = {}
    self.market_position = 0
    self.entry_price = 0
    return self
end
function TradingSystem:process_bar(index, high, low, open_price)
    -- Логика обработки бара
end

-- Использование
local params = { length = 20, frac = 5, pt_stop = 3 }
local system = TradingSystem.new(params)

Делаем выводы по написанию скриптов на Lua.  Lua — это мощный и гибкий язык, который отлично подходит для создания автоматических систем:
1. Используйте модули. Разделяйте код на модули по функциональности, чтобы упростить его повторное использование и тестирование.
2. Применяйте метатаблицы. Создавайте объектно-ориентированные структуры для инкапсуляции логики.
3. Документируйте код. Добавляйте комментарии и описание функций, чтобы код был понятен не только вам но и другим разработчикам.
4. Тестируйте. Проверяйте каждый модуль и класс отдельно, чтобы убедиться в их корректности.
5. Оптимизируйте. Убедитесь, что ваш код эффективен и не содержит лишних вычислений.
Используя таблицы, модули и метатаблицы, можно создавать четко структурированные и легко поддерживаемые решения.

Надеюсь, этот небольшой опус поможет при создании новых проектов. Удачи!
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Интересней потому что вперед смотрит. или есть еще что?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Nikolay,  Спасибо!!!
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Добрый день! Люди помогите, никак не могу "взять в толк" транслирует квик RUONIA. Если да то ка его получать?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
В продолжение темы облигаций. Рассуждая об ОФЗ, упустили еще одно важное свойство, брокер под них открывает плечо, как правило максимальное. Раньше я пользовался в инвестиционном. портфеле. идея была не замысловата, приобретаешь короткие ОФЗ и под них набираешь активно растущие или дивидендные акции, гасится берешь новую. В настоящий момент все это не работает. Проверил у одного брокера плечи под ОФЗ. например 26033  есть в портфеле коэффициент 0.3, 29014 / 0.35. То есть брокер активно кредитует под них, но что делать, акции в боковике, дивидендов нет, по факту торговля идет вероятностями, но для спекуляций пойдет, что делать с инвест. портфелем? Пробежался по идеям публично озвученным, мне показалась интересной такая: берется "флотер по сути и есть аналог вклада, например 29014, 29106" - на 80%, а на 20% набираются поставочные фьючерсы на акции. Таким образом по квартально идут выплаты купона, если акция дивдентная в конце срока можно ее получить, а нет так в новый переходим. Что скажите господа?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
Nikolay написал:
А флотеры по сути и есть аналог вклада, например 29014, 29106.
Nikolay, Уточните вчера речь шла про
Цитата
Nikolay написал:
флоатеры - это как раз аналог вклада. Получаете текущий средний процент на рынке, не думая ни о чём. Например 29014, 29016 и далее.
Я 29016 взял на пробу?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
nikolz,  Основные соображения свои я высказал, можно под итожить.
1. Уникальная ситуация на рынке (выше описал идею)
2. Ставка цб на максимумах, и уже не важно будет она 25 или 30%, цель достигнута выдача кредита остановлена.
3. Нездоровая на мой взгляд ситуация в банковском секторе, раздавая депозиты по 20% и выше "пылесося рынок", стараются привлечь и удержать клиента. Но 20% и выше нужно обслуживать, если  на 1 рубль займа, выдавалось 10 рублей кредита, а кредит под 30% не берут, валютные спекуляции не возможны, рынок акций внизу, вот и остаются облигации. Я понимаю что банки считают лучше чем это делаю я, знают где заработать и как обслужить свой долг,  но все по краю лезвия, ведь их оценка риска не выплаты в районе 7% предъявленных, одномоментно требований .
4. ОФЗ - это деньги, в прямом смысле этого понятия, все остальное меновая стоимость. Не выплаты могут быть по отдельным выпускам, наверняка, но это уже как все остальное упало.
Вот и считайте где риски выше?
Облигациями не торговал активно и серьёзно опыта нет, понравилась идея Nikolay, на счет использования сетки, хочу попробовать.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
На мой взгляд есть еще одно существенное обстоятельство, которое нельзя сбрасывать со счетов. Высокие ставки по депозитам, работают как пылесос, собирая частные деньги в депозитах в банках.
Такая ситуация смахивает на некую стерилизацию экономики.

Теперь вопрос ставим себе, если что то пошло не так в экономике, государство что будет ставить в приоритет?
1. Частные сбережения в банках?
2. Собственные деньги - ОФЗ?

Облигации это реальный сектор экономики, займы идут напрямую в экономику.
ГКО конечно преподало урок, но нельзя сравнивать ту экономику и сегодня, попадалась статистика, что в районе 20% к ВВП займы государства (при критичном 75%).  
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
Nikolay написал:
Что касается ожиданий, то да 38-мые могут выстрелить.
А 48 не смотрели? что то я склоняюсь к ней, под затариться на всякий пожарный, да и по торговать можно, объемы норм?  Где можно с Вами более приватно переговорить?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Nikolay,  Мой ответ выше это рассуждения на вопрос
Цитата
nikolz написал:
В банке вклад с доходностью 24%. В чем фишка брать облигации с доходностью 16%?
nikolz, Вот еще один довод который я пропустил
Цитата
Nikolay написал:
Плюс еще переоценка тела. Также облигации, как и любой торгуемый инструмент позволяет собирать волатильность, т.е. торговать небольшие движения. Это как выйти из вклада через неделю без потери процентов. Так что нет, вклады хоть и спокойней, но облигации могут дать намного больше. Правда для этого надо приложить немного усилий.
Я же рассуждаю об инвестиционной стратегии. То есть вопрос стоит фиксировать или нет, если фиксировать кто лучшей из ОФЗ? В декабре 24 я немного взял 33 с доходностью на тот момент > 20%. Короткие корпоративные супер, но это спекулятивная стратегия в моем понимании. Для инвестирования я еще смотрю на выпуски номинированные в USD?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Nikolay, Хороший вопрос, вопрос инвестора! В этом мире все относительно! Давайте по классике посмотрим на это.
На первый взгляд, вклад с доходностью 24% кажется более выгодным, чем облигации с доходностью 16%.Однако есть несколько важных нюансов, которые делают облигации привлекательными, даже если их доходность ниже.

1.  Надежность и риски:
Вклады в банках защищены системой страхования вкладов, АСВ. Однако есть ограничение на сумму страховки. Если банк теряет лицензию или становится банкротом, частный вкладчик наверняка потеряет деньги сверх застрахованной суммы. Высокая доходность (24%) может указывать на повышенные риски банка (где ему зарабатывать минимум 30%?).
Облигации федерального займа (ОФЗ) выпускаются государством, считаются одними из самых надежных инструментов. Риск дефолта по ним крайне низкий. ОФЗ и есть деньги в прямом смысле!

2. Ликвидность:
Вклады обычно имеют ограничения на досрочное снятие средств. Если снять деньги раньше срока, потеряешь проценты или нарвешься на штрафы.
Облигации можно продать на бирже в любой момент. Это делает их более гибким инструментом. Даже если продать облигацию до погашения, получишь накопленный купонный доход (НКД) и текущую рыночную цену. То есть, вклады менее ликвидны, чем облигации.

3. Налогообложение:
Процентные доходы по вкладам облагаются налогом на доходы физических лиц (НДФЛ), если ставка по вкладу превышает ключевую ставку ЦБ на 5 процентных пунктов (в 2023 году это 7.5% + 5% = 12.5%).
Если вклад под 24%, то с разницы (24% - 12.5% = 11.5%) заплатишь 13% НДФЛ. Купонный доход по государственным облигациям (ОФЗ) не облагается НДФЛ. Хотя нужно смотреть не разбирался на 24год?

4. Доходность с учетом реинвестирования:
Проценты по вкладам могут начисляться ежемесячно или в конце срока.
Купоны по облигациям выплачиваются регулярно (например, каждые 6 месяцев).
Хотя на мой взгляд здесь ситуация выровнялась, (есть депозиты с ежедневной капитализацией и ставкой > 20%).

5. Долгосрочные перспективы:
Вклады обычно открываются на короткий срок (от нескольких месяцев до 1-3 лет). После окончания срока нужно искать новый вклад, и его доходность может быть ниже.
Облигации могут иметь длительный срок погашения (до 10-20 лет). Это позволяет зафиксировать доходность на долгий срок, что особенно полезно в условиях снижения ключевой ставки.

Считаем: Предположим, у вас есть 1 млн рублей для инвестиций.
Вариант А). Вклад под 24%:         Годовой доход: 240 000 рублей. Налог на доход: (240 000 - 125 000) * 13% = 14 950 рублей.  Чистый доход: 240 000 - 14 950 = 225 050 рублей.
Вариант Б). Облигация под 16%: Годовой доход: 160 000 рублей. Налог на доход: 0 рублей (если это ОФЗ, надо проверить?). Чистый доход: 160 000 рублей.
На первый взгляд, вклад выгоднее. Но, если инфляция вырастет выше 24%, реальная доходность вклада станет отрицательной.

Делаем Вывод:
Вклады подходят для краткосрочных вложений, если есть уверенность в надежности банка и готовы мириться с ограниченной ликвидностью.
Облигации (особенно ОФЗ = деньги) — это более надежный и гибкий инструмент для долгосрочных вложений, особенно в условиях нестабильности или снижения ключевой ставки.

По статистике ММВБ, 80% торгов облигациями проводится на внебиржевом рынке (то есть торгуют проф. участники тот самый "крупный игрок", который умеет считать, а риск равен потере бизнеса), частникам остается торговать на бирже 20%. Если в стать в стакане на покупку в серединке, то не факт что сделку акцептуют.

Вчерашняя новость. Ведомости. Банк России (ЦБ) может сохранить ключевую ставку на уровне 21% на протяжении всего 2025 г., сообщили в пресс-службе ВТБ.
"Думайте сами, решайте сами , иметь или не иметь?" Я лишь собрал общие соображения на этот счет.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
nikolz, Ну здесь то логика простая, Вы посмотрите на да ты погашения, то есть инвестиционный горизонт огромный. То есть фиксируем доход. Ну дело тут не в текущей доходности даже, а в чувствительности облигации к снижению ставки. То есть сегодняшние 16%, завтра 70% дадут, именно эту оценку я пытаюсь провести. Например, у меня получается, если дюрация облигации составляет 5 лет, то при снижении ставки на 1% цена облигации вырастет примерно на 5%.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
На рынке сложилась уникальная ситуация!
Акции как сжатая пружина, того и смотри, разожмётся и обгонит "биток" :wink: , за 2 месяца отыграна прошлогодняя просадка.
Но мой взгляд прикован к облигациям, как "кролик на удава", я смотрю на них. Задача сводится зафиксировать часть доходности в инвестиционном портфеле.

Для анализа отобрал 4 длинных облигаций ОФЗ-ПД (облигации федерального займа с постоянным купонным доходом)
Код
Инструмент        Номинал Доходность Размер купона Длит. купона НКД Дата выпл. куп. Дюрация До погашения Погашение Ср. взв. цена Оборот Коэфф. Выплат в год раз Годовой доход Купонный поток % От погашения к дюрации Кол. Шт. приобрести Инвестиция в одинаковое количество %
ОФЗ-ПД 26233 18/07/35 SUR 1000 15.76 30.42 182 4.35 30.07.2025 2437 3799 18.07.2035 53.148 967,621,780 1.9 2 61р. 36,504р. 11.45% 1362 600 318,888р. 1.50 900 54,753р. 11.45%
ОФЗ-ПД 26238 15/05/41 SUR 1000 15.27 35.4 182 15.95 04.06.2025 2658 5927 15.05.2041 53.254 1,751,734,568 1.9 2 71р. 42,480р. 13.29% 3269 600 319,524р. 1.50 898 63,590р. 13.29%
ОФЗ-ПД 26243 19/05/38 SUR 1000 15.78 48.87 182 22.02 04.06.2025 2330 4835 19.05.2038 69.341 1,084,655,642 1.4 2 98р. 58,644р. 14.10% 2505 600 416,046р. 1.15 690 67,420р. 14.10%
ОФЗ-ПД 26248 16/05/40 SUR 1000 16.42 61.08 182 27.52 04.06.2025 2264 5563 16.05.2040 79.718 1,820,239,989 1.3 2 122р. 73,296р. 15.32% 3299 600 478,308р. 1.00 600 73,296р. 15.32%
Наиболее доходная облигация: ОФЗ-ПД 26248 16/05/40 с доходностью 16.42% и годовым доходом 122 рубля.
Наименее доходная облигация: ОФЗ-ПД 26238 15/05/41 с доходностью 15.27% и годовым доходом 71 рубль.
Наибольший купонный поток:     ОФЗ-ПД 26248 16/05/40 с купонным потоком 73,296 рублей.
Наименьший купонный поток:     ОФЗ-ПД 26233 18/07/35 с купонным потоком 36,504 рублей.

Вывод:
В целях — максимизация дохода, то ОФЗ-ПД 26248 16/05/40 является наиболее привлекательной.
Если важна меньшая дюрация и меньший срок до погашения, то ОФЗ-ПД 26233 18/07/2035 может быть предпочтительнее.

Но в штопор вводит, ожидаете понижения ключевой ставки ЦБ РФ, то есть облигации с большей дюрацией и более длительным сроком до погашения будут более выгодны, так как они сильнее реагируют на изменение ставок. То есть наиболее выгодной становится облигация ОФЗ-ПД 26238, так как имеет более высокий потенциал роста благодаря большей дюрации.
Ну и как тут быть? Как в штопор не впадать?  
Имена параметров ТТП и других данных торгового сервера MOEX
 
Anton Belonogov,  Спасибо, за ссылку. Так я и утверждаю что "Тормоза в багажнике".  Ну хорошо, не хотите вести перечень имен таблицы текущих параметров, хотя бы ссылку на инструкцию их получения, закрепите на форуме в явном виде (Часто задаваемые вопросы). Интересно сколько раз пользователи читают инструкцию по использованию телевизора?
Имена параметров ТТП и других данных торгового сервера MOEX
 
Цитата
Anton Belonogov написал:
VPM, добрый день.

С чем с целом связан вопрос? Какая задача решается, для чего нужна эта информация?
Вы наверно пошутили, или не прочитали название данной ветки?
Имена параметров ТТП и других данных торгового сервера MOEX
 
Anton Belonogov,  Все дело в том, что есть права и есть обязанности! Не должен конечный пользователь, добывать информацию "под пытками". В чем сложность публиковать параметры транслируемые Квиком?
Имена параметров ТТП и других данных торгового сервера MOEX
 
Во чудеса! Достаточно странная ситуация?
Цитата
Anton Belonogov написал:
Станислав, добрый день.

Нет, точного соответствия между наименованиями параметров на торговых площадках и в QUIK нет.
Получается QUIK не проста транслирует данные с биржи, но изменяет имена параметров на собственные! При этом их не публикует, для конечного пользователя? О, Чудеса - чудесные! Это в финансовом мире принято что - то не договаривать, в этой ситуации разработчики выступают инженерами и технологами.  Здесь аналогия такая: "посадили за руль автомобиля, с педалью тормоза в багажнике"?
Новый период и время проведения торгов на бирже.
 
nikolz, СУПЕР!!! Еще бы  закрепить, в отдельную тему, для быстрого поиска. Чтобы на конец закрыть этот вопрос.
Новый период и время проведения торгов на бирже.
 
Скрытый текст
Очень долгое выключение терминала
 
Из собственного опыта, скачал у брокера еще одну версию, поставил ее параллельно не работающей, моментально все загрузилось!  :smile:  Вывод что произошло с сохранением данных в предыдущей версии. Давненько не было таких проблем, все работало стабильно, уже и забыл, как с этим справляться. Всем пока, хорошей торговли.  
Очень долгое выключение терминала
 
Ок, спасибо.
Очень долгое выключение терминала
 
Anton Belonogov,  а мне сейчас как быть? Переставлять квик?
Очень долгое выключение терминала
 
Цитата
VPM написал:
Проверил скорость интернета, сбросил лог., сбросил квик  несколько раз для загрузки предыдущих wnd, не помогло.
Да сохранятся, откатился уже к 05.02.25.
Очень долгое выключение терминала
 
Anton Belonogov, Да соединение проходит, пишет "чтение информации о расположении окон" и на этом зависает. Из диспетчера видно , загружает гигабайты, Вчера все норм было.  
Очень долгое выключение терминала
 
Добрый день,

"Ни когда не было и вот опять!". Все утро пытаюсь загрузить квик версия 11.4.1.3. Вернее не так сам квик грузится, но при входе по логину, часами зависает на "чтении информации об окнах", качает себе гигабайты и крутит колесико? Увлекательное зрелище! Проверил скорость интернета, сбросил лог., сбросил квик  несколько раз для загрузки предыдущих wnd, не помогло. Позвонил брокеру, "Сервера работают нормально, пере закажите данные". НЕ помогло?  
Новый период и время проведения торгов на бирже.
 
На моей памяти так, параметры устанавливает биржа, постоянно изменяются, разработчики предлагали выгружать таблицу всех параметров. По логике документацию должна биржа публиковать?
Нужна помощь . торговым алгоритмом
 
Сергей ВАТ,  Вам нужно подтянуть материальную часть. Это далеко не алгоритм, алгоритм - это прежде всего логика и последовательность действий, что совсем отсутствует в Вашем коде. Ниже выкладываю демонстрационный пример, как код должен выглядеть.  Это не торговый, это демонстрация возможностей!
Код
--stopped = false  -- Этот флаг здесь не нужен
function OnStop()
   --stopped = true
   return 5000
end

-- Установки
local Kod_klienta = "10800"; -- нужно поставить свое значение
local Torg_schet = "NL0011100043"; -- нужно поставить свое значение
local CLASS_CODE = "QJSIM" -- Код класса
local SEC_CODE = "SPBE" -- Код бумаги
local Kod_FirM = "NC0011100000" -- Код фирмы
local step_grid = 5

local run = true -- флаг работы скипта
function main()
    
   -- один раз получает шаг цены (так как величина постоянная)
    local step_price = getParamEx(CLASS_CODE, SEC_CODE, "SEC_PRICE_STEP").param_value

  while run do
    --в цикле каждые милисекунды (sleep(10000)) обновляем цену перед расчетом нового уровня
    local Sena = getParamEx(CLASS_CODE, SEC_CODE, "LAST").param_value
    -- Расчет 10 уровней с шагом сетки step_grid = 5
    for i = 1, 10 do
    
        -- расчет сдвига цены (сетка)
      Sena = Sena + i * step_price * step_grid 

      local podgot = {
                        ACCOUNT = Torg_schet,
                        CLIENT_CODE = Kod_klienta,
                        TYPE = "L",
                        TRANS_ID = "1",
                        CLASSCODE = CLASS_CODE,
                        SECCODE = SEC_CODE,
                        ACTION = "NEW_ORDER",
                        OPERATION = "B",
                        PRICE = tostring(Sena),
                        QUANTITY = "1"
                        }
      --Отпровляется транзакция
        --if -- Условия для выхода из расчета
          sendTransaction(podgot) 
      --then break; end;
    end
       
   sleep(10000)
  end
end
отправка заявки из скрипта Lua
 
__spb13__,  С кодом у Вас, все в порядке. Перед основным циклом, Вы задаете инструмент по которому хотите работать, он загружается один раз перед выполнением цикла, а дальше вся работа идет в цикле.
       sec_code = 'SU26219RMFS4'
       -- infinite loop to compensate for problems with getting the price
       while true do
Цитата
__spb13__ написал:
Но только если в окне "Текущая таблица параметров" выбрана вот та самая бумага - 'SU26219RMFS4'. Это ОФЗ.Выбираешь в окне другую и нужно менять код в скрипте.
У вас окна квика привязаны к  таблице текущих параметров, для того чтобы отключить эту функцию, нужно сбросить якоря(в верхнем углу стакана горит цветная кнопка, встаете на нее л.кнопка мыши "отключить"). Чтоб работал Этот код должен быть открыт стакан по данному инструменту. quoteLevel = getQuoteLevel2('TQOB', sec_code). в вашем случае,  sec_code = 'SU26219RMFS4'.
Если хотите добавить работу с портфелем бумаг вместо sec_code = 'SU26219RMFS4', создайте таблицу sec_codes = {'SU26219RMFS4', ...,} и в цикле перебирайте эту таблицу.

Код
 
local sec_codes = {'SU26219RMFS4', ...}

 -- infinite loop to compensate for problems with getting the price
        while true do

         for _, sec_code in ipairs(sec_codes) do

            quoteLevel = getQuoteLevel2('TQOB', sec_code)
            if quoteLevel.offer then
                pc = tonumber(quoteLevel.offer[1].price)
            end
            if pc == 0 or pc < 0 or pc == nil then
                co.toLog(sn, '    still nothing...')
                sleep(math.random(1000, 2000))
            else
                break
            end
         end
        end
       
отправка заявки из скрипта Lua
 
__spb13__,  С перового прочтения сформулированный Вами  вопрос, сильно смахивает на каламбур, рассмешил, извините еще раз.  Касаемо вопроса.
1) Квик действительно нужно настроить под себя, в открытом окне развернуть необходимые для работы таблицы. Зайти в настройки и установить умный заказ. Более подробно, на сайте есть от разработчиков, по моему первые посты.
2) цену в скрипте можно получать разными способами: с подпиской, с графика, из таблицы текущих параметров, стакана и так далее.
3) То что Вы описываете, поведение не совсем характерное, для понимания проблемы, лучше показать код, где получаете цену и как пытаетесь вывести ее в ордере.
отправка заявки из скрипта Lua
 
spb13 Это лучшей вопрос, за время которое я провел на сайте просто супер, только не обижайтесь "ради  бога"! :smile:  :smile:  :smile:  
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Megafan,  Спасибо за уточнение. Не проверял, микро добавил по аналогии для демонстрации возможности, свою метку ограничиваю мили, что вполне хватает для моей задачи оценки актуальности.
nikolz,   то что данные приходят с некоторым лагом в программу, это и так понятно, это другая задача, моя же задача проверки актуальности данных, сводится к уже полученным и на копленным данным. И причина в необходимости проверки заключается, в асинхронности обработки двух разных быстрых таблиц в различных корутинах. Ведь дальше следует вывод и принятие решения. То есть, проверить данные полученные из стакана на соответствие данным полученным из т. всех сделок!
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 

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

Пересмотрев внимательней статью выложенную Nikolay,  обратил внимание, на запись данных книги ордеров, кроме стандартного времени, есть запись временной метки!

В среде QUIK доступна функция sysdate(), которая возвращает системную дату и время с точностью до микросекунд, это отличная возможность использовать её для работы с временными метками! Эта функция предоставляет всю необходимую информацию для точной индексации событий и записи меток времени с высокой точностью, что важно для высокоскоростных операций, коими и являются эти две таблицы.

Код
-- Получаем дату и время
local sysdate = os.sysdate()
-- Создаем строку временной метки с точностью до микросекунд
local timestamp = string.format("%04d-%02d-%02d %02d:%02d:%02d.%03d.%03d", sysdate.year, sysdate.month, sysdate.day, sysdate.hour, sysdate.min, sysdate.sec, sysdate.ms, sysdate.mcs)
-- Выводим временную метку
print("Timestamp with microsecond precision:", timestamp)

Пример временной метки: 2025-02-11 14:12:52.123.456

Здесь:

  • 2025-02-11 — это дата (год, месяц, день).
  • 14:12:52 — это время (часы, минуты,
        секунды).
  • .123 — это миллисекунды.
  • .456 — это микросекунды.

Для чего все это? Как вызываются сопрограммы, пока им одним ведома? В моем варианте данные собираю в очереди, пришлось и их переделать, в одну универсальную, чтоб не привязываться конкретно к таблицам, добавил  метаданные, ну конечно и временной штамп.

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

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

3.    Функция использует системные вызовы, что гарантирует реальное время, а не время процессора.

Если бы мне сказали, когда я начинал собирать свою программу, что она достигнет такой сложности,  я бы просто не поверил. А мне за букварь надо со всем этим разбираться!

Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Да, спасибо, в переводном варианте есть ссылка на оригинал, перевел для себя, но все равно до конца все не понял. Кумулятивный спрос и предложения вывожу на график, а в алгоритме тоже нормирую, для понимания настроений. Мой же подход, краткосрочно забрать 10 пунктов, для этого, на какой стороне заходить и предлагаю алгоритм, оценки этой стороны. А логика простая, чтоб набрать крупную позицию, сегодня вынуждены двигать цены в стакане в сторону набора, в погоне за ликвидностью. Вернутся деньги в рынок, наверняка все будет по другому. Ну и конечно одного этого недостаточно.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Nikolay, За информацию спасибо! Согласен с Вами, меня собственно подтолкнул, отчет моего брокера, который оценил участников на рынке, 70% частники, то есть крупному игроку негде разгуляться, отсюда следует что должны приспосабливаться и  приводит свои алгоритмы под текущую ситуацию. Обратил внимание на стакан, MM в обеспечение своих обязательств, приходится чаще набирать позиции на слабой стороне, таковы реалии сегодня. Второе, опробовал технологию асинхронности обработки таблиц (затолкал данные от колбэков в сопрограммы, с небольшими очередями), что позволяет выполнять описанный выше алгоритмы. Ну и последнее, задача стоит для общей торговой системы, сделать разные модули торговых стратегий, с авто переключением между ними, такие амбиции, пока не понятно что из этого выйдет? Но одновременная работа трендовой и реального времени вполне приемлема, по крайней мере вижу куда двигаться. Но и самое главное надеюсь что подход избавит от постоянной переделки системы, с использованием стратегий в модулях.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
nikolz, Собственно этот алгоритм продолжение этой темы https://forum.quik.ru/messages/forum10/message77319/topic8859/#message77319, корректирую архитектуру торговой системы и привожу структуру данных. Этот алгоритм один из модулей торговой стратегии стратегия "скальперской", задачей которого является оценка ликвидности в стакане, ответ на вопрос на чьей стороне. Формализация алгоритма необходима для применения в алгоритмической торговле. Что делает алгоритм, еще раз, нормируем, переводит в диапазон -1/+1, Фишер нужен для выделения хвостов (в диапазоне -0.5/+0.5 передается практически линейно, значения выше с лог. зависимостью, не создает задержек). Статистика в водится,  если можно так сказать, для оценки результатов и их стабилизации. Периоды накопления данных для такой оценки регулирую в зависимости от инструмента и необходимости. Ни какого прогноза, оцениваем что происходит, конечно с неким лагом. Метрики применяю обычные, тенденция, импульс ... Для чего для поддержки принятия решений в краткосрочных стратегиях. На счет актуальности, ну конечно, если даже данные пришли за вчера! На счет применения каждый решает сам, подход я озвучил, привел пример с нечеткой логикой, для сглаживания переходных процессов и задания зон принадлежности. Любой может взять и попробовать.  
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Накидал небольшой пример для отладки, проверил вроде рабочий, прикручу посмотрим.
Код
---------------------------------
-- Константы для правила трех сигм
---------------------------------
local mean_bid = 0   -- Среднее значение ликвидности Bid (можно обновлять)
local std_bid = 0.3  -- Стандартное отклонение ликвидности Bid
local mean_ask = 0   -- Среднее значение ликвидности Ask (можно обновлять)
local std_ask = 0.3  -- Стандартное отклонение ликвидности Ask

local sigma_threshold = 3  -- Граница трех сигм

---------------------------------
-- Функция проверки трех сигм
---------------------------------
function check_three_sigma(bid_liq, ask_liq)
    local bid_outlier = (bid_liq > mean_bid + sigma_threshold * std_bid) or (bid_liq < mean_bid - sigma_threshold * std_bid)
    local ask_outlier = (ask_liq > mean_ask + sigma_threshold * std_ask) or (ask_liq < mean_ask - sigma_threshold * std_ask)

    return bid_outlier, ask_outlier
end

---------------------------------
-- Создаем нечеткую систему
---------------------------------
local fuzzy = luafuzzy()

---------------------------------
-- Входные переменные (нормализованная ликвидность)
---------------------------------
-- Ликвидность Bid
local bid_liq = fuzzy:addinp('bid_liq', -1, 1)
bid_liq:addlingvar('low', gaussmf, { 0.3, -1.0 })  
bid_liq:addlingvar('medium', gaussmf, { 0.3, 0.0 }) 
bid_liq:addlingvar('high', gaussmf, { 0.3, 1.0 })  

-- Ликвидность Ask
local ask_liq = fuzzy:addinp('ask_liq', -1, 1)
ask_liq:addlingvar('low', gaussmf, { 0.3, -1.0 })  
ask_liq:addlingvar('medium', gaussmf, { 0.3, 0.0 }) 
ask_liq:addlingvar('high', gaussmf, { 0.3, 1.0 })  

---------------------------------
-- Выходная переменная (решение)
---------------------------------
local decision = fuzzy:addout('decision', 0, 10)
decision:addlingvar('sell', trimf, { 0, 2, 4 })   
decision:addlingvar('hold', trimf, { 3, 5, 7 })  
decision:addlingvar('buy', trimf, { 6, 8, 10 })  

---------------------------------
-- Правила нечеткой логики
---------------------------------
-- 1. Если Bid высокий и Ask низкий > Покупка
local r1 = fuzzy:addrule(1, 'andmethod')
r1:addpremise(false, 'bid_liq', 'high')
r1:addpremise(false, 'ask_liq', 'low')
r1:addimplic(false, 'decision', 'buy')

-- 2. Если Bid низкий и Ask высокий > Продажа
local r2 = fuzzy:addrule(1, 'andmethod')
r2:addpremise(false, 'bid_liq', 'low')
r2:addpremise(false, 'ask_liq', 'high')
r2:addimplic(false, 'decision', 'sell')

-- 3. Если Bid и Ask средние > Удержание позиции
local r3 = fuzzy:addrule(1, 'andmethod')
r3:addpremise(false, 'bid_liq', 'medium')
r3:addpremise(false, 'ask_liq', 'medium')
r3:addimplic(false, 'decision', 'hold')

---------------------------------
-- Функция получения торгового решения с учетом трех сигм
---------------------------------
function get_trade_decision(bid_norm, ask_norm)
    -- Проверяем выбросы по правилу трех сигм
    local bid_outlier, ask_outlier = check_three_sigma(bid_norm, ask_norm)

    if bid_outlier and ask_outlier then
        if bid_norm > 0 and ask_norm < 0 then
            return "STRONG BUY (3-sigma)"
        elseif bid_norm < 0 and ask_norm > 0 then
            return "STRONG SELL (3-sigma)"
        end
    end

    -- Если выбросов нет, используем нечеткую логику
    local result = fuzzy:solve(bid_norm, ask_norm)

    if result < 4 then
        return "SELL"
    elseif result > 6 then
        return "BUY"
    else
        return "HOLD"
    end
end

---------------------------------
-- Пример использования в QUIK
---------------------------------
local bid_liq_value = 0.9  -- Пример нормализованной ликвидности Bid
local ask_liq_value = -0.9  -- Пример нормализованной ликвидности Ask

local decision = get_trade_decision(bid_liq_value, ask_liq_value)
print("Торговое решение: " .. decision)
Запустить скрипт Lua другим скриптом, Запустить скрипт Lua другим скриптом
 
nikolz, Да Вы совершено правы, я лишь хотел подчеркнуть особенность подключения
Цитата
VPM написал:
Функция dofile выполнит Lua-скрипт, и все переменные и функции, определённые в нём, будут доступны в текущем окружении. И смысл здесь в подключении новой задачи!
Ведь есть еще способ  local Utility = require("Utility").
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
nikolz, Не совсем понял Ваш вопрос? Применяя Вашу аллегорию, можно пояснить смысл. Если выпитый стакан вчера был с алкоголем, сев сегодня за руль, и подышав в трубочку представителю закона, результат выявлен.
Так и в нашем случае, данные какие получили такие и есть. А задача подхода оценить кто заправляет в стакане, деля резултат алгоритма на 3 категории покупатель, продавец или нейтрально.
Могу добавить что этот модуль, только часть большей задачи. Стакан это настроения, выставляя лимитки мы подменяем ММ и говорим о намерениях, рынок двигают рыночными ордерами это и оцениваем. В большой задаче, примерно также оцениваю Спрос/Предложение, и Настроение на рынке. Сейчас задача объединить анализ настроений с анализом сделок, в сделках уже есть время сделки.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
В стратегии реального времени, для автоматической торговли, в системы принятия торговых решений внес изменения, добавил  использование данных о ликвидности в стакане. Давно "руки чесались", алгоритм не сложный, но мест где наделать ошибки достаточно. Вкратце следующий,  получаем данные о ликвидности из стакана, проводится нормировка для преобразования к нормальному распределению, выделяем пиковые значения с помощью преобразования Фишера,  создаем правила на основе нечеткой логики . Думаю еще прикрутить правило 3 сигм для стабилизации результатов, но пока без сигм покручу нужно добиться стабильности. Пока хорошей торговли!
Запустить скрипт Lua другим скриптом, Запустить скрипт Lua другим скриптом
 
Цитата
nikolz написал:
И еще...Нет смысла запускать скрипты с помощью dofile (особенно как в приведенном VPM примере)Так как это лишь замедляет исполнение.---------------dofile имеет смысл применять для разделения большого скрипта на блоки, чтобы упростить чтение и отладку скрипта.
nikolz, Пример выше это просто демонстрация возможностей, ни на что не претендующая.
К примеру у себя использую следующий вариант (кусочек из рабочего код):  
Код
-- Пытаемся загрузить библиотеку
            local fuzzy;
            local success, err = pcall(dofile, path..'\\luafuzzy.lua')
            if not success then
                Log:error("Ошибка при загрузке файла luafuzzy: " .. err)
            else
                -- Если библиотека успешно загружена, используем её
                local fuzzy = luafuzzy()
                Log:info("Библиотека luafuzzy успешно загружена!")
            end

    while WORKING_FLAG do
Перед основным циклом while WORKING_FLAG do 1 раз вызываем "Пан или пропал!" :smile: , ни чего не замедляем, просто Функция dofile выполнит Lua-скрипт, и все переменные и функции, определённые в нём, будут доступны в текущем окружении. И смысл здесь в подключении новой задачи!
Новый период и время проведения торгов на бирже.
 
Станислав, Ok! Спасибо.
Новый период и время проведения торгов на бирже.
 
Подскажите по каким признакам, можно фильтровать время проведения торговых сессий? Ни как не возьму в толк, с новыми изменениями, где начало где конец сессии? Какие активы торгуются? На какой бирже?
Запустить скрипт Lua другим скриптом, Запустить скрипт Lua другим скриптом
 
Nikolay,  Согласен, вопрос составлен не четко, двусмысленно. Но ведь он звучит все таки так:
Цитата
Saturn написал:
То есть один Kua скрипт запущенный в цикле проверял бы если другой Lua скрипт не запущен - то запустить его.
Ответ: Да, это возможно. В Lua можно запустить другой Lua-скрипт с помощью функции dofile или loadfile. Вы можете создать основной скрипт, который будет проверять, запущен ли другой скрипт, и если нет, то запускать его.
Вот такого подхода пример:
Код
-- основной скрипт (main.lua)
local is_other_script_running = false
-- Функция для проверки, запущен ли другой скрипт
function check_if_other_script_running()
    -- Здесь можно реализовать проверку, например, через файл или глобальную переменную
    -- В данном примере просто используем переменную для демонстрации
    return is_other_script_running
end
-- Функция для запуска другого скрипта
function run_other_script()
    is_other_script_running = true
    dofile("other_script.lua")  -- Запуск другого скрипта
    is_other_script_running = false
end
-- Основной цикл
while true do
    if not check_if_other_script_running() then
        print("Другой скрипт не запущен, запускаю...")
        run_other_script()
    else
        print("Другой скрипт уже запущен.")
    end

    -- Пауза перед следующей проверкой
    os.execute("sleep 1")  -- Для Linux/MacOS
    -- os.execute("timeout /t 1")  -- Для Windows
end
Никаких принципиальных сложностей. В этом примере: Основной скрипт (main.lua) работает в бесконечном цикле. Он проверяет, запущен ли другой скрипт (other_script.lua), с помощью функции check_if_other_script_running. Если другой скрипт не запущен, он запускает его с помощью dofile("other_script.lua"). После завершения работы другого скрипта, флаг is_other_script_running сбрасывается.

Вы поднимаете более сложный вопрос, о взаимодействии между скриптами в окружении терминала, в контексте Lua. И отвечаете, прямое управление скриптами в терминале невозможно, но есть обходные пути.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 24 След.
Наверх