Π’Ρ…ΠΎΠ΄ Π‘Π»ΠΎΠ³
Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΈ Ρ€Π΅ΠΌΠΎΠ½Ρ‚
Π Π΅ΠΏΠ΅Ρ‚ΠΈΡ‚ΠΎΡ€Ρ‹
ΠšΡ€Π°ΡΠΎΡ‚Π°
ЀрилансСры
Π Π°Π·Π½Ρ‹Π΅ спСциалисты
Π’Ρ€Π΅Π½Π΅Ρ€Ρ‹
Π£Ρ…ΠΎΠ΄ Π·Π° ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹ΠΌΠΈ
Автоинструкторы

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Lua β€” удалённая Ρ€Π°Π±ΠΎΡ‚Π° Π² МосквС

Π”Π°Ρ‚Π°: 2025-02-19
Π”Π΅Ρ‚Π°Π»ΠΈ
Π Π΅Π³ΠΈΠΎΠ½
Москва
Π—Π°Π½ΡΡ‚ΠΎΡΡ‚ΡŒ
дистанционно
Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ
договорная
Π”Π°Ρ‚Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ
2025-02-19
ОписаниС
Автоматизация инвСстиционной стратСгии. Π•ΡΡ‚ΡŒ матСматичСскоС описаниС ΠΌΠΎΠ΄Π΅Π»ΠΈ - Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄ Π½Π° Lua для Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Quik. 1. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ историчСскиС ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ дня ΠΏΠΎ API с ΠœΠΎΡΠ±ΠΈΡ€ΠΆΠΈ (150 Ρ‚ΠΈΠΊΠ΅Ρ€ΠΎΠ²), ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π² эксСль Ρ„Π°ΠΉΠ». 2. На историчСских ΠΊΠΎΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ, коррСляции, ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (ΠΎΠΊΠΎΠ»ΠΎ 5-6 ΡˆΡ‚ΡƒΠΊ Π½Π° Ρ‚ΠΈΠΊΠ΅Ρ€). 3. Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠΏ 5 ΠΈ 5 снизу 4. ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сигнал ΠΊ ΠΏΠΎΠΊΡƒΠΏΠΊΠ΅ этих Π°ΠΊΡ†ΠΈΠΉ Π² Π΅Π΄ΠΈΠ½Ρ‹Ρ… долях ΠΎΡ‚ портфСля (ΠΏΠΎ 20% Π½Π° Π°ΠΊΡ†ΠΈΡŽ). Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ сначала Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΠΈ исходя ΠΈΠ· этого ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ рСбалансировку, хотябы ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π½Π΅ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρ„Π΅Π»ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ (Π½Π΅ ΠΏΠ»Π°Ρ‚ΠΈΠΌ комиссию Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° лишнюю) 5. ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΠΎΠ±ΠΎΡ‚Π° Ρ€Π°Π· Π² дСнь Ρ€ΠΎΠ²Π½ΠΎ Π² 18:30 ΠΏΠΎ мск, Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΡ‚ΡŒ Π― попросил Ρ‡Π°Ρ‚ ΠΆΠΏΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это - ΠΎΠ½ Π²Ρ‹Π΄Π°Π» Π²ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΠ΅ строки, Π½ΠΎ сдСлки ΠΈ рСбалансировку ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΠΎ Π·Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ - Π½ΡƒΠΆΠ½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ спСциалиста function main() waitForConnection() message(“Starting trading algorithm“, 1) while true do local stocks = {} local benchmark_returns = getReturns(“IMOEX“, window) if not benchmark_returns then message(“Error: No IMOEX returns received“, 3) else message(“IMOEX returns successfully loaded“, 1) end for _, ticker in ipairs(tickers) do message(“Processing stock: “ .. ticker, 1) local stock_returns = getReturns(ticker, window) if stock_returns and benchmark_returns then local alpha, beta = calculate_alpha_beta(stock_returns, benchmark_returns, window) if alpha and beta then table.insert(stocks, {ticker = ticker, alpha = alpha, beta = beta}) message(“Stock: “ .. ticker .. “ | Alpha: “ .. tostring(alpha) .. “ | Beta: “ .. tostring(beta), 1) else message(“Alpha/Beta calculation failed for “ .. ticker, 3) end else message(“Error retrieving data for “ .. ticker, 3) end end if #stocks == 0 then message(“No valid stocks found. Skipping order execution.“, 3) else message(“Selected stocks for purchase:“, 1) local top_5 = select_top_5(stocks) for _, stock in ipairs(top_5) do-- LUA script for QUIK: Top-5 stocks by alpha with a 45-day window -- Author: ChatGPT -- Functionality: Connects to QUIK, retrieves stock quotes, calculates alpha and beta, rebalances portfolio with stop-losses -- Connection parameters local IP = “127.0.0.1“ -- QUIK server IP local PORT = “34130“ -- QUIK server port local window = 45 -- Alpha calculation window local tickers = {“GAZP“, “LKOH“, “SBER“, “ROSN“, “VTBR“, “MGNT“, “NVTK“, “GMKN“, “CHMF“, “RUAL“, “MOEX“, “TATN“, “YNDX“, “SNGS“, “SNGSP“, “PHOR“, “PLZL“, “ALRS“, “MTSS“, “AFKS“, “IRAO“, “PIKK“, “FIVE“, “SMLT“, “TRNFP“, “DSKY“, “BANEP“, “ENPG“, “MRKP“, “MRKU“, “MRKS“, “MRKC“, “MRKZ“, “MRKY“, “MRKV“, “MRKK“, “MRKN“, “MRKS“, “MRKM“, “MRKB“, “MRKP“, “RTKM“, “RTKMP“, “FEES“, “LSRG“, “TCSG“, “POLY“, “SELG“, “MTLR“, “MTLRP“, “BSPB“, “ABRD“, “HYDR“, “LSNG“, “LSNGP“, “TGKA“, “TGKB“, “TGKBP“, “TGKN“, “TGKM“, “TGKO“, “TGKP“} -- Stocks to analyze local portfolio = {} -- Current portfolio local lots = 10 -- Number of lots per trade local stop_loss_pct = 0.97 -- Stop-loss at 3% below purchase price -- Checking connection to QUIK server function waitForConnection() message(“Checking connection to QUIK...“, 1) while not isConnected() do sleep(5000) -- Wait 5 seconds message(“Waiting for connection to QUIK...“, 2) end message(“Connection to QUIK established!“, 1) end -- Function to calculate alpha and beta function calculate_alpha_beta(stock_returns, benchmark_returns, period) if #stock_returns < period or #benchmark_returns < period then return nil, nil end local function moving_average(data, period) local sum = 0 for i = #data - period + 1, #data do sum = sum + data[i] end return sum / period end local function covariance(x, y, period) local mean_x = moving_average(x, period) local mean_y = moving_average(y, period) local cov = 0 for i = #x - period + 1, #x do cov = cov + (x[i] - mean_x) * (y[i] - mean_y) end return cov / (period - 1) end local mean_stock = moving_average(stock_returns, period) local mean_bench = moving_average(benchmark_returns, period) local cov = covariance(stock_returns, benchmark_returns, period) local var_bench = covariance(benchmark_returns, benchmark_returns, period) if var_bench == 0 then return nil, nil end local beta = cov / var_bench local alpha = mean_stock - beta * mean_bench return alpha, beta end -- Function to get stock prices and calculate percentage returns function getReturns(ticker, period) local prices = {} for i = period, 1, -1 do local price = getParamEx(“TQBR“, ticker, “LAST“).param_value if price then table.insert(prices, tonumber(price)) end sleep(100) end if #prices < 2 then return nil end local returns = {} for i = 2, #prices do table.insert(returns, (prices[i] - prices[i-1]) / prices[i-1]) end return returns end -- Main loop message(stock.ticker, 1) end execute_orders(top_5) end message(“Waiting for the next trading day...“, 1) sleep(86400) -- Wait 1 day (86400 seconds) end end.
ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ Π·Π°ΠΊΠ°Π·Ρ‹
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Lua
дистанционно
договорная
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ПК. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π΅Π·Π΄ΠΈΠ»Π°, колСса Π±Ρ‹ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΅Π΅ ΠΊΠ°ΡΡ‚ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ, Ρ„Π°Ρ€Ρ‹ , колСса, Π±Π°ΠΌΠΏΠ΅Ρ€Π° , Ρ†Π²Π΅Ρ‚.
Москва
ЀрилансСры
2025-09-15
ΠžΡ‚ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒΡΡ
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Lua
дистанционно
договорная
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ПК. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. ВнСсСниС ΠΏΠΎΠΏΡ€Π°Π²ΠΎΠΊ Π² роблокс ΠΈΠ³Ρ€Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ языкС программирования lua.
Москва
ЀрилансСры
2025-09-15
ΠžΡ‚ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒΡΡ
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Lua
дистанционно
договорная
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ПК. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. НСобходимо ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ автоматичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°-экспорта Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ Π² Π»Π°ΠΉΡ‚Ρ€ΡƒΠΌΠ΅. Если пошагово, Ρ‚ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ : 1) ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΏΠ°ΠΏΠΊΡƒ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ попадания Π² Π΅Π΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ 2) ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ фотография Ρ‚ΡƒΠ΄Π° ΠΏΠΎΠΏΠ°Π»Π°, ΠΏΠ»Π°Π³ΠΈΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ Π² Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° YYYY-MM-DD, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΄Π°Ρ‚Π΅ съСмки Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. Если Π½Π΅ получится, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΠΎΠ΄Π²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ, Π²Ρ€ΠΎΠ΄Π΅ Π½Π΅ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ. 3) Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Lightroom ΡƒΠΆΠ΅ ΠΌΠ· этой ΠΏΠ°ΠΏΠΊΠΈ 4) АвтоматичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ прСсСта для ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ 5) Экспорт Π² ΠΏΠ°ΠΏΠΊΡƒ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ названия MM-DD ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 2 (Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΎ ΠΊΡƒΠ»Π΄Π°ΡƒΠ½ послС примСнСния настроСк, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ мСня Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΠ»ΠΈΡΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Ρ„Π°ΠΉΠ» успСвал ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΡˆΡƒΠΌΠΎΠ΄Π°Π²ΠΎΠΌ) Π•ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠ»Π°Π³ΠΈΠ½Π° Ρ‡ΡƒΠΆΠΈΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ частично Ρ‚ΠΎΠΆΠ΅ самоС, Π½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ вСсь Ρ†ΠΈΠΊΠ» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΈΡ… совмСстном использовании Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, Π²Ρ‹Π»Π΅Ρ‚Ρ‹. Но Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… ΠΊΠΎΠ΄ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.
Москва
ЀрилансСры
2025-09-03
ΠžΡ‚ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒΡΡ
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Lua
дистанционно
договорная
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ПК. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. НСобходимо Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ синхронизации для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Cocos Reaper.
Москва
ЀрилансСры
2025-08-27
ΠžΡ‚ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒΡΡ
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Lua
дистанционно
договорная
Код для Π’Π‘ QUIK. Π”ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. ПоТСлания ΠΈ особСнности: НСобходимо Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ/ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ для Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ систСмы QUIK Π½Π° языкС Lua.
Москва
ЀрилансСры
2025-08-10
ΠžΡ‚ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒΡΡ
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Lua
дистанционно
договорная
созданиС ΠΊΠ°Ρ€Ρ‚ Π² ΠΈΠ³Ρ€Π΅ roblox. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. Π—Π°Π΄Π°Ρ‡Π° Ρ‚Π°ΠΊΠΎΠ²Π°,Π½ΡƒΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ роблокс студио ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ ТСланию.
Москва
ЀрилансСры
2025-07-25
ΠžΡ‚ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒΡΡ
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Lua
дистанционно
договорная
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ПК. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ³Ρ€Ρ‹ Π² Roblox studio.
Москва
ЀрилансСры
2025-07-14
ΠžΡ‚ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒΡΡ