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

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

Страницы: Пред. 1 ... 32 33 34 35 36 37 38 39 40 41 42 ... 80 След.
Вынесенные окна
 
Цитата
Roman Koledin написал:
Цитата
nikolz написал:
 
Цитата
Roman Koledin  написал:
 
Цитата
Вы что никогда не торговали на Ninja,ATAS И ТД - и не понимаете что такое работа с несколькими мониторами - и для чего нужна линковка окон ВСЕХ окон - как внешних так и не открепленных - банальный обзор рынка с удобством - а так приходится растягивать терминал на 2 монитора - чтобы линковались нужные окна
 
 понял, что речь идет о якоре.
----------------------
Рассмешили Вопросом о зверинце торговых терминалов.
Вы что считаете это каким-то достижением?
Или просто собираете коллекцию?  
Скорее всего я не такой профи ка вы - имхо мне удобнее (как и многим другим) - два открытых окна старшего и младшего тф , залинкованых с воч листом - пробегая по старшему тф проводим анализ (что куда торговать) - а на младшем точки входа - и во многих случаях нужна мобильность и удобство - а не каждый раз вбивать тикер заново на младшем тф - PS я рад за вас что вы не не бегаете по активам - имхо я бегаю и хорошо 10-12 активов отслеживать - каждому свое - и чем вам этот зверинец не нравится - чем плохи эти терминалы которые по уму сделаны ?
У меня по активам бегает робот.
 
Глюк в программе Quik после обновления, Нужна помощь
 
после кувыркания с версией 9 от сбербанка
я вернул версию 8.7 и нет проблем.
-----------------------
Рекомендую вернуть из архива старую версию и отключить в квике сообщение о новой версии.
----------------------
В следующем году смените версию на очередную новую, если старая не будет устраивать.
-----------------
"Что важнее -"шашечки" на двери или ехать ?"
Вынесенные окна
 
У меня нет проблем так как уже давно не бегаю по всему списку  инструментов.
Вынесенные окна
 
Цитата
Roman Koledin написал:
Цитата
Вы что никогда не торговали на Ninja,ATAS И ТД - и не понимаете что такое работа с несколькими мониторами - и для чего нужна линковка окон ВСЕХ окон - как внешних так и не открепленных - банальный обзор рынка с удобством - а так приходится растягивать терминал на 2 монитора - чтобы линковались нужные окна
понял, что речь идет о якоре.
----------------------
Рассмешили Вопросом о зверинце торговых терминалов.
Вы что считаете это каким-то достижением?
Или просто собираете коллекцию?  
Вы уже работаете в системе, Достаёт при смене точки доступа этот глюк!
 
Цитата
green_X5 написал:
Предложение навскидку - сервер видит попытку подключения "со второго места", проверяет - откликается ли "первое", если нет - закрывает "старую сессию", открывает новую. А не тупо отказывает в соединении, как сейчас.
это предложение плохое.
Если сервер реализует такой алгоритм, то его легко положить  DDS атакой.  
Вынесенные окна
 
Цитата
Roman Koledin написал:
Сделайте ПОЖАЛУЙСТА связь терминала с вынесенными окнами, что бы была возможность линковать вынесенные (открепленные окна) с программмой - без этой функции нет возможности работать с несколькими мониторами  
не понял.
У меня два монитора.
проблем не возникает.
Пример в студию.
ACCESS VIOLATION в Quik 9.3.3.3 при запуске скрипта без сторонних DLL
 
Цитата
Сергей написал:
Цитата
Полный код:

 
Код
  dofile( getScriptPath ()  ..   "\\dll_test_crash.lua" )
is_run  =   true                   

 function   OnInit ()                                                   

   KomCentrID  =   AllocTable ()                                       
    AddColumn  (KomCentrID,  10 ,  "Описание/Действие" ,  true , QTABLE_STRING_TYPE, 60 )   
    AddColumn  (KomCentrID,  20 ,  "Результат" ,  true , QTABLE_STRING_TYPE, 20 )   
    CreateWindow (KomCentrID)   
    SetWindowPos (KomCentrID, 1100 , 250 , 400 , 500 )
   
 end 

 function   main ()                                             
    while  is_run  do                                           
      Body()                                             
    end 
 end 


 function   OnStop ()                                 
    is_run  =   false             
 end   
 
