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

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

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

Код
   local classCode = "TQBR"
l[B][/B]ocal secCode = "GAZP"
local param = "last"
local is_run = true


function candlesProcessing () 
    while true do
        local paramEx = getParamEx(classCode, secCode, param)
        dr1 = paramEx.param_value
        message (dr1)
        uvb =20
        ovb =( dr1*uvb/100/1000)
        ovbm=dr1+ovb
        sleep (900)
    
        local paramEx = getParamEx(classCode, secCode, param)
        dr2 = paramEx.param_value
        massage (dr2)
        u =20
        ovbml =( dr2*u/100/1000)
        if dr2>ovbm+dr1 then
            OpenPosition()
            sleep (900)
            local paramEx = getParamEx(classCode, secCode, param)
            dr3 = paramEx.param_value
            u =20
            ovbml =( dr2*u/100/1000)
            ovbm2= ovbml+dr2
            ovbmln= dr2-ovbml
            if dr3 > ovbm2 then
                massage (dr2)
                ClosePositionorders()
                delete()
                
            if dr3 > ovbmln then
                message (dr2)
                OpenPosition()
            end    
        end
    end
end


-- Функция ОТКРЫВАЕТ позицию
function OpenPosition()
   -- Устанавливает флаг текущего процесса в ОТКРЫТИЕ позиции
   STATE = "OPEN";
   -- Сбрасывает флаг обработки открытия позиций
   OpenPosProcessed = false;
 
   trans_id_OPT = math.random(1,9999);
   -- Заполняет структуру для отправки транзакции на покупку 2-х ОПЦИОНОВ
   local Transaction={
      ["TRANS_ID"]   = tostring(trans_id_OPT),
      ["ACTION"]     = "NEW_ORDER",
      ["CLASSCODE"]  = classCode,
      ["SECCODE"]    = secCode ,
      ["OPERATION"]  = "B", -- покупка (BUY)
      ["TYPE"]       = "M", -- по рынку (MARKET)
      ["QUANTITY"]   = "2", -- количество
      ["ACCOUNT"]    = TRADE_ACC,
      ["PRICE"]      = tostring(getParamEx(CLASS_CODE_OPT, SEC_CODE_OPT_FOR_OPEN, "offer").param_value + 10*getParamEx(CLASS_CODE_OPT, SEC_CODE_OPT_FOR_OPEN, "SEC_PRICE_STEP").param_value), -- по цене, завышенной на 10 мин. шагов цены
      ["COMMENT"]    = "Покупка опционов скриптом"
      ["ORDER_KEY"]          = tostring(number_order)
   }
   -- Флаг, что ОПЦИОНЫ еще не куплены
   NotBuy_OPT = true;
   local Result = sendTransaction(Transaction);
   
   -- ЕСЛИ функция вернула строку диагностики ошибки, ТО значит транзакция не прошла
   if Result ~= "" then
      -- Выводит сообщение с ошибкой
      message("Покупка ОПЦИОНОВ не удалась!\nОШИБКА: "..Result);
      -- Завершает выполнение функции
      return(0);
   end;
end

-- Функция ЗАКРЫВАЕТ позицию
function ClosePosition()
   -- Устанавливает флаг текущего процесса  в ЗАКРЫТИЕ позиции
   STATE = "CLOSE";
   -- Сбрасывает флаг обработки закрытия позиций
   ClosePosProcessed = false;
 
   trans_id_OPT = math.random(1,9999);
   -- Заполняет структуру для отправки транзакции на продажу 2-х ОПЦИОНОВ
   local Transaction={
      ["TRANS_ID"]   = tostring(trans_id_OPT),
      ["ACTION"]     = "NEW_ORDER",
      ["CLASSCODE"]  = classCode,
      ["SECCODE"]    = secCode ,
      ["OPERATION"]  = "S", -- продажа (SELL)
      ["TYPE"]       = "M", -- по рынку (MARKET)
      ["QUANTITY"]   = "2", -- количество
      ["ACCOUNT"]    = TRADE_ACC,
      ["PRICE"]      = tostring(getParamEx(CLASS_CODE_OPT, SEC_CODE_OPT_FOR_OPEN, "bid").param_value - 10*getParamEx(CLASS_CODE_OPT, SEC_CODE_OPT_FOR_OPEN, "SEC_PRICE_STEP").param_value), -- по цене, заниженной на 10 мин. шагов цены
      ["COMMENT"]    = "Продажа опционов скриптом"
      ["ORDER_KEY"]          = tostring(number_order)
   }
   -- Флаг, что ОПЦИОНЫ еще не проданы
   NotSell_OPT = true;
   local Result = sendTransaction(Transaction);
   -- ЕСЛИ функция вернула строку диагностики ошибки, ТО значит транзакция не прошла
   if Result ~= "" then
      -- Выводит сообщение с ошибкой
      message("Продажа ОПЦИОНОВ не удалась!\nОШИБКА: "..Result);
      -- Завершает выполнение функции
      return(0);
   end;
