Нужна помощь . торговым алгоритмом

Страницы: 1
RSS
Нужна помощь . торговым алгоритмом
 
Всем привет. Нужна  помощь, так как сам не могу дать ума. Алгоритм выставляет 1 ордер.
а мне надо чтоб он сразу выставил много заявок на покупку но каждая следующая с мешалась на 10 пунктов от последней и всё это на покупку.




Вот алгоритм.


stopped = false
function OnStop()
stopped = true
return 5000
end

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



function main()

local SER = getParamEx("QJSIM", "SPBE", "LAST").param_value
while SER  do
sendTransaction(SER)
       sleep (10000)

local Sena = getParamEx("QJSIM", "SPBE", "LAST").param_value


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 -(1)),
QUANTITY="1"
}

while podgot   do

if sendTransaction(podgot)

then break; end;

end
end
end
 
Сергей ВАТ,  Вам нужно подтянуть материальную часть. Это далеко не алгоритм, алгоритм - это прежде всего логика и последовательность действий, что совсем отсутствует в Вашем коде. Ниже выкладываю демонстрационный пример, как код должен выглядеть.  Это не торговый, это демонстрация возможностей!
Код
--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
Страницы: 1
Читают тему
Наверх