Код
   function   Body ()                  

 sleep ( 100 )

 InsertRow (KomCentrID, 1 )
 SetCell (KomCentrID,  1 ,  10 ,  "COMPLETE")
 SetCell (KomCentrID,  1 ,  20 ,  "COMPLETE")
 SetColor (KomCentrID, 1 , 20 , RGB ( 217 , 255 , 217 ), RGB ( 1 , 1 , 1 ), RGB ( 220 , 220 , 220 ), RGB ( 0 , 0 , 0 ))  --зеленый 

 end   
    Через примерно 100-200 вызовов Body(), QUIK либо закрывается, либо ошибка ACCESS VIOLATION  Посмотрите плиз, дампы также могу выслать.      
Ошибка возникает потому, что Вы создали таблицу с дырками
Если у Вас максимальный номер 20, то надо создать все столбцы с номерами от 1 до 20.
------------------
Пример как надо, чтобы не было мучительно больно
Код
is_run = true

function OnInit()
   KomCentrID = AllocTable()
   for i=1,20 do  AddColumn (KomCentrID,i, "столб."..tostring(i), true, QTABLE_STRING_TYPE,8)  end --надо так
 --  AddColumn (KomCentrID, 10, "столб.10", true, QTABLE_STRING_TYPE,8)   AddColumn (KomCentrID, 20, "столб.20", true, QTABLE_STRING_TYPE,8)    -- а не так
   CreateWindow(KomCentrID)
   SetWindowPos(KomCentrID,110,250,1100,500)
   InsertRow(KomCentrID,-1)
end

function main()

   while is_run do
      Body()
     sleep(100)
   end
end

function OnStop()
    is_run = false
end

function Body()
InsertRow(KomCentrID,1)
SetCell(KomCentrID, 1,10,  "COMP")
SetCell(KomCentrID, 1,20,  "COMP")
SetColor(KomCentrID,1,20,RGB(217,255,217),RGB(1,1,1),RGB(220,220,220),RGB(0,0,0))
SetColor(KomCentrID,1,10,RGB(255,255,0),RGB(1,1,1),RGB(220,220,220),RGB(0,0,0))
end


если вы закомментируете строку for i=1,20..
и удалите коммент в следующей, то получите ваш результат.
Успехов
Как фильтровать график, чтобы избежать перерасхода оперативной памяти?
 
Брокер Сбербанк.
свечей 6488
торговля сейчас.
QUIK версия 8.7.1.3

 
Эмуляция крон внутри lua
 
https://forum.quik.ru/messages/forum17/message65896/topic7644/#message65896
старт скрипта по расписанию
 
Код
isRun=0;  --флаг завершения функции main
fstop=true;  -- флаг остановки скрипта при запуске по расписанию
local Ts={"12:53:00","12:54:00","12:55:00","12:56:00","12:57:00","12:58:00","12:59:00",}  -- расписание
for i=1,#Ts do local x=Ts[i] Ts[i]=60*(60*string.sub(x,1,2)+string.sub(x,4,5))+string.sub(x,7,8); end
------------
function main()
   local jT,x=0,0;
--------------------------
   while isRun do
      if #Ts>jT then  local dt=-1;
         if fstop then fstop=false;  -- в колбеках первой строкой поставить if fstop then return end
            x= getInfoParam("SERVERTIME");
            local z=60*(60*string.sub(x,1,2)+string.sub(x,4,5))+string.sub(x,7,8);
            while #Ts>jT and 0>dt do jT=jT+1; dt=Ts[jT]-z; end
         end
         if dt>=0 then message(x.." до старта "..dt.."сек"); sleep(1000*dt); else sleep(1); end
      end