end

function trasactiondelete(number_order)

id_transact = id_transact + 1

deleteorder  = 
   {
   ["TRANS_ID"]         = tostring(id_transact), 
   ["ACTION"]            = "KILL_ORDER",           
   ["CLASSCODE"]         =classCode,             
   ["SECCODE"]            = secCode ,                       
   ["ACCOUNT"]            = account,            
   ["ORDER_KEY"]          = tostring(number_order)      
   }
   
end

function delete()
    
   num_orders = getNumberOf("orders")
   
   for i = num_orders - 1, 0, -1 do
   
      myorder = getItem("orders", i)
      
      if myorder["client_code"]==client_code and myorder["sec_code"]==tiker then
      
         if bit.band(tonumber(myorder["flags"]),1) > 0 then
         
            message(progname.." ����� ������: "..myorder.order_num)
               
               trasactiondelete(myorder.order_num)
               error_transaction = sendTransaction(deleteorder)
               sleep(300)
               
               if error_transaction ~= "" then
                  message(progname.." : ������ ="..error_transaction, 3)
               else
                  message(progname.." : ������ ������ "..myorder["order_num"].." ����:"..myorder["price"].." �����: "..myorder["balance"].." �����������:"..myorder["brokerref"], 2)
               end
            
            --break -- ������� �� ����� ����� ���� ��� ����� 1 �������� ������

         end
   
      end
   
   end

end



function ClosePositionorders()
    
   num_orders = getNumberOf("orders")
   
   for i = num_orders - 1, 0, -1 do
   
      myorder = getItem("orders", i)
      
      if myorder["client_code"]==client_code and myorder["sec_code"]==tiker then
      
         if bit.band(tonumber(myorder["flags"]),1) > 0 then
         
            message(progname.." ����� ������: "..myorder.order_num)
               
          ClosePosition(myorder.order_num)
               error_transaction = sendTransaction(deleteorder)
               sleep(300)
               
               if error_transaction ~= "" then
                  message(progname.." : ������ ="..error_transaction, 3)
               else
                  message(progname.." : ������ ������ "..myorder["order_num"].." ����:"..myorder["price"].." �����: "..myorder["balance"].." �����������:"..myorder["brokerref"], 2)
               end
            
            --break -- ������� �� ����� ����� ���� ��� ����� 1 �������� ������

         end
   
      end
   
   end

end


function main ()
   while is_run do
       candlesProcessing ()           
       
   end
end     
Скрипт правильно ли написан
 
Есть ли програмисты,хотел бы проверить
правильно ли написан.
local classCode = "TQBR"
local secCode = "GAZP"
local param = "last"
local is_run = true


function candlesProcessing ()
   while true do
       local paramEx = getParamEx(classCode, secCode, param)
       dr1 = paramEx.param_value
       print (dr1)
       uvb =20
       ovb =( dr1*uvb/100/1000)
       ovbm=dr1+ovb
       sleep (900)
   
       local paramEx = getParamEx(classCode, secCode, param)
       dr2 = paramEx.param_value
       print (dr2)
       u =20
       ovbml =( dr2*u/100/1000)
       if dr2>ovbm+dr1 :
           OpenPosition()
           sleep (900)
           local paramEx = getParamEx(classCode, secCode, param)
           dr3 = paramEx.param_value
           u =20
           ovbml =( dr2*u/100/1000)
           ovbm2= ovbml+dr2
           ovbmln= dr2-ovbml
           if dr3 > ovbm2:
               print (dr2)
               ClosePositionorders()
               delete()
               
           if dr3 > ovbmln:
               print (dr2)
               OpenPosition()
           end    
       end
   end
end


-- Функция ОТКРЫВАЕТ позицию
function OpenPosition()
  -- Устанавливает флаг текущего процесса в ОТКРЫТИЕ позиции
  STATE = "OPEN";
  -- Сбрасывает флаг обработки открытия позиций
  OpenPosProcessed = false;

  trans_id_OPT = math.random(1,9999);
  -- Заполняет структуру для отправки транзакции на покупку 2-х ОПЦИОНОВ
  local Transaction={
     ["TRANS_ID"]   = tostring(trans_id_OPT),
     ["ACTION"]     = "NEW_ORDER",
     ["CLASSCODE"]  = CLASS_CODE_OPT,
     ["SECCODE"]    = SEC_CODE_OPT_FOR_OPEN,
     ["OPERATION"]  = "B", -- покупка (BUY)
     ["TYPE"]       = "M", -- по рынку (MARKET)
     ["QUANTITY"]   = "2", -- количество
     ["ACCOUNT"]    = TRADE_ACC,
     ["PRICE"]      = tostring(getParamEx(CLASS_CODE_OPT, SEC_CODE_OPT_FOR_OPEN, "offer").param_value + 10*getParamEx(CLASS_CODE_OPT, SEC_CODE_OPT_FOR_OPEN, "SEC_PRICE_STEP").param_value), -- по цене, завышенной на 10 мин. шагов цены
     ["COMMENT"]    = "Покупка опционов скриптом"
     ["ORDER_KEY"] = tostring(number_order)
  }
  -- Флаг, что ОПЦИОНЫ еще не куплены
  NotBuy_OPT = true;
  local Result = sendTransaction(Transaction);
 
  -- ЕСЛИ функция вернула строку диагностики ошибки, ТО значит транзакция не прошла
  if Result ~= "" then
     -- Выводит сообщение с ошибкой
     message("Покупка ОПЦИОНОВ не удалась!\nОШИБКА: "..Result);
     -- Завершает выполнение функции
     return(0);
  end;
