Browse Source

Nonz bar

etomic
jl777 7 years ago
parent
commit
cd5e81a1a4
  1. 51
      iguana/exchanges/LP_stats.c
  2. 4
      iguana/exchanges/LP_utxo.c

51
iguana/exchanges/LP_stats.c

@ -516,26 +516,30 @@ struct LP_ohlc
double high,low,open,close,relsum,basesum; double high,low,open,close,relsum,basesum;
}; };
cJSON *LP_ohlc_json(struct LP_ohlc *bar) cJSON *LP_ohlc_json(struct LP_ohlc *bar,struct LP_ohlc *prevbar)
{ {
cJSON *item; cJSON *item; struct LP_ohlc tmp;
//if ( bar->numtrades != 0 && bar->relsum > SMALLVAL && bar->basesum > SMALLVAL ) memset(&tmp,0,sizeof(tmp));
if ( bar->numtrades == 0 )
{ {
item = cJSON_CreateArray(); tmp = *prevbar;
jaddinum(item,bar->timestamp); tmp.numtrades = 0;
jaddinum(item,bar->high); tmp.relsum = tmp.basesum = 0.;
jaddinum(item,bar->low); } else tmp = *bar;
jaddinum(item,bar->open); bar = &tmp;
jaddinum(item,bar->close); item = cJSON_CreateArray();
jaddinum(item,bar->relsum); jaddinum(item,bar->timestamp);
jaddinum(item,bar->basesum); jaddinum(item,bar->high);
if ( bar->basesum != 0 ) jaddinum(item,bar->low);
jaddinum(item,bar->relsum / bar->basesum); jaddinum(item,bar->open);
else jaddinum(item,0); jaddinum(item,bar->close);
jaddinum(item,bar->numtrades); jaddinum(item,bar->relsum);
return(item); jaddinum(item,bar->basesum);
} if ( bar->basesum != 0 )
return(0); jaddinum(item,bar->relsum / bar->basesum);
else jaddinum(item,0);
jaddinum(item,bar->numtrades);
return(item);
} }
void LP_ohlc_update(struct LP_ohlc *bar,uint32_t timestamp,double basevol,double relvol) void LP_ohlc_update(struct LP_ohlc *bar,uint32_t timestamp,double basevol,double relvol)
@ -567,7 +571,7 @@ void LP_ohlc_update(struct LP_ohlc *bar,uint32_t timestamp,double basevol,double
cJSON *LP_tradesarray(char *base,char *rel,uint32_t starttime,uint32_t endtime,int32_t timescale) cJSON *LP_tradesarray(char *base,char *rel,uint32_t starttime,uint32_t endtime,int32_t timescale)
{ {
struct LP_ohlc *bars; cJSON *array,*item,*statsjson,*swaps; uint32_t timestamp; bits256 zero; int32_t i,n,numbars,bari; struct LP_ohlc *bars,nonz; cJSON *array,*item,*statsjson,*swaps; uint32_t timestamp; bits256 zero; int32_t i,n,numbars,bari;
if ( timescale < 60 ) if ( timescale < 60 )
return(cJSON_Parse("{\"error\":\"one minute is shortest timescale\"}")); return(cJSON_Parse("{\"error\":\"one minute is shortest timescale\"}"));
memset(zero.bytes,0,sizeof(zero)); memset(zero.bytes,0,sizeof(zero));
@ -596,9 +600,16 @@ cJSON *LP_tradesarray(char *base,char *rel,uint32_t starttime,uint32_t endtime,i
free_json(statsjson); free_json(statsjson);
} }
array = cJSON_CreateArray(); array = cJSON_CreateArray();
memset(&nonz,0,sizeof(nonz));
for (bari=0; bari<numbars; bari++) for (bari=0; bari<numbars; bari++)
if ( (item= LP_ohlc_json(&bars[bari])) != 0 ) {
if ( (item= LP_ohlc_json(&bars[bari],&nonz)) != 0 )
{
jaddi(array,item); jaddi(array,item);
if ( bars[bari].numtrades > 0 )
nonz = bars[bari];
}
}
free(bars); free(bars);
return(array); return(array);
} }

4
iguana/exchanges/LP_utxo.c

@ -427,7 +427,7 @@ struct LP_address *LP_address_utxo_reset(struct iguana_info *coin)
{ {
struct LP_address *ap; struct LP_address_utxo *up,*tmp; int32_t i,n,m,vout,height; cJSON *array,*item,*txobj; int64_t value; bits256 txid; uint32_t now; struct LP_address *ap; struct LP_address_utxo *up,*tmp; int32_t i,n,m,vout,height; cJSON *array,*item,*txobj; int64_t value; bits256 txid; uint32_t now;
LP_address(coin,coin->smartaddr); LP_address(coin,coin->smartaddr);
printf("call listunspent issue %s (%s)\n",coin->symbol,coin->smartaddr); //printf("call listunspent issue %s (%s)\n",coin->symbol,coin->smartaddr);
LP_listunspent_issue(coin->symbol,coin->smartaddr,2); LP_listunspent_issue(coin->symbol,coin->smartaddr,2);
if ( (ap= LP_addressfind(coin,coin->smartaddr)) == 0 ) if ( (ap= LP_addressfind(coin,coin->smartaddr)) == 0 )
{ {
@ -463,7 +463,7 @@ struct LP_address *LP_address_utxo_reset(struct iguana_info *coin)
printf("couldnt find just added %s/%d ht.%d %.8f\n",bits256_str(str,txid),vout,height,dstr(value)); printf("couldnt find just added %s/%d ht.%d %.8f\n",bits256_str(str,txid),vout,height,dstr(value));
else m++; else m++;
} }
printf("added %d from listunspents\n",m); //printf("added %d from listunspents\n",m);
} }
free_json(array); free_json(array);
} }

Loading…
Cancel
Save