------------
      if fstop==false then  x= getInfoParam("SERVERTIME");    message("старт "..x.." fstop="..tostring(fstop) ); end
 -- код скрпита
      fstop=true;  --- остановить скрипт
      if fstop then    x= getInfoParam("SERVERTIME");  message("стоп  "..x.." fstop="..tostring(fstop) ); end
   end
end
Поясняю:
-------------------
Данный скрипт позволяет запускать исполняемый код в main и колбеки по расписанию Ts
---------------------
Остановка исполнения кода скрипта и колбеков осуществляется путем установки флага fstop=true.
---------------------
Чтобы не тратить время на колббеки когда скрипт не исполняется надо
поставить в начале колбека
if fstop then return end
старт скрипта по расписанию
 
Добрый день,
Пример запуска скрипта по расписанию.
Если есть вопросы - пишите
Код
local isRun=0;  --флаг завершения функции main
local fstop=true;  -- флаг остановки скрипта при запуске по расписанию
local Ts={"12:53:00","12:54:00","12:55:00","12:56:00","12:57:00","12:58:00","12:59:00",}
for i=1,#Ts do local x=Ts[i] Ts[i]=60*(60*string.sub(x,1,2)+string.sub(x,4,5))+string.sub(x,7,8); end
------------
function main()
   local jT,x=0,0;
   while isRun do
      if #Ts>jT then  local dt=-1;
         if fstop then fstop=false;  -- в колбеках первой строкой поставить if fstop then return end
            x= getInfoParam("SERVERTIME"); --      local x=os.date("%X");
            local z=60*(60*string.sub(x,1,2)+string.sub(x,4,5))+string.sub(x,7,8);
            while #Ts>jT and 0>dt do jT=jT+1; dt=Ts[jT]-z; end
         end
         if dt>=0 then message(x.." до старта "..dt.."сек"); sleep(1000*dt); else sleep(1); end
      end
      if fstop==false then  x= getInfoParam("SERVERTIME");    message("старт "..x.." fstop="..tostring(fstop) ); end
  -- исполнение скрпита
      fstop=true;  --- остановить скрипт
      if fstop then    x= getInfoParam("SERVERTIME");  message("стоп  "..x.." fstop="..tostring(fstop) ); end
   end
end

Эмуляция крон внутри lua
 
если знаете, что такое системный event и timer, то можно использовать их.
Эмуляция крон внутри lua
 
Цитата
BlaZed написал:
Цитата
nikolz написал:
 
Цитата
BlaZed  написал:
Можно в основном цикле сравнивать локальное время компа с вашими требованиями к работе скрипта по времени.
При соответствии выполнять функционал, при несоответствии крутить пустой цикл.
 вместо пустого цикла используйте
sleep(время ожидания до следующего запуска)
Естественно пустой цикл со слипом, я просто не стал очевидные вещи расписывать
естественно, если в цикле что-то исполняется то это уже не пустой.
------------------
более того, нет надобности еще в одном цикле в main.
Эмуляция крон внутри lua
 
Цитата
BlaZed написал:
Можно в основном цикле сравнивать локальное время компа с вашими требованиями к работе скрипта по времени.
При соответствии выполнять функционал, при несоответствии крутить пустой цикл.
вместо пустого цикла используйте
sleep(время ожидания до следующего запуска)
Эмуляция крон внутри lua
 
простейший вариант:  sleep +  текстовый файл с расписанием
После вызова ds:Close() не работает callback при перезаказе данных
 
все верно, не работает.
----------------
добавьте в цикл sleep(1)
загрузка процессора снижается в  30 раз.
Получение данных о выставленных заявках из таблицы "Состояние счета"
 
Цитата
Игорь написал:
Добрый день,

Подскажите есть ли возможность получить данные о выставленных заявках по инструменту из таблицы "Состояние счета". Столбцы "В покупке", "В продаже"
При опросе таблицы "заявки" в конце дня из за большого количества строк скрипт начинает дико тормозить.
читайте из таблицы заявок лишь активные, тормозить никогда не будет
например у меня в тесте за 4 часа было выставлено и снято  200 тысяч заявок
никаких тормозов.
----------------------
ещ можно читать из таблицы  Позиции по инструментам

