Smoother
This commit is contained in:
@@ -2239,8 +2239,6 @@ int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int
|
|||||||
if ( ind < 36 )
|
if ( ind < 36 )
|
||||||
mult = 10000;
|
mult = 10000;
|
||||||
else mult = 1;
|
else mult = 1;
|
||||||
//if ( memcmp(rawprices,rawprices2,daywindow*sizeof(*rawprices)) != 0 )
|
|
||||||
// fprintf(stderr,"ind.%d rawprices2 != rawprices\n",ind);
|
|
||||||
for (iter=0; iter<daywindow; iter++)
|
for (iter=0; iter<daywindow; iter++)
|
||||||
{
|
{
|
||||||
correlation = 0;
|
correlation = 0;
|
||||||
@@ -2285,7 +2283,7 @@ int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fprintf(stderr,"ind.%d iter.%d j.%d i.%d n.%d correlation.%d ref %llu -> %llu\n",ind,iter,j,i,n,correlation,(long long)refprice,(long long)sum/correlation);
|
//fprintf(stderr,"ind.%d iter.%d j.%d i.%d n.%d correlation.%d ref %llu -> %llu\n",ind,iter,j,i,n,correlation,(long long)refprice,(long long)sum/correlation);
|
||||||
if ( n != correlation )
|
if ( n != correlation )
|
||||||
return(-1);
|
return(-1);
|
||||||
sum = den = n = 0;
|
sum = den = n = 0;
|
||||||
@@ -2303,7 +2301,7 @@ int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int
|
|||||||
fprintf(stderr,"seed.%llu n.%d vs correlation.%d sum %llu, den %llu\n",(long long)seed,n,correlation,(long long)sum,(long long)den);
|
fprintf(stderr,"seed.%llu n.%d vs correlation.%d sum %llu, den %llu\n",(long long)seed,n,correlation,(long long)sum,(long long)den);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
fprintf(stderr,"weighted -> %.8f\n",((double)(sum*mult) / den) / COIN);
|
//fprintf(stderr,"weighted -> %.8f\n",((double)(sum*mult) / den) / COIN);
|
||||||
return((sum * mult) / den);
|
return((sum * mult) / den);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2318,10 +2316,32 @@ int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int
|
|||||||
|
|
||||||
int64_t komodo_pricesmoothed(int64_t *correlated,int32_t numprices)
|
int64_t komodo_pricesmoothed(int64_t *correlated,int32_t numprices)
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i; int64_t sum,den,smoothed=0,firstprice = correlated[0];
|
||||||
for (i=0; i<numprices; i++)
|
if ( numprices < 2 )
|
||||||
if ( correlated[i] != 0 )
|
return(0);
|
||||||
return(correlated[i]);
|
for (i=1; i<numprices; i++)
|
||||||
return(0);
|
{
|
||||||
|
if ( correlated[i] == 0 )
|
||||||
|
correlated[i] = correlated[i-1];
|
||||||
|
if ( firstprice == 0 && correlated[i] != 0 )
|
||||||
|
firstprice = correlated[i];
|
||||||
|
}
|
||||||
|
if ( firstprice != 0 )
|
||||||
|
{
|
||||||
|
for (i=0; i<numprices; i++)
|
||||||
|
{
|
||||||
|
if ( correlated[i] == 0 )
|
||||||
|
correlated[i] = firstprice;
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
sum = den = 0;
|
||||||
|
for (i=0; i<numprices; i++)
|
||||||
|
{
|
||||||
|
sum += (numprices - i) * correlated[i];
|
||||||
|
den += (numprices - i);
|
||||||
|
}
|
||||||
|
smoothed = (sum / den);
|
||||||
|
}
|
||||||
|
return(smoothed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user