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

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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 13 След.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
не могу полностью согласиться, важно не то что узнают, важней что начнут активно применять
  У вас есть сомнения насчет применения?
Ответ (ваш):
Цитата
VPM написал:
Деньги в (классическом понимании) и выгода двигают рынки, и не только фондовый.
 Поэтому, некоторая локально эффективная стратегия, "пойдет" в массы, но при некотором уровне "массовости", будет, как я описал, разрушена.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
строго математически обоснованы
  Вы живете в идеальном математическом мире :smile: ?  Кто вам сказал, что рынок описывается вашей математической моделью? Есть хорошая Ньютоновская модель описания макромира, но она не сильно подходит для описания микромира и это определяется эмпирически (на экспериментах).
  Вы не поняли, что авторы, предлагающие универсальные доходные стратегии торгов либо сильно наивные люди, но скорее хорошие предприниматели.
Я написал:
Цитата
TGB написал:
принципиальной особенностью прибыльной стратегии является ее зависимость от поведения участников фондового рынка (многие из которых используют роботы) и ограниченность круга участников, ее использующих.
  где "ограниченность круга участников" является ключевым утверждением.
---
   Представьте на минуту, что вы сумели найти доходную стратегию торгов устойчиво обеспечивающую прибыль 60% годовых. Если вы хоть что-то понимаете в фондовом рынке, то как только эту стратегию станут использовать другие участники рынка, то они будут разрушать вашу стратегию.
-----
   Я допускаю что многочисленные авторы что-то заработали на рекламируемых ими стратегиями торгов, но сейчас они зарабатывают на издаваемых ими книгах.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Разработка и оптимизация торговой стратегии — это сложный процесс, который требует глубокого понимания рынка и инструментов анализа.
 Согласен.
 --------
Но не надо питать особых иллюзий относительно написанного VPM в декларотивном / рекламном стиле  :smile: .
  Фондовый биржевой, краткосрочный (с периодом до полгода) рынок — это, во многом, рефлексивная игра с локально псевдо-нулевой суммой. Во-первых, он существенно зависит от действий его участников, а во-вторых, на нем деньги не создаются, а, в основном, перераспределяются между его участниками. Прибыль любого его участника — это, в конце концов, в значительной части, чьи-то убытки. Если предположить, что все участники такого рынка, используют некоторую общую прибыльную стратегию торгов, то, понятно, что все они, одновременно, в прибыли не окажутся. Таким образом, не существует общей прибыльной стратегии торгов для приблизительно описанной реальности, в которой есть еще и приток/отток финансовых средств в рынок из вне. Рефлективность фондового рынка порождает возможность манипуляции рынком крупными его участниками. Причем, не только своими действиями на нем, но информационными вбросами, влияющими на поведение его участников. Кроме того, этот рынок является инсайдерским, так как среди его участников всегда присутствуют те, которым раньше других доступна информация, влияющая на его поведение. Надо понимать, что использование вероятностных моделей поведения рынка, во многих случаях это сильное допущение из-за отсутствия более адекватных моделей.
  В каком-то смысле, фондовый рынок подобен локально неустойчивой, но, до поры до времени, самовосстанавливающейся финансовой пирамиде. Собственно говоря, все социальные процессы, в том числе, происходящие в локальных, а также в глобальной экономике, имеют «пирамидальный» характер. Наблюдаемые политико-экономические кризисы – это, во многом, проявление такой «пирамидальности», обусловленной природой человека.
  Из написанного выше следует, что принципиальной особенностью прибыльной стратегии является ее зависимость от поведения участников фондового рынка (многие из которых используют роботы) и ограниченность круга участников, ее использующих.
  С учетом того, что фондовый рынок меняется, для обеспечения прибыльности, должна меняться стратегия торгов.
limit_kind в таблице depo_limit
 
Цитата
Nikolay написал:
limit_kind - это режим торгов инструмента
  Присоединяюсь: Дата расчета это не режим торгов.
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
 
Anton Belonogov спасибо.
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
 
Цитата
Anton Belonogov написал:
Демо-доступ предоставляется сроком на один месяц, учетная запись U0222125 была действительна в период 16.01.2025-16.02.2025.
Сейчас Вы можете повторно пройти  регистрацию  и получить новую учетную запись.
   Спасибо. После получения новой записи заработало.
Но, наверное, когда заканчивается срок учетной записи, сообщение могло бы быть таким: "Срок вашей учетной записи истек. Вы можете зарегистрироваться повторно".
И еще: я регистрировался 14.02.36, но похоже слишком рано, когда не истек срок предыдущей учетной записи.
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
 
Цитата
Anton Belonogov написал:
Сообщите, пожалуйста, с каким логином Вы подключались.
  QUIK_LOGIN = "U0222125"
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
 