ПараметрТипОписание
sec_code STRING Код инструмента
trdaccid STRING Счет депо
firmid STRING Идентификатор фирмы
client_code STRING Код клиента
openbal NUMBER Входящий остаток
openlimit NUMBER Входящий лимит
currentbal NUMBER Текущий остаток
currentlimit NUMBER Текущий лимит
locked_sell NUMBER В продаже. Количество инструментов, заблокированное под исполнение заявок  клиента на продажу
locked_buy NUMBER В покупке. Количество инструментов в активных заявках клиента на  покупку
locked_buy_value NUMBER Стоимость инструментов, заблокированных под покупку
locked_sell_value NUMBER Стоимость инструментов, заблокированных под продажу
wa_position_price NUMBER Цена приобретения
limit_kind NUMBER Срок расчётов. Возможные значения:  
  • положительные целые числа, начиная с «0», соответствующие срокам расчётов из
    таблицы «Позиции по инструментам»: «0» – T0, «1» – T1, «2» – T2 и т.д.;
  • отрицательные целые числа – технологические лимиты (используются для
    внутренней работы системы QUIK)

Индикаторы и скрипты, Получение данных с индикаторов
 
вообще-то, ответ на ваш вопрос в начале темы:
МОЖНО.
--------------------
вопрос скорее всего в том,
почему Вам бы самому не написать эту функцию,
если она Вам нужна.
Индикаторы и скрипты, Получение данных с индикаторов
 
Цитата
Дмитрий написал:
Цитата
nikolz написал:
 
Цитата
Дмитрий  написал:
   Можно и так через скрипт получить код инструмента с графика, но лучше, конечно, чтобы была функция встроенная в quik, без всяких редактирований таблицы tool как в скрипте:

 
Код
      is_run    =       true   

chart_tag    =       "tag"   

   local    tool    =    {
    [  "Сбербанк [Price]"  ]    =       "SBER"   ,
    [  "ГАЗПРОМ ао [Price]"  ]    =       "GAZP"   ,
    [  "ЛУКОЙЛ [Price]"  ]    =       "LKOH"   ,
    [  "Роснефть [Price]"  ]    =       "ROSN"   
}

   function     candle ()
    allcandles    =       getNumCandles   (chart_tag)
    tab, count, leg    =       getCandlesByIndex   (chart_tag,    0   ,    0   , allcandles)
       for    key, val    in    pairs(tool)    do   
           if    key    =      =    leg    then   
            codeSec    =    val
           end   
       end   
       return    codeSec
   end   

   function     main ()
       while    is_run    do   
        candle()
           message   (tostring(codeSec),    1   )
           sleep   (   1000   )
       end   
   end         
 
 Вы что-то путаете  или невнимательно читали документацию qLua.
Если вы хотите получить данные по инструментам в скрипте (как в вашем примере), а не в индикаторе,
то для этого уже есть функции
-----------------------
CreateDataSource
и O, H, L, C, V, T -  Функции в качестве параметра принимают индекс свечи и возвращают  соответствующее значение.
-----------------------------
и tag вообще не нужен для этого.
Нужно получить код инструмента графика в скрипт, а не через индикатор. В этой функции такого нет. И в других функциях тоже нет. Поэтому хорошо бы было, чтобы такая функция была. А в примере выше показан способ получения кода через имеющуюся функцию, но в нём есть недостаток - нужно вручную вписывать названия подписей инструментов.
Возможно, я не понял, но Ваш вопрос в тексте все время разный.
-------------------
Я вообще-то говорю о получении значений параметров свеч, т е цены инструмента
и это же Вы получаете в своем примере.
---------------------
Но Вы хотите получить нечто иное, а именно:
В начале темы это
" получать данные переменных индикаторов".
а теперь
"получить код инструмента графика "
Первое понятие  "данные переменных индикаторов"  - вообще ваше ноу-хау.
--------------------
Если хотите получить в скрипт код инструмента на графике, например SBER
то как Вы будете выбирать с какого графика, открытого в терминале  вы хотите получить код инструмента?


