Диплом: Автоматизация управления активами при помощи кластерного анализа паттернов поведения игроков рынка в ПАО «ФК Открытие»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
100
if ~rem(k, 100)
k
end
S(k) = nns_(PR(k, :), NN);
End
function S = nns_(x, NN)
% S = 1: LONG
% S = -1: SHORT
% S = 0: DO NOTHING
% S = 99: CLOSE
y = perceptron1_ (x - mean(x), NN);
% y(2) = 0.5 * y(2);
[~, p] = max(y);
switch p
case 1
S = 0;
case 2
S = 99;
case 3
S = 1;
case 4
S = -1;
End
function f = perceptron1_ (a1, a2, a3)
action=isobject(a2);
switch action
case false
101
PR=a1;
Q=a2;
n0=a3;
X=PR(:,1:end-4);
Y=PR(:,end-4+1:end);
f=ddrstandartnet_core(X,Y,n0,Q);
case true
X=a1;
NET=a2;
f=ddrstandartnet_apply(NET,X);
end
function NN = ddrstandartnet_core (X, Y, n0, Q)
PR=[X'; Y'];
NN=feedforwardnet([n0 ceil(n0/2) n0],'trainrp');
NN.layers{1}.transferFcn='tansig';
NN.layers{2}.transferFcn='tansig';
NN.layers{3}.transferFcn='tansig';
NN.layers{4}.transferFcn='tansig';
NN.trainparam.max_fail=Q;
NN.trainparam.showWindow=true;
NN.trainparam.epochs=1e8;
NN=train(NN,PR(1:end-4,:),PR(end-4+1:end,:),'useParallel','no');
function f = ddrstandartnet_apply (NET, X)
f=sim(NET,X');
f=f';
function strategyTester(L, NN)
sz = get(0, 'ScreenSize');
102
h0 = figure(...
'color', [0 0 0],...
'position', [0.2 * sz(3) 0.06 * sz(4) 0.6 * sz(3) 0.83 * sz(4)]);
h1 = axes(...
'parent', h0,...
'color', get(h0, 'color'),...
'position', [0.08 0.55 0.9 0.4],...
'nextplot', 'add',...
'XColor', [1 1 1],...
'YColor', [1 1 1],...
'XGrid', 'on',...
'YGrid', 'on');
h2 = axes(...
'parent', h0,...
'color', get(h0, 'color'),...
'position', [0.08 0.08 0.9 0.4],...
'nextplot', 'add',...
'XColor', [1 1 1],...
'YColor', [1 1 1],...
'XGrid', 'on',...
'YGrid', 'on');
x = zeros(1000000, 1);
Q = zeros(1000000, 1);
Q(1) = 0;
x0 = 0;
103
POS_OPEN = zeros(0, 2);
t = (1 : numel(x))';
W = 8 * L;
ImpulseAmplitude = 0;
ImpulseDuration = 0;
p = 0;
FLAG = false;
t0 = now;
for k = 1 : numel(x)
if (rand() < 0.02) && (p < 0.01)
ImpulseDuration = randi([50 250]);
ImpulseAmplitude = randn();
p = 1;
FLAG = true;
elseif (p > 0.01) && FLAG
p = p + 1;
end
if k > 1.5
x(k) = nextStep(x(k - 1), ImpulseAmplitude, ImpulseDuration, p);
else
x(k) = nextStep(x0, ImpulseAmplitude, ImpulseDuration, p);
end
if k > 1.01
104
Q(k) = Q(k - 1);
end
if k >= L
S = nns_(x(k - L + 1 : k)', NN);
switch S
case 1
if isempty(POS_OPEN)
POS_OPEN = [1 x(k)];
end
case -1
if isempty(POS_OPEN)
POS_OPEN = [-1 x(k)];
end
case 99
if ~isempty(POS_OPEN)
Q(k) = Q(k - 1) + POS_OPEN(1) * (x(k) - POS_OPEN(2));
POS_OPEN = zeros(0, 2);
end
end
end
if p > ImpulseDuration + 1e-8
ImpulseAmplitude = 0;
ImpulseDuration = 0;
p = 0;
FLAG = false;
end
tau = t((t <= k) & (abs(t - k) <= W));
105
cla(h1)
plot(h1, tau, x(tau), 'blue', 'linewidth', 2)
if k >= L
rectangle('parent', h1, 'position', ...
[k - L + 1 min(x(k - L + 1 : k)) L - 1 max(x(k - L + 1 : k)) - min(x(k -
L + 1 : k)) + 1e-9], ...
'linewidth', 2, 'edgecolor', [0 1 0])
end
set(h1, 'xlim', [min(tau) - 1e-8 max(tau) + 1e-8])
ab = get(h1, 'xlim');
if ~isempty(POS_OPEN)
disp(['S = ' num2str(S) '; POS_OPEN = ' num2str(POS_OPEN) '; x(k) =
' num2str(x(k))])
plot(h1, ab, POS_OPEN(2) * ones(size(ab)), 'color', [0 1 1])
end
cla(h2)
plot(h2, 1 : k, Q(1 : k), 'green', 'linewidth', 2)
plot(h1, ab, x(k) * ones(size(ab)), 'color', [1 0 0])
set(h0, 'numbertitle', 'off', 'name', ...
['tElapsed = ' num2str((now - t0) * 24)])
drawnow
pause(0.02)
end
Приложение 10
106
function [a, b] = trendDetector(x, L, F)
N = numel(x);
if L + F > N
a = NaN;
b = NaN;
return
end
ksy = x(end - L - F + 1 : end - F);
eta = x(end - F + 1 : end);
ksy = ksy(2 : end) - ksy(1 : end - 1);
eta = eta(2 : end) - eta(1 : end - 1);
if (L < 2) || (F < 2)
error('L & F must be greater than 2 !!!')
end
a = sqrt((1 / (L - 1) * sum(abs(ksy))) * (1 / (F - 1) * abs(sum(eta))));
b = sqrt((1 / (F - 1) * sum(abs(eta))) * (1 / (L - 1) * abs(sum(ksy))));
Приложение 11. Обучение нейронной сети
function f = amanda_ (a1, a2, a3, a4)
%-------------------------------
% 29.10.15 15.41 D., Aeroport.
%-------------------------------
action=isstruct(a2(1));
107
switch action
case false
tic
PR=a1;
Q=a2;
n0=a3;
n1=a4;
X=PR(:,1:end-1);
Y=PR(:,end);
%PCA-обучение
ISTR=struct(...
'action','train',...
'xData',X);
PPCA=pca_amanda(ISTR);
%/PCA-обучение
%PCA-применение
ISTR=struct(...
'action','apply',...
'xData',X,...
'CloudParam',PPCA);
xData=pca_amanda(ISTR);
X=xData.xData;
%/PCA-применение
108
%Наложение дребезга
X=X+0.001*randn(size(X));
%/Наложение дребезга
V=cell(1,n1);
for i=1:n1
V{i}=svg(X,n0);
end
%Массив структур д/хранения настроек кластеров
FieldNames={...
'SVG',...
'NEURON'};
CellArray4Struct=cell(n1,numel(FieldNames));
NNCLUSTER=cell2struct(CellArray4Struct,FieldNames,2);
%/Массив структур д/хранения настроек кластеров
for k=1:n1
NNCLUSTER(k)=amanda_clust([X Y],Q,V{k});
end
dt=toc;
f=struct(...
'PPCA',PPCA,...
'NNCLUSTER',NNCLUSTER,...
'elapsed_time',dt);
case true
109
X=a1;
NN=a2;
PPCA=NN.PPCA;
NNCLUSTER=NN.NNCLUSTER;
%PCA-применение
ISTR=struct(...
'action','apply',...
'xData',X,...
'CloudParam',PPCA);
xData=pca_amanda(ISTR);
X=xData.xData;
%/PCA-применение
g=zeros(size(X,1),numel(NN.NNCLUSTER));
e=zeros(size(X,1),numel(NN.NNCLUSTER));
for j=1:numel(NN.NNCLUSTER)
f_temp=amanda_clust(X,NNCLUSTER(j).NEURON,NNCLUSTER(j).SVG);
g(:,j)=f_temp(:,1);
e(:,j)=f_temp(:,2);
end
f=[median(g,2) median(e,2)];
end
function f = amanda_clust (a1, a2, V)

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")