Цитата
TGB написал:
несколько цифр, которые видны при подключенном к бирже терминале QUIK
    Интересно, как можно видеть цифры, если демо-терминал не подключается к серверу, а выдается сообщение: "Срок лицензии истек"?
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
 
Цитата
Anton Belonogov написал:
В ответ на Ваше письмо мы попросили уточнить UID, это было в 10:30. Ответ не получили.Дублируем наш запрос - можно ответить здесь или в письме.
  Похоже партизаны перерезали нашу с вами связь  :smile: . Я от вас сообщений не получаю. в том числе дублирующих.
1. Из интернета: "Ваш UID терминала QUIK (UID – это несколько цифр, которые видны при подключенном к бирже терминале QUIK в левом верхнем углу рядом с фамилией)"
2. Я в в своей почте не нашел вашего ответа.
3. Я запускаю Quik_Junior_v11.4.1 и не вижу, хоть убейте :smile:,  "несколько цифр, которые видны при подключенном к бирже терминале QUIK в левом верхнем углу рядом с фамилией)"
4. Для меня загадка, что такое UID в Quik_Junior? Пожалуйста, объясните где его искать.
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
 
Я это сообщение отправил по почте в поддержку в 10.26. Сейчас 16.29.  Поддержку всю уволили?
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
 
При попытке подключиться (с полученным логином и паролем) к демоверсии (Quik_Junior_v11.4.1) выдается сообщение: "Срок лицензии истек".
В чем причина? Почему? Я лишенец  :smile: ?
Использование индикаторов из терминала
 
Цитата
Acaw написал:
Помогите, пожалуйста, разобраться, как пользоваться индикаторами, которые выложены тут.
  Посмотрите тут: https://forum.quik.ru/forum10/topic8691/
как найти единый счет
 
Так должно работать:
Код
  local str, x, account
  local  class_code = getClassInfo('QJSIM') and 'QJSIM' or 'TQBR'   -- в песочнице 'QJSIM', а в продуктиве 'TQBR' 
  str="trade_accounts";
  for i=0, getNumberOf(str)-1 do 
     x=getItem(str,i) 
     if string.find(x.class_codes, class_code) then account=x.trdaccid; break; end 
  end
перекодировка индикатора с MQL5 в Lua, необходимо простой индикатор написанный в MQL5 перевести для работы в квике. Индикатор ICHI_OSC.
 
Цитата
IkarNikolay написал:
или может что-то не так настроено?
   Вместо unpack надо использовать table.unpack.
Как создать глобальную константу доступную многим скриптам и индикаторам?, Как создать глобальную константу доступную многим скриптам и индикаторам?
 
Цитата
nikolz написал:
у меня библиотека в 3 раза меньше.(43кБ)
  А вот тут, пожалуйста, поподробнее. Ваша библиотека функционально эквивалентна разработки swerg? Где можно увидеть ее код? Каким образом ее могут использовать пользователи?
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
Цитата
VPM написал:
Какую задачу хотите решить?
     В заголовке ветки написано: подключение в скрипте индикаторов папки LuaIndicators с сайта ARQA
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
Цитата
VPM написал:
Из своего опыта нельзя на прямую использовать в алгоритмах эти индикаторы!
    Это вам так кажется. Вы проверили мои коды и нашли ошибки, в том числе транжирство памяти? Если да, то покажите.
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
Цитата
VPM написал:
выше привел код подключения модулей, в том числе алгоритмов, которые ныне упаковываю в класс луа. Вот еще из рабочей программы и здесь уже алгоритмы есть индикаторов
 И где же индикаторы из папки  LuaIndicators? Покажите маленький тест их использования.
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
Цитата
VPM написал:
Вся библиотека индикаторов от любезно предоставленная разработчиками копируется и вставляется в папку LuaIndicators. Что тут можно показать?
 Вы ускользаете от вопроса. Покажите как вы используете эти индикаторы в своем скрипте?
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
Цитата
VPM написал:
Да нет просто скопировать и вставить.
  А это уже интересно. Покажите какой нибуть просто скопированный, вставленный (без последующей модификации) и работающий индикатор из папки LuaIndicators.
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
Цитата
VPM написал:
Скорее не понятно, зачем?
  То есть, если вам в скрипте надо использовать уже существующий индикатор, то вам интересно его программировать  и отлаживать. Если это так, то ваша позиция понятна. Действительно, нет проблем реализовать самому любой индикатор. Но вопрос зачем, когда есть готовые коды некоторых индикаторов?
   Интересно. зачем вы к своему сообщению "присобачили" код? Вы, что, хотите им кого-то напугать  :smile: ?
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
Интересно: нет ни вопросов, ни замечаний. То ли все ясно, то ли не понятно ничего.
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
На всякий случай:
   в кодах индикаторов папки LuaIndicators используется вызов стандартной функции unpack, который, в версиях Lua 5.3 - 5.4 ошибочен и должно быть: table.unpack(......).
   В коде модуля mod_IND.lua это учитывается как ошибочный вариант так и исправленный (строка в модуле: , unpack = unpack or table.unpack).
Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/)
 