Size()
 
Цитата
Alexey написал:
Прошу помощи у знающих:
Кто-нибудь может сказать в чем ошибка:
Код условный, суть в том, что когда в качестве второго оператора цикла используется Size индиктор пропадает из вкладки добавления индикатора терминала Quik. Я так понимаю идет какая-то ошибка...

Size = Size()

function Q()
dVal = {};
for i = 1, Size, 1 do
     dVal = 100*i;
end
     return dVal
end

dVal = Q()
без полного кода сказать трудно.
Но у Вас куча дыр в этом условном коде,
которые могут привести к сюрпризам  при выходе из этой функции.
--------------------
бесплатный совет.
------------------
Не надо писать условных кодов, если проблема реальная.
Т к суть проблемы в том, что вы реально, а не условно,  не понимаете как писать индикаторы.
И это видно из вашего условного кода,
-----------------
Индикаторы и скрипты, Получение данных с индикаторов
 
Цитата
Дмитрий написал:
Цитата
Можно и так через скрипт получить код инструмента с графика, но лучше, конечно, чтобы была функция встроенная в quik, без всяких редактирований таблицы tool как в скрипте:

Код
  is_run  =   true 

chart_tag  =   "tag" 

 local  tool  =  {
    [ "Сбербанк [Price]" ]  =   "SBER" ,
    [ "ГАЗПРОМ ао [Price]" ]  =   "GAZP" ,
    [ "ЛУКОЙЛ [Price]" ]  =   "LKOH" ,
    [ "Роснефть [Price]" ]  =   "ROSN" 
}

 function   candle ()
    allcandles  =   getNumCandles (chart_tag)
    tab, count, leg  =   getCandlesByIndex (chart_tag,  0 ,  0 , allcandles)
     for  key, val  in  pairs(tool)  do 
         if  key  =  =  leg  then 
            codeSec  =  val
         end 
     end 
     return  codeSec
 end 

 function   main ()
     while  is_run  do 
        candle()
         message (tostring(codeSec),  1 )
         sleep ( 1000 )
     end 
 end   
Вы что-то путаете  или невнимательно читали документацию qLua.
Если вы хотите получить данные по инструментам в скрипте (как в вашем примере), а не в индикаторе,
то для этого уже есть функции
-----------------------
CreateDataSource
и O, H, L, C, V, T -  Функции в качестве параметра принимают индекс свечи и возвращают  соответствующее значение.
-----------------------------
и tag вообще не нужен для этого.
Индикаторы и скрипты, Получение данных с индикаторов
 
Цитата
Дмитрий написал:
Цитата
nikolz написал:
если это индикатор в окне на графике,
то можно прочитать значения через идентификатор
Каким образом через идентификатор можно получить значения scd и cld в примере выше? Например, можно через следующий код получить имя линии индикатора:
is_run = true

chart_tag = "code"
numcandles = 3

-- получение всех свечей
function candle()
   allcandles = getNumCandles(chart_tag)
   -- диапазон свечей, по которым идёт поиск
   tab, count, leg = getCandlesByIndex(chart_tag, 0, 0, allcandles)
   message(tostring(leg), 1)
end

function main()
   while is_run do
       candle()
       sleep(1000)
   end
end
здесь выкладывал примеры:
https://forum.quik.ru/forum17/topic7630/
https://forum.quik.ru/forum10/topic7578/
Проблема с подпиской на событие новой свечи в QuikSharp
 
идите к автору QuikSharp
Индикаторы и скрипты, Получение данных с индикаторов
 
если это индикатор в окне на графике,
то можно прочитать значения через идентификатор
Индикаторы и скрипты, Получение данных с индикаторов
 
можно.
самое простое - запишите в файл в одном скрипте и прочитайте из него в другом.
Добавление вкладки и графика, Добавление вкладки и графика
 
https://www.script-coding.com/AutoIT.html
Добавление вкладки и графика, Добавление вкладки и графика
 
эту проблему я решаю используя AutoIT
Просьба сделать в LUA работу со вкладками QUIK
 
Цитата
Sergey Denegin написал:
Здравствуйте!

Просьба к разработчикам: добавить в LUA функции для определения вкладок в QUIK
Это нужно для того, чтобы одного и того же робота можно было запускать для разных инструментах, в разных вкладках.
Тогда в названии вкладки можно было бы писать код инструмента.

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

Заранее спасибо!  
Я решаю эту проблему так:
Идентификатор вкладки пишите по имени инструмента
В индикаторе делает tag по имени инструмента которое читаете в индикаторе(роботе)
-------------
В итоге робот-индикатор будет автоматически настраивать на тот инструмент, в окно которого вы установите этот робот-индикатор
Комиссия брокера и московской биржи.
 
Цитата
Andrey написал:
Цитата
Цитата
Спасибо большое. Теперь мне понятно, что такое сбор за адресную сделку и клиринговая комиссия, жаль что московская биржа так же ловко как вы не могут этого объяснить.
Остался небольшой вопрос по сбору за регистрацию сделки. Ответьте пожалуйста ответ цифрой сколько с меня снимут сбор за регистрацию сделки при покупки 10 лотов и продаже 10 лотов на примере индекса РТС.
1) (купил 10 лотов РТС и продал эти 10 лотов через 5 мин (внутри дня)) = ?
2) (купил 10 лотов РТС и продал эти 10 лотов через 5 дней)  = ?
Добавлю к предыдущему ответу.
Чтобы ответить на Ваш вопрос, вам надо взять регламент брокера и там есть приложение - тарифы
В этом приложении находите свой тариф и считаете.
Как ранее сказал если торгуете внутри дня то тариф обычно меньше, все расчеты делаются в клиринг по сальдо всех сделок брокером.
----------------
Обращаю ваше внимание на тот факт, что на самом деле торгуете не вы, а брокер.
Вы лишь даете поручение ему, а он их либо выполняет либо нет, но за ваши деньги.
Создание и вызов DLL из QLua - прошу помощи
 
это пример из моей dll



extern luaL_Reg atom[];
extern luaL_Reg filt[];

luaL_Reg array[] = {
{"cr",create},{"rd",read}, {"wr",write},{"start",start},{"stop",stop},{NULL, NULL}
};

LUAW32_API int luaopen_nkarray( lua_State *L) {
luaL_newlib(L,array);
lua_setglobal(L, "nkarray");
luaL_newlib(L,atom);
lua_setglobal(L, "nkatom");
luaL_newlib(L,filt);
lua_setglobal(L, "nkdsp");
return 1;
}
Создание и вызов DLL из QLua - прошу помощи
 
пардон выше пример из 5.4
---------------
а это из 5.3

static const luaL_Reg tab_funcs[] = {
 {"concat", tconcat},
#if defined(LUA_COMPAT_MAXN)
 {"maxn", maxn},
#endif
 {"insert", tinsert},
 {"pack", pack},
 {"unpack", unpack},
 {"remove", tremove},
 {"move", tmove},
 {"sort", sort},
 {NULL, NULL}
};


LUAMOD_API int luaopen_table (lua_State *L) {
 luaL_newlib(L, tab_funcs);
#if defined(LUA_COMPAT_UNPACK)
 /* _G.unpack = table.unpack */
 lua_getfield(L, -1, "unpack");
 lua_setglobal(L, "unpack");
#endif
 return 1;
}
Создание и вызов DLL из QLua - прошу помощи
 
любая библиотека 5.3.x
Создание и вызов DLL из QLua - прошу помощи
 
вот вам пример кода из sorce 5.3

/* }====================================================== */


static const luaL_Reg tab_funcs[] = {
 {"concat", tconcat},
 {"insert", tinsert},
 {"pack", tpack},
 {"unpack", tunpack},
 {"remove", tremove},
 {"move", tmove},
 {"sort", sort},
 {NULL, NULL}
};


LUAMOD_API int luaopen_table (lua_State *L) {
 luaL_newlib(L, tab_funcs);
 return 1;
}
Lua - C++ - примеры
 