end

-- Функция ЗАКРЫВАЕТ позицию
function ClosePosition()
  -- Устанавливает флаг текущего процесса  в ЗАКРЫТИЕ позиции
  STATE = "CLOSE";
  -- Сбрасывает флаг обработки закрытия позиций
  ClosePosProcessed = false;

  trans_id_OPT = math.random(1,9999);
  -- Заполняет структуру для отправки транзакции на продажу 2-х ОПЦИОНОВ
  local Transaction={
     ["TRANS_ID"]   = tostring(trans_id_OPT),
     ["ACTION"]     = "NEW_ORDER",
     ["CLASSCODE"]  = CLASS_CODE_OPT,
     ["SECCODE"]    = SEC_CODE_OPT_IN_POS,
     ["OPERATION"]  = "S", -- продажа (SELL)
     ["TYPE"]       = "M", -- по рынку (MARKET)
     ["QUANTITY"]   = "2", -- количество
     ["ACCOUNT"]    = TRADE_ACC,
     ["PRICE"]      = tostring(getParamEx(CLASS_CODE_OPT, SEC_CODE_OPT_FOR_OPEN, "bid").param_value - 10*getParamEx(CLASS_CODE_OPT, SEC_CODE_OPT_FOR_OPEN, "SEC_PRICE_STEP").param_value), -- по цене, заниженной на 10 мин. шагов цены
     ["COMMENT"]    = "Продажа опционов скриптом"
     ["ORDER_KEY"] = tostring(number_order)
  }
  -- Флаг, что ОПЦИОНЫ еще не проданы
  NotSell_OPT = true;
  local Result = sendTransaction(Transaction);
  -- ЕСЛИ функция вернула строку диагностики ошибки, ТО значит транзакция не прошла
  if Result ~= "" then
     -- Выводит сообщение с ошибкой
     message("Продажа ОПЦИОНОВ не удалась!\nОШИБКА: "..Result);
     -- Завершает выполнение функции
     return(0);
  end;
end

function trasactiondelete(number_order)

id_transact = id_transact + 1

deleteorder  =
{
["TRANS_ID"] = tostring(id_transact),
["ACTION"] = "KILL_ORDER",
["CLASSCODE"] = class ,
["SECCODE"] = tiker,
["ACCOUNT"] = account,
["ORDER_KEY"] = tostring(number_order)
}

end

function delete()

num_orders = getNumberOf("orders")

for i = num_orders - 1, 0, -1 do

myorder = getItem("orders", i)

if myorder["client_code"]==client_code and myorder["sec_code"]==tiker then

if bit.band(tonumber(myorder["flags"]),1) > 0 then

message(progname.." ����� ������: "..myorder.order_num)

trasactiondelete(myorder.order_num)
error_transaction = sendTransaction(deleteorder)
sleep(300)

if error_transaction ~= "" then
message(progname.." : ������ ="..error_transaction, 3)
else
message(progname.." : ������ ������ "..myorder["order_num"].." ����:"..myorder["price"].." �����: "..myorder["balance"].." �����������:"..myorder["brokerref"], 2)
end

--break -- ������� �� ����� ����� ���� ��� ����� 1 �������� ������

end

end

end

end



function ClosePositionorders()

num_orders = getNumberOf("orders")

for i = num_orders - 1, 0, -1 do

myorder = getItem("orders", i)

if myorder["client_code"]==client_code and myorder["sec_code"]==tiker then

if bit.band(tonumber(myorder["flags"]),1) > 0 then

message(progname.." ����� ������: "..myorder.order_num)

         ClosePosition(myorder.order_num)
error_transaction = sendTransaction(deleteorder)
sleep(300)

if error_transaction ~= "" then
message(progname.." : ������ ="..error_transaction, 3)
else
message(progname.." : ������ ������ "..myorder["order_num"].." ����:"..myorder["price"].." �����: "..myorder["balance"].." �����������:"..myorder["brokerref"], 2)
end

--break -- ������� �� ����� ����� ���� ��� ����� 1 �������� ������

end

end

end

end


function main ()
  while is_run do
      candlesProcessing ()          
     
  end
end
Страницы: 1
Наверх