1. Инструкция приведена в комментариях теста модуля.

2.  Код теста:
Код
--                                Инструкция
-- 1. Скачать папку LuaIndicators (Примеры функций расчета индикаторов терминала QUIK на языке Lua) с сайта
-- https://arqatech.com/ru/support/files/  и переслать в папку расположения info.exe.
-- 2. Модуль подключения индикаторов(под именем mod_IND.lua) переслать в папку расположения info.exe.
-- 3. Запустить тест test_IND.
-- ----
-- P.S.
-- 1. Учитывать, что при расчете индикаторов первые значения (1 .... Период расчета индикатора - 1)
-- обычно nil.
-- 2. Результат расчета индикатора может иметь несколько значений и это определяется функцией OnCalculate 
-- кода используемого индикатора папки LuaIndicators.
-- 3. В модуле mod_IND.lua представлены три примера объявления заголовочных функций описаний параметров 
-- подключаемых индикаторов. Параметры такой функции это список полей из таблицы Settings соответствующего 
-- индикатора папки LuaIndicators, для которых требуется задать значения, определяющие поведение создаваемого
-- замыкания.

---------------------------------------------------------------------
timeout = 300
is_run = true

function main()
   -- GetDataSource подключается к графику --
   local function GetDataSource(class_code, sec_code, timeframe)
      local ds, Error = CreateDataSource(class_code, sec_code, timeframe)
      -- Ждет 10 сек., пока данные будут получены с сервера --
      for i = 1, 1000 do if not ((Error == "" or Error == nil) and ds:Size() == 0) then break end; sleep(10) end
      if Error ~= "" and Error ~= nil then
         message(debug.getinfo(1).currentline..': Ошибка подключения к графику: '..Error)
         return nil
      end
      return ds
   end
   -------------------------------- Тест индикаторов -------------------------------------------------
   local INDICATORS = require('mod_IND')
   ---------------------------------------------------------------------------------------------------
   --  Подключение к источнику данных (графику)
   local DS = GetDataSource(getClassInfo('QJSIM') and 'QJSIM' or 'TQBR', 'SBER', INTERVAL_M1)
   if not DS then return end -- не удалось подключиться к источнику данных ---
   local size = DS:Size()
   message('size = ' .. size)
   -------------------------------------------------------------------------------------------------
   --   <Функция создания индикаторов> (<Параметры индикатора>)
   -- Результат: функция-замыкание расчета индикатора.
   ------
   -- Вызов полученного замыкания:
   --     <Функция-замыкание>(<Очередное значение для расчета индикатора>)
   --  Результат (возможно несколько значений, определяемых видом индикатора):  значения индикатора, 
   -- определяемые параметрами создания замыкания на основе кода индикатора в папке ...Lua\\LuaIndicators.
   -- !! В кодах индикаторов результат определяется функцией OnCalculate.
   ---------
   --   !  Для сброса индикатора-замыкания в начальное состояние, его надо пересоздать.
   ---------------------------------------------------------------------------------------------------
   local AC_IND1 = INDICATORS.AC(
      3,     -- Период короткой скользящей
      5,     -- Период длинной скользящей
      'SMA'  -- Метод расчета скользящих (SMA, MMA, EMA, WMA, SMMA, VMA)
   ) 

   local AC_IND2 = INDICATORS.AC( -- return value
      5,     -- Период короткой скользящей
      9,     -- Период длинной скользящей
      'SMA'  -- Метод расчета скользящих (SMA, MMA, EMA, WMA, SMMA, VMA)
   ) 

   local MA_IND1 = INDICATORS.MA( -- return value
      5,     -- Период скользящей
      'SMA'  -- Метод расчета скользящих (SMA, MMA, EMA, WMA, SMMA, VMA)
   )

   local MA_IND2 = INDICATORS.ADX( -- return {['ADX'], ['+DI'], ['-DI']}
      7,       -- Период короткой скользящей
      'EMA'    -- Метод расчета скользящих (SMA, MMA, EMA, WMA, SMMA, VMA)
   )
   
   -- Использование индикатора --- 
   for i = 1, size do 
      AC_IND1(DS:C(i))
   end

   for i = 1, size > 15 and 15 or size do 
      AC_IND2(DS:C(i))
   end

   for i = 1, size > 15 and 15 or size  do 
      local tbl = {MA_IND1(DS:C(i))}
      message('MA_IND1 : ' .. tostring(tbl[2]))
   end

   for i = 1, size > 100 and 100 or size  do
     MA_IND2(DS:H(i))
   end
   ---- Сброс индикатора (запрос нового замыкания) ---
   MA_IND2 = INDICATORS.MA( -- return value
      100,       -- Период  скользящей
      'EMA'    -- Метод расчета скользящих (SMA, MMA, EMA, WMA, SMMA, VMA)
   )
   -- Тест индикаторов Конец  ----------------------------------------

   while is_run do
      sleep(timeout)
   end
