вкр_ященко (1204297), страница 7
Текст из файла (страница 7)
intann_load(string path)
{
intann=-1;
ann=f2M_create_from_file(path);
if(ann!=-1)
{
debug(1,"Нейросеть: '"+path+"' успешнозагружена. Еехендл: "+ann);
}
if(ann==-1)
{
ann=
f2M_create_standard(4,AnnInputs,AnnInputs,AnnInputs/2+1,1);
f2M_set_act_function_hidden(ann,FANN_SIGMOID_SYMMETRIC_STEPWISE);
f2M_set_act_function_output(ann,FANN_SIGMOID_SYMMETRIC_STEPWISE);
f2M_randomize_weights(ann,-0.4,0.4);
debug(1,"Нейросеть: '"+path+"' успешносоздана. Еехендл: "+ann);
}
if(ann==-1)
{
debug(0,"ИНИЦИАЛИЗАЦИЯ НЕЙРОСЕТИ!");
}
return(ann);
}
voidann_prepare_input()
{
inti;
for(i=0;i<=AnnInputs-1;i=i+3)
{
InputVector[i]=
10*iMACD(NULL,0,FastMA,SlowMA,SignalMA,PRICE_CLOSE,
MODE_MAIN,i*3);
InputVector[i+1]=
10*iMACD(NULL,0,FastMA,SlowMA,SignalMA,PRICE_CLOSE,
MODE_SIGNAL,i*3);
InputVector[i+2]=InputVector[i-2]-InputVector[i-1];
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
doubleann_run(intann,double&vector[])
{
int ret;
double out;
ret=f2M_run(ann,vector);
if(ret<0)
{
debug(0,"ОШИБКА запуска нейросети!!! ann="+ann);
return(FANN_DOUBLE_ERROR);
}
out=f2M_get_output(ann,0);
debug(3,"f2M_get_output("+ann+") результат: "+out);
return(out);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
intanns_run_parallel(intanns_count,int&anns[],double&input_vector[])
{
int ret;
ret=f2M_run_parallel(anns_count,anns,input_vector);
if(ret<0)
{
debug(0,"f2M_run_parallel("+anns_count+") результат: "+ret);
}
return(ret);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
voidrun_anns()
{
inti;
if(Parallel)
{
anns_run_parallel(AnnsNumber,AnnsArray,InputVector);
}
for(i=0;i<AnnsNumber;i++)
{
if(Parallel)
{
AnnOutputs[i]=f2M_get_output(AnnsArray[i],0);
} else {
AnnOutputs[i]=ann_run(AnnsArray[i],InputVector);
}
}
}
doubleann_input(intann,double&vector[])
{
int ret;
double out;
ret=f2M_run(ann,vector);
if(ret<0)
{
debug(0,"ОШИБКА запуска нейросети!!! ann="+ann);
return(FANN_DOUBLE_ERROR);
}
out=f2M_get_output(ann,0);
debug(3,"f2M_get_output("+ann+") результат: "+out);
return(out);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
intanns_run_parallel(intanns_count,int&anns[],double&input_vector[])
{
int ret;
ret=f2M_run_parallel(anns_count,anns,input_vector);
if(ret<0)
{
debug(0,"f2M_run_parallel("+anns_count+") результат: "+ret);
}
return(ret);
}