У меня проблем нет.
Lua - C++ - примеры
 
Цитата
Serg_ написал:
Цитата
  Вы напишите, как я написал или разбирайтесь как правильно раскрыть макрос
Вы уверены ?? Что у Вас это работает ?? У меня НЕ РАБОТАЕТ.
В соседней теме написал Соберите на 5.3 и либ должна быть lua53.lib
Создание и вызов DLL из QLua - прошу помощи
 
Цитата
Serg_ написал:
Цитата
nikolz написал:
надо собирать 5.3 и пример я Вам дал для 5.3
и ссылку на документацию на 5.3
Собсвенно для 5.3.5 - я тоже собирал - ошибка точно такая же.
Я вам все написал как делать.
Вы собираетесь делать или рассуждать?
если у вас 8.7 то все должно быть 5.3
-------------------
анекдот:
Мадам, там кирпич и обрыв,туда нельзя.
Но Вам можно.
Создание и вызов DLL из QLua - прошу помощи
 
и lua 5.3 bin должна быть
Создание и вызов DLL из QLua - прошу помощи
 
и библиотека должна быть lua53.lib
Создание и вызов DLL из QLua - прошу помощи
 
надо собирать 5.3 и пример я Вам дал для 5.3
и ссылку на документацию на 5.3
Создание и вызов DLL из QLua - прошу помощи
 
Почему у вас 5.4 в программе?
8.7 - это 5.3
Создание и вызов DLL из QLua - прошу помощи
 
Цитата
Serg_ написал:
Версия квик - 8.7.13
гадать не видя весь код бессмысленно.
Сообщение говорит, что функции нет.
еще раз скажу, отлаживайте свою функцию без квик.
Научитесь сначала писать dll для луа.
Полагаю Вы знаете как отладить софт.
Возможен экспорт через DDE в OpenOffice Calc? (Он аналог MS Excel)
 
аналог - это любое решение, которое может выполнять те же функции.
Open Office Calc - аналог Excel  в функции создания таблиц.
----------------
В плане экспорта по DDE Open Office вообще не причем.
Возможен экспорт через DDE в OpenOffice Calc? (Он аналог MS Excel)
 
Цитата
D7DSk написал:
гле же ответ  
Цитата
QUIK clients support
?
Вы где в документации прочитали о возможности эксопрта в  OpenOffice?
Причем же здесь поддержка КВИК?
Они что на все придуманные Вами вопросы должны отвечать?  
Lua - C++ - примеры
 
Цитата
nikolz написал:
у вас ошибка в
----------------------
extern "C" LUALIB_API int luaopen_lua_dll_x64_name(lua_State * L) {
    lua_newtable(L);  
   luaL_setfuncs(L, ls_lib, 0);
   lua_pushvalue(L, -1);
   lua_setglobal(L, "lua_dll_x64_name");
   return 0;
}

-- для LUA5.3 надо так:

//=== Регистрация реализованных в dll функций, чтобы они стали "видимы" для Lua ================================//
luaL_Reg ls_lib[] = {
   {"TestFunc", forLua_TestFunc},
   {NULL, NULL}
};

//=== Регистрация названия библиотеки, видимого в скрипте Lua ==================================================//
extern "C" LUALIB_API int luaopen_lua_dll_x64_name(lua_State * L) {
luaL_newlib(L,ls_lib);
lua_setglobal(L,  "lua_dll_x64_name");
  return 1;
}
Вы напишите, как я написал или разбирайтесь как правильно раскрыть макрос
--------------
(luaL_newlibtable(L,l), luaL_setfuncs(L,l,0))
и нужно ли удалять значение из стека
lua_pushvalue(L, -1);
--------------------
у меня один оператор, а умник наплодил три.
Комиссия брокера и московской биржи.
 
в качестве бесплатного совета.
не заморачивайтесь подсчетами ,
а просто смотрите на результат торгового дня и делайте выводы
--------------------  
Комиссия брокера и московской биржи.
 