end

function OnStop()
   is_run = false
   return 10000  -- (млс.) ожидание завершения потока main прежде чем принудительное его завершение ---
end


------------------------------------------------------------------------------------------------
2.  Код модуля:
Код
--- Модуль подключения индикаторов папки LuaIndicators с сайта ARQA (https://arqatech.com/ru/support/files/):
-- Примеры функций расчета индикаторов терминала QUIK на языке Lua.
-------------------------------------------- 
local IND = {}
---------------------------------------------------------------------------------------------------
--- КОНСТАНТЫ -------------------------------------------------------------------------------------
local SMA,MMA,EMA,WMA,SMMA,VMA = 'SMA','MMA','EMA','WMA','SMMA','VMA'
local OPEN,HIGH,LOW,CLOSE,VOLUME,MEDIAN,TYPICAL,WEIGHTED,DIFFERENCE,ANY = 'O','H','L','C','V','M','T','W','D','A'
---------------------------------------------------------------------------------------------------
---------------- Подключение к роботу индикаторы из папки LuaIndicators (с файлами кодов индикаторов) ------------
local pach_IND = getWorkingFolder() .. '\\LuaIndicators'  --     Путь к кодам индикаторов --
-- ! Код индикатора из папки LuaIndicators помещаются в исходном виде внутрь оболочки-фабрики (на Lua), 
-- обеспечивающей создание индикаторов-замыканий с параметрами заданными при вызове такой фабрики.
--  ! Пролог: начало функции-фабрики:     ------
local Prologue = [[ -- создание окружения фабрики ---
local PRM = {...}  ---
PRM = PRM[1]       -- Таблица параметров индикатора ---
------------------------------------------------------
-- Таблица окружения создаваемого замыкания индикатора --
-- Начальная инициализация тиблицы-окружения замыканий-индикаторо (объектами, используемыми в вычислении индикаторов)
-- выполняется из ! текущего окружения фабрики. Существенно только то, что эти объекты должны существовать. 
local ENV_IND = {  
   -- Объекты из _ENV, необходимые для расчета индикаторов --
   tonumber = tonumber
   , tostring = tostring
   , type = type
   , select = select
   , table = table
   , pack = pack or table.pack        -- 
   , unpack = unpack or table.unpack  --
   , string = string
   , math = math
   , package = package
   , require = require
   , debug = debug
   , next = next
   , os = os
   , io = io
   , RGB = RGB
   , message = message
   , getWorkingFolder = getWorkingFolder
   , getScriptPath = getScriptPath
   -- !! Переменнпой ENV_begin таблиц-окружения замыканий-индикаторов будет присвоено окружение-родитель (с чего все началось)
   , ENV_begin = type(ENV_begin) == 'table' and ENV_begin or _ENV  --  при первом формировании таблицы-окружения ENV_begin = _ENV
}
local ENV_ENV = _ENV   -- Сохранения окружения --
_ENV = ENV_IND   -- Переключение окружения перед инициализацией замыкания индикатора ---
]] 

-- -- ! Эпилог: в конце функции-фабрики:     ------
local Epilogue = [[
---- Начало эпилога ---
   if not PRM then
      message(debug.getinfo(1).currentline .. ' ! ОШИБКА: не заданы параметры индикатора ' .. tostring(Settings.Name), 3)
      return 
   end
   --- 
   for k, v in next, PRM do  -- присвоение параметров индикатора --
      if not Settings[k] then
         -- #### Выдача сообщения об ошибки ---
         message(debug.getinfo(1).currentline .. ' ! ОШИБКА в параметрах индикатора ' .. tostring(Settings.Name), 3)
      end
      Settings[k] = v 
   end
   Init()  -- Инициализация фабрики параметрами индикатора --- 

   -- Перегрузка function GetValueEX ---
   function GetValueEX(I,VT, DS) 
      return ds_IND
   end
   
   -- Перегрузка function CandleExist(I,ds)   -- проверка существования свечи  ---
   function CandleExist(I,ds)
      return true
   end 
   
   local Index_IND = 0   -- Внутренний счетчик обращения к индикатору (внешняя локальная переменная замыкания)---
   ------
   _ENV = ENV_ENV    -- Восстановление окружения ---
   return            -- возврат замыкания расчета очередного значения шндикатора --
      function (DS)  -- функция-замыкание для вычисления индикатора --
         _ENV = ENV_IND  -- ENV_IND - переменная хранения окружения, созданного для замыкания индикатора
         ds_IND = DS     -- Передача значения в расчет индикатора ----
         Index_IND = Index_IND + 1
         return  OnCalculate(Index_IND)
      end
]]

local Indicator_factories = {}   -- таблица функций-фабрик создания индикаторов {<Имя индикатора> = <Функция>}  --
----
-- Функция создает фабрики индикаторов на основе кодов из папки LuaIndicators  --
-- Результат функция-замыкание индикатора: F_IND ---
--   Вызов функции: F_IND(val)
-- где val - очередное значение источника индикатора --
-- а результат функции: значения индикатора (их может быть несколько, в зависимости от вида индикатора)
local function Get_Indicator(Indic, Settings)
   local func = Indicator_factories[Indic]
   if not func then -- Ищется код индикатора и создается его фабрика ---
      -- Создание фабрики индикатора (поиск кода индикатора, добавление пролога и эпилога, 
      -- компиляция и добавление в Indicator_factories)
      local folder_of = pach_IND .. '\\' .. Indic .. '.lua'   
      local kod_IND
      --- Чтениие источника  ---
      local kodZ, io_open, err =  pcall( io.open, folder_of, 'r')  
      if io_open then
         kod_IND = io_open:read('*a')
         assert(io_open:close())
      else
         message(debug.getinfo(1).currentline .. ' ! ОШИБКА: нет кода индикатора ' .. tostring(Indic), 3)
         return
      end 
      
      kodZ, func, err =  pcall(load, Prologue .. kod_IND .. Epilogue)
      if not func then
         message(debug.getinfo(1).currentline .. ' ! ОШИБКА: трансляции код индикатора ' .. tostring(Indic) .. '. Подробности: ' .. tostring(err), 3)
         return
      end
      ---
      Indicator_factories[Indic] = func  -- 
   end
   -- Возвращает экземпляр функции индикатора с состоянием, определяемым параметрами вызова данной функции ---
   return func(Settings)   -- результат функция-замыкание индикатора ---
end

---------------------------------------------------------------------------------------------------
--   <Функция создания индикаторов> (<Параметры индикатора>)
-- Результат: функция-замыкание расчета индикатора.
------
-- Вызов полученного замыкания:
--     <Функция-замыкание>(<Очередное значение для расчета индикатора>)
--  Результат (возможно несколько значений, определяемых видом индикатора):  значения индикатора, 
-- определяемые параметрами создания замыкания на основе кода индикатора в папке ...Lua\\LuaIndicators.
-- !! В кодах индикаторов результат определяется функцией OnCalculate.
-----
--   !  Для сброса индикатора-замыкания в начальное состояние, его надо пересоздать.
---------------------------------------------------------------------------------------------------
--------------- Далее представлены три примера объявления заголовочных функций описаний параметров 
-- подключаемых индикаторов. Параметры такой функции это список полей из таблицы Settings соответствующего 
-- индикатора папки LuaIndicators, для которых требуется задать значения, определяющие поведение создаваемого
-- замыкания. Результат: значения функции OnCalculate (их может быть несколько) оответствующего индикатора.
-- AC (Accelerator/Decelerator Oscillator)
IND.AC = function(
   SHORT_Period,  -- Период короткой скользящей
   LONG_Period,   -- Период длинной скользящей
   Metod          -- Метод расчета скользящих (SMA, MMA, EMA, WMA, SMMA, VMA)
)
   local Settings = {
      SHORT_Period = SHORT_Period, 
      LONG_Period = LONG_Period, 
      Metod = Metod
   }
   
   -- Возвращает экземпляр функции индикатора с состоянием, определяемым параметрами вызова текущей функции--
   return Get_Indicator('AC', Settings)
end

--Average Directional Movement Index ("ADX")
IND.ADX = function( 
   Period,        -- Период
   Metod          -- Метод расчета скользящих (SMA, MMA, EMA, WMA, SMMA, VMA)
)
   local Settings = {
      Period = Period, 
      Metod = Metod
   }
   
   -- Возвращает экземпляр функции индикатора с состоянием, определяемым параметрами вызова текущей функции-
   return Get_Indicator('ADX', Settings)
end

--Moving Average ("MA")    ( 50000 циклов,  Period = 100, Metod = SMA:  340 млс.)
IND.MA = function(
   Period,        -- Период
   Metod          -- Метод расчета скользящих (SMA, MMA, EMA, WMA, SMMA, VMA)
)
   local Settings = {
      Period = Period,  
      Metod = Metod
   }
   
   -- Возвращает экземпляр функции индикатора с состоянием, определяемым параметрами вызова текущей функции-
   return Get_Indicator('MA', Settings)
end
--   И так далее (по образу и подобию уже представленных)  ---
return IND
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
а предложений я жду от Вас, или страна напрасно Вас учила?.  
   Вы что не поняли? Я же вам написал  :smile: :
Цитата
TGB написал:
Попробуйте использовать амбивалентную нормировку виртуального ксю-распределения мега-базовой котировки опционов инструментов   .
  В переводе на русский это значит:
1)  2349.6 / 2349.3 :  равно 1,000127698
2)  77.49 / 77.33 : равно  1,002069055
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
nikolz написал: - читать  VPM написал:
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Проблема лежит в прямой плоскости озвученной в заголовке данной ветки - системе принятия решений.
   Ну, надо же. какая глубокая мысль :smile: . Глаза нам открыли.

Цитата
VPM написал:
проблема чисто на мой взгляд математическая, давно известная человечеству, да и мне, просто откладывал ее решения на потом, видимо настал тот потом.
  Зачем откладывали? Ждем вашего решения и запасаемся поп-корном :smile: .

Цитата
nikolz написал:
возникает маcштаб или фрактальность, всё б ни чего когда котировки цены разных инструментов одинаковы или близки.
 Попробуйте использовать амбивалентную нормировку виртуального ксю-распределения мега-базовой котировки опционов инструментов  :smile: .
Что будет, если внешняя dll изменит содержимое строки Lua?
 
Цитата
paluke написал:
А еще должна быть какая-то непустая реализация макросов lua_lock()/lua_unlock() в llimits.h
   Если интересно, то предложенный и проверенный мною вариант реализации этих макросов для обеспечения многопоточности QLua: https://forum.quik.ru/messages/forum10/message54696/topic6356/#message54696
------
Что будет, если внешняя dll изменит содержимое строки Lua?
 
Цитата
Serge123 написал:
Адрес структуры для локальной строки передаётся в виде указателя в параметре при вызове из Lua скрипта моей dll.
  Далее:
 char* str_h = (char*) Адрес структуры;
И с str_h (указатель открытый для записи) делаете все, что хотите (в пределах размера строки).
  Но, написанное выше не отменяет, то, что так делать не стоит. Вам интересно стрелять по своим ногам?
  Если вы так сильно озабочены эффективностью (только непонятно что вас не устраивает, конкретно для решения вашей задачи, в Lua?), то, наверное, для вас имеет смысл все, кроме интерфейса с QUIK, писать на C (а может быть на MASM  :smile: ). Все остальное будет менее эффективно и скорее всего затратнее, с учетом необходимости выполнения научно-исследовательской работы по скрещиванию dll с Lua  :smile: .
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Да и я до соберу простую "рыбу"  выложу.
 Это не лечится :smile:  Сдаюсь
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Так как складывается впечатление что Вы часть лекций пропускали, ни какой аргументации, одни эмоции, извините ну мне не интересно  
   У вас не только тексты, но впечатления сильно ошибочные  :smile: . На всякий случай, я закончил ведущий московский институт с красным дипломом. И хорошо что вам стало неинтересно.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Они не имеют собственного стека вызовов, а используют стек вызовов основного потока.
  Опять не поняли (хотя написали формально правильно), что сопрограммы не могут выполняться параллельно с потоком, в котором вызваны, Вы понимаете что представляет собой поток в windows?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
