Добрый день,
Рассказываю, как просто сделать робота в виде скрипта индикатора.
Сначала картинка работы такого робота.

В чем достоинство такого робота по сравнению с роботом на основе колбеков.
Робот значительно проще написать
Он загружается на график торгуемого инструмента,
Если для реализации алгоритма торговли достаточно встроенных в QUIK индикаторов,
то нет надобности их программировать.
----------------
Пример варианта основного фрагмента такого робота:
Продолжение вероятно следует...
Рассказываю, как просто сделать робота в виде скрипта индикатора.
Сначала картинка работы такого робота.
В чем достоинство такого робота по сравнению с роботом на основе колбеков.
Робот значительно проще написать
Он загружается на график торгуемого инструмента,
Если для реализации алгоритма торговли достаточно встроенных в QUIK индикаторов,
то нет надобности их программировать.
----------------
Пример варианта основного фрагмента такого робота:
| Код |
|---|
name="nkbot24"
Settings={["Name"] =name,["line"] ={},["account"]="",["client"]="",["Q"]=1;["wt"]=1000,["short"]=0}
Settings.Nind=0;
paths = "D:/QUIK_SCRIPT/"
package.cpath =package.cpath ..";"..paths.."?.dll";
package.path =package.path..paths.."?.lua;"
fnlog=paths..name..".log"; Log=io.open(fnlog,"w")
loadfile(paths.."nkbot24_func.lua")
function nkbuy(i,f)
---алгоритм покупки
-- f=cross(1,1,2,1,1);
return f;
end
function nksell(i,f)
--алгоритм продажи
-- f=cross(1,1,2,1,1);
return f;
end
function nobuy(i,f)
--фильтр покупки
return f;
end
function nosell(i,f)
--фильтр продажи
return f;
end
function OnCalculate(i)
local i1=i-1;
if i==1 then nkInit(); return end
if i~=i_ then getI() end
N,torder=order(N); Q=depo();
if #t==0 then
-- f,j=cross(1,1,2,1,5); --пересечение двух индикаторов
if i~=i_ then torg(nkbuysel(i));end
M=os.clock();
else
del_ord(M);
end
i_=i;
return M1,M2;
end
|