Цитата
Andrey написал:
Добрый день уважаемые форумчане.
Помогите пжлста разобраться какая сумма списывается со счета при совершении сделки на срочном рынке московской бирже.
Звонил брокеру, сотрудники горячей линии говорят, что согласно моему тарифу комиссия брокера составляет 1р при покупке или при продаже 1 лота на фьючерсном контракте. Т.е. купил затем продал заплатил 1+1=2р. Больше никакой информации по комиссиям они дать не могут.
Позвонил  в московскую биржу, чтобы узнать какую комиссию снимают они. Мне сказали писать в тех поддержку. Написал в тех поддержку. Тех поддержка дала ссылку, мол читайте и разбирайтесь сами, на сайте все написано.
Прошу помочь разобраться на примере фьючерса РТС (RIZ2). На сайте имеется следующая инфа:
Сбор за регистрацию сделки*, руб.9,27
Сбор за адресную сделку*, руб.3,09
Клиринговая комиссия за исполнение контракта*, руб.3,09
Со сбором за регистрацию сделки всё понятно. Что такое сбор за адресную сделку и клиринговая комиссия за исполнения контракта?
Хотелось бы понимать, если я купил 10 лотов на фьючерсном контракте РТС (RIZ2) и через 3 минуты продал их. Какова будет комиссия?
Если я купил 10 лотов на фьючерсном контракте РТС и продал через 3 дня, то какая будет комиссия?
для Вас актуален лишь Сбор за регистрацию сделки
Кроме того сбор на сделки внутри дня ниже чем на сделки результат которых переходит через клиринг.
Так как внутри дня до клиринга сделки лишь фиксируются но расчета по ним нет. Это как игра в преф - внутри дня -пишем пульку а расчет в конце игры.
----------------
Сбор за адресную сделку - это когда в заявке вы укажете, что продаете Васе Пупкину, а тот укажет что покупает у Вас
---------------
Клиринговая комиссия за исполнение контракта- это когда контракт закончился т е происходит экспирация, а у Вас открытый этот контракт на счете.
Lua - C++ - примеры
 
возьмите Scite и поставьте контрольную печать и увидите где ошибки
Lua - C++ - примеры
 
Цитата
Serg_ написал:
Цитата
nikolz написал:
sweg
 
Цитата
nikolz написал:
 
Цитата
Serg_  написал:
 
Цитата
 nikolz   написал:
ну как знаете
я Вам пишу со своих работающих исходников
  Так  я не понял. А в чем ошибка то в lua_newtable(L);   ?

согласно документации можно и так и эдак:
Но если можно и так и эдак, то почему ошибка то возникает.
поставьте контрольную печать, либо выложите свой исходник полностью.
Lua - C++ - примеры
 
используйте SciTe для отладки Вашего теста
Lua - C++ - примеры
 
Цитата
Serg_ написал:
Цитата
nikolz написал:
ну как знаете
я Вам пишу со своих работающих исходников
Так  я не понял. А в чем ошибка то в lua_newtable(L);   ?
если непонятно, то смотрим документацию:
https://www.lua.org/manual/5.3/manual.html
согласно документации можно и так и эдак:
luaL_newlib

void luaL_newlib (lua_State *L, const luaL_Reg l[]);

Создает новую таблицу и регистрирует там функции в списке l.

Он реализован в виде следующего макроса:

(luaL_newlibtable(L,l), luaL_setfuncs(L,l,0))

Массив lдолжен быть фактическим массивом, а не указателем на него.

luaL_newlibtable

аннулирует luaL_newlibtable (lua_State *L, const luaL_Reg l[]);

Создает новую таблицу с размером, оптимизированным для хранения всех записей в массиве l(но фактически не сохраняет их). Оно предназначено для использования в сочетании с luaL_setfuncs(см. luaL_newlib).

Он реализован в виде макроса. Массив lдолжен быть фактическим массивом, а не указателем на него.

Страницы: Пред. 1 ... 32 33 34 35 36 37 38 39 40 41 42 ... 80 След.
Наверх