Тема для начинающих писателей роботов.
Продолжение темы:
-------------------------
Чтобы сразу не сливать депозит, лучше написать робот-советник, который на истории покажет , что он сможет.
---------------------------
Напишем такой советник.
Для этого в приведенный по ссылке выше скрипт добавим расчет прибыли/убытков при совершении сделок по приведенному ранее(см ссылку) алгоритму
------------------------
Примем что брокер и биржа забирают com=0.006 (0.6%)
Расчет будет проводить в %, количество лотов примем равным 1. Сделки совершаются в long и short.
В результате получился вот такой скрипт:
а это результат его тестирования на демо-сервере:

Продолжение темы:
-------------------------
Чтобы сразу не сливать депозит, лучше написать робот-советник, который на истории покажет , что он сможет.
---------------------------
Напишем такой советник.
Для этого в приведенный по ссылке выше скрипт добавим расчет прибыли/убытков при совершении сделок по приведенному ранее(см ссылку) алгоритму
------------------------
Примем что брокер и биржа забирают com=0.006 (0.6%)
Расчет будет проводить в %, количество лотов примем равным 1. Сделки совершаются в long и short.
В результате получился вот такой скрипт:
| Код |
|---|
function OnCalculate(i)
local buy,sel;
if i==1 then OnChangeSettings()
i1=0; t={}; Prof=0; Los=0; Q=Settings.Q; com=Settings.com; ProfAll=0; BS=0;
elseif i1~=i then
ind(i1,Settings.tag,t);
if #t>0 then
local Oi,Hi,Li=O(i1),H(i1),L(i1) local prib=0; local z=T(i1); x=t[#t];
params.DATE=100*(100*z.year+z.month)+z.day;
params.TIME=100*(100*z.hour+z.min)+z.sec;
if Li>x and 0>=BS then buy=Li-0.05; if BS==0 then prib=-com; else prib=(1-com)*(price/Oi-1); end BS=1; price=Oi; params.YVALUE=buy-0.1; end
if x>Hi and BS>=0 then sel=Hi+0.05 if BS==0 then prib=-com; else prib=(1-com)*(Oi/price-1); end price=Oi; BS=-1; params.YVALUE=sel+0.1; end
if buy or sel then
ProfAll=ProfAll+prib; params.TEXT=(0.1*(1000*ProfAll//1)).."%"
if ProfAll>=0 then params.B=255 params.R=0 else params.B=0 params.R=255 end
Label=AddLabel(Settings.tag,params);
end
end
end
i1=i;
return buy,sel;
end
function Init()
local t={} Settings.line =t;
t[#t+1]={Name = "Bu",Color = RGB(0,255,0),Type = 10,Width = 4};
t[#t+1]={Name = "Se",Color = RGB(255,0,0),Type = 11,Width = 4};
return #t; end
function OnDestroy () DelAllLabels(Settings.tag) end
function OnChangeSettings()
DelAllLabels(Settings.tag);
end
|