что Вас так разволновало, Вы не знакомы сопрограммами или функциями обратного вызова? Или Вам не известно что в LUA реализована неблокирующая, асинхронная обработка сопрограммы : События обрабатываются в фоновом режиме, что позволяет приложению продолжать выполнять другие задачи без блокировки, до вызова события? Ну так попробуйте пример. Уже все рассказал и показал.  
  Если бы вы это писали в своем локальном дневнике, то мне бы было "по баробану", но вы это заявляете публично и безопяляционно, с уверенностью "отбитого" дилетанта. Вы же вводите в заблуждение тех пользователей, для которых программирование не является профессиональной деятельностью. Вы, что не понимаете, что сопрограммы выполняются в общем потоке с функцией, вызвавшей ее? Никакого фона выполнения сопрограмм не существует. Вообще, прежде чем выкладывать свои завиральные идеи, наверное, вам было бы полезно что-то почитать по IT.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Вы вообще о чем?    Вы себя о позиционируете как опытного знающего программиста, не хотите обсудить код?
    Причем тут опытный, знающий программист. Почитайте про взаимодействие коллеков и потока main в истории форума. Там много не моих сообщений.
 После чтения истории, вы, наверное, сможете понять, что коллбеки и поток main выполняются последовательно и тогда зачем мне читать ваш текст, в котором присутствуют какие то фоновые потоки вашего воображения.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Что это за угроза я не понял  
  Начало обеспечения:
1. Зачем вы совою закомплексованность (много текста) выносите на общее обозрение?
2. Вы писатель, а не читатель?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
TGB , "Зачем козе баян"? В Ваш "неокрепший ум смуту" внести мне не под силу. Вам бы не мешало для начало научиться читать, от начало до конца,  улавливая смыслы. А поэтов здесь хватает и без Вас.
  Вы меня, наверное, не поняли. Все-таки надо читать историю форума.
Если вы хотите продолжить общение со мной в стиле (посмотрите начиная со ссылки и до конца ветки): https://forum.quik.ru/messages/forum10/message62917/topic7277/#message62917,
то, при том что это мне не интересно, я вам это обеспечу.
Почему в этой программке утекает память??
 
Цитата
Serge123 написал:
И ещё я вижу торможение, когда окно "Доступные скрипты" располагаю поверх стаканов. В этом случае хорошо видно, что циферки занятости памяти напротив скрипта перерисовываются не мгновенно. Хотя, GPU в диспетчере тоже простаивает, как и CPU. Поэтому я не знаю, как объяснить это торможение.
   Натуру не исправить  :smile: .
Почему в этой программке утекает память??
 
Цитата
Serge123 написал:
В принципе, ясно. Тогда, получается, что у меня память не утекает? Надо попробовать запустить сборщик мусора явно и посмотреть, сколько памяти освободится.
   Возможно я ошибаюсь, но вашей целью является получение прибыли на фондовом рынке. А если это так, то тестирование Qlua - это потеря вашего времени.
   Я понимаю, что вы по своей натуре перфекционист (все должно быть понятно и идеально), но вам приходится жить в этом неидеальном мире и поэтому, как мне кажется, стоит "забить" на его несовершенство. Среда, в которой вы реализуете свои алгоритмы несовершенна, но этим стоит заниматься только тогда, когда это вам мешает конкретно.  Иначе вы будете решать чужие задачи (вроде отладки Lua).
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Суть в следующем: В Lua относительно легко реализуется, событийно-ориентированная модель программирования, она хорошо подходит для обработки асинхронных событий. Такой подход позволяет приложениям Lua обрабатывать несколько событий одновременно без блокировки основного потока выполнения приложения. События обрабатываются в фоновом режиме, не прерывая поток выполнения приложения.
 Вы зачем вносите "смуту" в неокрепшие умы  :smile: ?
Откуда вам известно, что коллбеки не блокируют поток main?
Вы прежде чем писать свои сообщения, почитайте сообщения, квалифицированно объясняющие взаимодействие коллбеков и потока main (их много, написанных ранее чем вы появились на форуме). Оттуда вы сможете почерпнуть, что коды на Lua (это не C-функции) синхронизируются (выполняются последовательно, то есть, когда выполняется Lua-код, то Lua-код потока main блокируется и наоборот).
  Вообще, я не стал бы комментировать ваше сообщение, но вы своими безопеляционными сообщениями можете сбить с толку тех, кто не в теме.
 Свои неокрепшие мысли, наверное, можно записывать в своем локальном дневнике.
Почему в этой программке утекает память??
 
Цитата
Serge123 написал:
я присваиваю false ссылкам на таблицы
  Неиспользуемым ссылкам надо присваивать nil.
Почему в этой программке утекает память??
 
Цитата
Serge123 написал:
С каждой записью в файл утекает ~ 50 байтов памяти, а почему она не собирается сборщиком мусора??
  Утечка есть. Это ошибка разработчика языка Lua 5.4.1 при реализации стандартных функций io.  Файлы это не тип данных Lua и сборщиком мусора они не обрабатываются, поэтому и требуется функция close (в которой похоже есть ошибка).
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
Этот комментарий, сугубо, для поддержки QUIK.
---
 Как результат  *  в данной ветке, возникло дополнительное предложение:
 4) На форумах ARQA для комментирующих пользователей ввести месячный лимит трафика, после которого не будет возможность вводить комментарии.
     Значением этого лимита могло быть: <Годовой трафик nikolz> / 12 / 10. Но, конечно, насчет значения лимита, решать ARQA.
     Наличие такого лимита, обеспечило бы:
      - экономию дискового пространства баз форумов;
      - автоматическое модерирование форумов за счет принуждения думать о краткости и четкости текстов, пишущих комментаторами;
      - удобство для читающих комментарии, в которых будет меньше флуда.
Проверка на nil
 
Цитата
Евгений написал:
Еще ньанс: Данная ошибка выскочила всего 1 раз за год бесперебойной работы скрипта.
  Следующий раз, пожалуйста, начинайте с нюансов и указывайте версию QUIK, а также версию QLua. А то вы мозги форуму чуть не свихнули :smile: .
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
Цитата
TGB написал:
Вам светит за три года приблизительно следующая сумма: 1000000 * 3,7 * 3,7 * 3,7 - 1000000 - 3*1000000*0,2 = 49000000 руб.
  В приблизительных вычислениях ошибка, но возражения не дождался.
Точно: 1000000 * 4,7 * 4,7 * 4,7 - 1000000 - 3*1000000*0,2 = 102223000 руб. до уплаты налога.
Проверка на nil
 
Цитата
Евгений написал:
Ругается на строчку if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR").cbplplanned==nil then
  Если функция, в которой это происходит небольшая, то выложите ее текст. Трудно определять птицу по заднему оперению :smile:
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
1.
Цитата
nikolz написал:
Я на форуме не только предлагал, но и показывал как это работает у меня.
   Вы опять не поняли.  Я эту ветку создал не для того чтобы обсуждать свои или чужие решения. До сих пор я понимал и решал свои проблемы и при этом пользовался интернетом.
  Если вы читали мой первый комментарий, то в нем написано как можно улучшить QUIK.
2.
Цитата
nikolz написал:
И результаты тестов различных вариантов. https://forum.quik.ru/forum17/topic8426/
 Несмотря на написанное мною в первом пункте, посмотрел и впечатлился:
.
Цитата
nikolz написал:
Смотрим первую картинку.
Нижнее 3 окно в ней - это график прибыль/убыток за 2023 год.
линия зеленая на оси справа показывает положительные 220% -это профит лонг.
линия синяя на оси справа показывает положительные 150% - это профит short
линия белая на оси справа показывает положительные 370% - это профит long+short.
 Сдаюсь :smile: . Таких годовых процентов у меня не было.
Вам мой совет возьмите кредит, ну хотя бы 1000000 руб., ну хотя бы под 20% годовых на 3 года.
Вам светит за три года приблизительно следующая сумма: 1000000 * 3,7 * 3,7 * 3,7 - 1000000 - 3*1000000*0,2 = 49000000 руб.
А может вы уже и сейчас миллиордер :smile: ?
Повторное использование строки
 
Цитата
nikolz написал:
вас так колебет что я повторно написал то, что Вы написали выше?
  Переживаю за то, что много мусора на форуме и могут переполниться его база :smile:
Повторное использование строки
 
Цитата
nikolz написал:
А вы догадайтесь.
   Судя по тому, что вы всегда цитируете сообщения полностью (даже самые длинные), вы, наверное, спамер. Но нельзя исключать с учетом качества выдаваемого вами текста, что вы полуинтеллектуальный робот-спамер :smile: .
Повторное использование строки
 
Цитата
nikolz написал:
Если Вы это сообщение выводите в файл, то пишите сразу в файл. куски сообщения. Каждый новый кусок добавится в конец файлаВ итоге Вам не надо наращивать строки.
  nikolz писатель?  
  Зачем вы пишите, то что было уже написано два раза?:
1)
Цитата
TGB написал:
Почему бы не записывать строку сразу в файл (в системе это буферизуется). Вы проверяли, сколько записей выполняется в файл за 1 секунду, если писать напрямую? Если вы это сделаете, то, возможно, удивитесь.
2)
Цитата
Nikolay написал:
У меня такие потоки для каждой новой записи просто пишутся в файл черезf:write(str..'\n')
  Вы так спамите или не умеете читать :smile: ?
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
1.
Цитата
nikolz написал:
Это делается очень просто. ----------------------Применяю это с момента появления VMLua в КВИКЕ.---------------------Возьмите готовую библиотеку  https://quik2dde.ru/viewtopic.php?id=78 ------------------и используйте всего две функцииCreateEvent и  WaitForSingleObject-------------------Как реализовать очередь есть в документации QLUA  
  Опять вы не поняли. То о чем вы пишите, я у себя реализовал давно, как только начал разбираться с QUIK.
  Сутью 2-го пункта является;
Цитата
TGB написал:
в такой схеме решается тяжелая задача подключения новых версий Lua в QUIK, так как не будет требоваться конфигурирования Lua для многопоточного использования (из-за запуска функций коллбеков в потоке, отличном от потока main, но в контексте пользователя). Подключение новых версий Lua  в QUIK станет в описанной выше схеме рутинной задачей.

2.
Цитата
nikolz написал:
TGB ,
Sleep - это функция, которая останавливает поток и возвращает управление OC.
Что Вы будете модифицировать в ней?
Опять, та же фигня :smile: .  
Я пишу про sleep (это функция QLua):
Цитата
TGB написал:
Это вызов функций обработки коллбеков в видоизмененной sleep с параметрами в нужном формате, считанными из предлагаемых очередей (очереди).
а вы про системную Sleep. Вы, что, не понимаете разницы?

3.
Цитата
TGB написал:
Вы, похоже, очень наивны и полагаете, что разработчики работают за бесплатно? Можно, наверное как то сообразить, что часть комиссии, уплачиваемая брокерам пользователями, идет на зарплату разработчикам, а также в доход акционерам ARQA.
 Где возражения?
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 13 След.
Наверх