This commit is contained in:
jl777
2019-04-02 10:34:58 -11:00
parent 406eb8120c
commit 7fbc6c5f95
2 changed files with 7 additions and 4 deletions

View File

@@ -2240,7 +2240,7 @@ char *komodo_pricename(char *name,int32_t ind)
return(0); return(0);
} }
int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int32_t daywindow,uint32_t *nonzprices) int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int32_t daywindow,uint32_t *nonzprices,int32_t smoothwidth)
{ {
int32_t i,j,k,n,iter,correlation,maxcorrelation=0; int64_t firstprice,price,sum,den,mult,refprice,lowprice,highprice; int32_t i,j,k,n,iter,correlation,maxcorrelation=0; int64_t firstprice,price,sum,den,mult,refprice,lowprice,highprice;
if ( daywindow < 2 ) if ( daywindow < 2 )
@@ -2249,7 +2249,7 @@ int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int
mult = 10000; mult = 10000;
else mult = 1; else mult = 1;
memset(nonzprices,0,sizeof(*nonzprices)*daywindow); memset(nonzprices,0,sizeof(*nonzprices)*daywindow);
for (iter=0; iter<daywindow; iter++) for (iter=0; iter<daywindow+smoothwidth; iter++)
{ {
correlation = 0; correlation = 0;
i = (iter + seed) % daywindow; i = (iter + seed) % daywindow;
@@ -2267,7 +2267,10 @@ int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int
if ( i >= daywindow ) if ( i >= daywindow )
i = 0; i = 0;
if ( (price= rawprices[i]) == 0 ) if ( (price= rawprices[i]) == 0 )
{
fprintf(stderr,"null rawprice.[%d]\n",i);
return(-1); return(-1);
}
if ( price >= lowprice && price <= highprice ) if ( price >= lowprice && price <= highprice )
{ {
//fprintf(stderr,"%.1f ",(double)price/10000); //fprintf(stderr,"%.1f ",(double)price/10000);

View File

@@ -1177,7 +1177,7 @@ UniValue paxprice(const UniValue& params, bool fHelp)
int32_t komodo_heightpricebits(uint64_t *seedp,uint32_t *heightbits,int32_t nHeight); int32_t komodo_heightpricebits(uint64_t *seedp,uint32_t *heightbits,int32_t nHeight);
char *komodo_pricename(char *name,int32_t ind); char *komodo_pricename(char *name,int32_t ind);
int64_t komodo_pricesmoothed(int64_t *correlated,int32_t numprices,int64_t *correlated2,int32_t smoothwidth); int64_t komodo_pricesmoothed(int64_t *correlated,int32_t numprices,int64_t *correlated2,int32_t smoothwidth);
int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int32_t numprices,uint32_t *rawprices2); int64_t komodo_pricecorrelated(uint64_t seed,int32_t ind,uint32_t *rawprices,int32_t numprices,uint32_t *rawprices2,int32_t smoothwidth);
int32_t komodo_nextheight(); int32_t komodo_nextheight();
uint32_t komodo_heightstamp(int32_t height); uint32_t komodo_heightstamp(int32_t height);
@@ -1243,7 +1243,7 @@ UniValue prices(const UniValue& params, bool fHelp)
{ {
offset = j*width + i; offset = j*width + i;
rngval = (rngval*11109 + 13849); rngval = (rngval*11109 + 13849);
if ( (correlated[i]= komodo_pricecorrelated(rngval,j,&prices[offset],daywindow+smoothwidth,prices2)) < 0 ) if ( (correlated[i]= komodo_pricecorrelated(rngval,j,&prices[offset],daywindow+smoothwidth,prices2,smoothwidth)) < 0 )
throw JSONRPCError(RPC_INVALID_PARAMETER, "null correlated price"); throw JSONRPCError(RPC_INVALID_PARAMETER, "null correlated price");
} }
for (i=0; i<maxsamples; i++) for (i=0; i<maxsamples; i++)