Skip to content

Commit d04fa43

Browse files
rollback twap and avol
1 parent bca7361 commit d04fa43

File tree

4 files changed

+2
-114
lines changed

4 files changed

+2
-114
lines changed

pctest/test_qset.cpp

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,7 @@ int main( int argc,char** argv )
5454
pd_t m[1], s[1];
5555
pc_qs_new( qs, prm );
5656

57-
pc_drv_t qd[1];
58-
pc_drv_new( qd, prm );
59-
pd_t twap[1], avol[1], prev[1];
60-
61-
// read scenario file
57+
// construct quotes
6258
mem_map mf;
6359
std::string file = argv[1];
6460
mf.set_file(file );
@@ -74,24 +70,7 @@ int main( int argc,char** argv )
7470
<< std::endl;
7571
return 1;
7672
}
77-
78-
// previous values of price, vol and twap
7973
int expo = pt.get_int( pt.find_val( 1, "exponent" ) );
80-
uint32_t vt = pt.find_val( 1, "derived" );
81-
if ( vt ) {
82-
int64_t iprev = pt.get_int( pt.find_val( vt, "prev_price" ) );
83-
int64_t itwap = pt.get_int( pt.find_val( vt, "twap" ) );
84-
int64_t iavol = pt.get_int( pt.find_val( vt, "avol" ) );
85-
pd_new_scale( prev, iprev, expo );
86-
pd_new_scale( twap, itwap, expo );
87-
pd_new_scale( avol, iavol, expo );
88-
} else {
89-
pd_new( prev, 0, 0 );
90-
pd_new( twap, 0, 0 );
91-
pd_new( avol, 0, 0 );
92-
}
93-
94-
// construct quotes
9574
uint32_t qt =pt.find_val( 1, "quotes" );
9675
for( uint32_t it = pt.get_first( qt ); it; it = pt.get_next( it ) ) {
9776
int64_t px = pt.get_int( pt.find_val( it, "price" ) );
@@ -109,25 +88,18 @@ int main( int argc,char** argv )
10988
pc_qs_add( qs, m, s );
11089
}
11190
pc_qs_calc( qs );
112-
pc_twap_calc( qd, twap, qs->m_ );
113-
pc_avol_calc( qd, avol, qs->m_, prev );
11491

115-
// scale results
11692
expo = std::min( qs->m_->e_, qs->s_->e_ );
11793
if ( expo <= 0 ) expo = -9;
11894
pd_adjust( qs->m_, qs->m_, expo, prm->fact_ );
11995
pd_adjust( qs->s_, qs->s_, expo, prm->fact_ );
120-
pd_adjust( twap, twap, expo, prm->fact_ );
121-
pd_adjust( avol, avol, expo, prm->fact_ );
12296

12397
// generate result
12498
json_wtr jw;
12599
jw.add_val( json_wtr::e_obj );
126100
jw.add_key( "exponent", (int64_t)expo );
127101
jw.add_key( "price", qs->m_->v_ );
128102
jw.add_key( "conf", qs->s_->v_ );
129-
jw.add_key( "twap", twap->v_ );
130-
jw.add_key( "avol", avol->v_ );
131103
jw.pop();
132104
net_buf *hd, *tl;
133105
jw.detach( hd, tl );

program/src/oracle/oracle.c

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -580,43 +580,18 @@ static void upd_aggregate( pc_price_t *ptr,
580580
pc_qs_add( qs, m, s );
581581
}
582582
}
583-
pc_drv_t qd[1];
584-
pc_drv_new( qd, prm );
585-
pd_t twap[1], avol[1], px[1], prev[1];
586-
pd_new_scale( twap, ptr->twap_tmp_, PD_EXP_NORMAL );
587-
pd_new_scale( avol, ptr->avol_tmp_, PD_EXP_NORMAL );
588-
pd_new_scale( prev, ptr->agg_.price_, ptr->expo_ );
589-
590583
// check for zero contributors
591584
if ( qs->num_ == 0 ) {
592585
ptr->agg_.status_ = PC_STATUS_UNKNOWN;
593-
// decay twap with the same price
594-
pd_new_scale( px, ptr->agg_.price_, ptr->expo_ );
595-
pc_twap_calc( qd, twap, px );
596-
pd_adjust( twap, twap, PD_EXP_NORMAL, prm->fact_ );
597-
ptr->twap_tmp_ = twap->v_;
598-
pd_adjust( twap, twap, ptr->expo_, prm->fact_ );
599-
ptr->twap_ = twap->v_;
600586
return;
601587
}
602-
603-
// compute and assign aggregate price and derived values
588+
// compute and assign aggregate price
604589
pc_qs_calc( qs );
605-
pc_twap_calc( qd, twap, qs->m_ );
606-
pc_avol_calc( qd, avol, qs->m_, prev );
607590
pd_adjust( qs->m_, qs->m_, ptr->expo_, prm->fact_ );
608591
pd_adjust( qs->s_, qs->s_, ptr->expo_, prm->fact_ );
609-
pd_adjust( twap, twap, PD_EXP_NORMAL, prm->fact_ );
610-
pd_adjust( avol, avol, PD_EXP_NORMAL, prm->fact_ );
611592
ptr->agg_.price_ = qs->m_->v_;
612593
ptr->agg_.conf_ = qs->s_->v_;
613-
ptr->twap_tmp_ = twap->v_;
614-
ptr->avol_tmp_ = avol->v_;
615594
ptr->agg_.status_ = PC_STATUS_TRADING;
616-
pd_adjust( twap, twap, ptr->expo_, prm->fact_ );
617-
pd_adjust( avol, avol, ptr->expo_, prm->fact_ );
618-
ptr->twap_ = twap->v_;
619-
ptr->avol_ = avol->v_;
620595
}
621596

622597
static uint64_t upd_price( SolParameters *prm, SolAccountInfo *ka )

program/src/oracle/oracle.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -212,16 +212,6 @@ typedef struct pc_qs
212212
uint64_t *norm_;
213213
} pc_qs_t;
214214

215-
typedef struct pc_drv
216-
{
217-
pd_t f0_[1];
218-
pd_t f1_[1];
219-
pd_t f2_[1];
220-
pd_t pn_[1];
221-
pd_t pp_[1];
222-
uint64_t *fact_;
223-
} pc_drv_t;
224-
225215
// command enumeration
226216
typedef enum {
227217

program/src/oracle/pd.h

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,6 @@ extern "C" {
77
#define PD_MAX_NORMAL (6000-1)
88
#define PD_EXP_NORMAL -9
99
#define PD_SCALE9 (1000000000L)
10-
#define PD_EXP_DECAY0 -8
11-
#define PD_EXP_DECAY1 -8
12-
#define PD_EXP_DECAY2 -4
13-
#define PD_DECAY0 99984128
14-
#define PD_DECAY1 15872
15-
#define PD_DECAY2 87594394
16-
#define PD_ANN_FACT 55188000
1710

1811
#define pd_new( n,v,e ) {(n)->v_=v;(n)->e_=e;}
1912
#define pd_set( r,n ) (r)[0] = (n)[0]
@@ -382,48 +375,6 @@ static void pc_qs_calc( pc_qs_t *q )
382375
pd_sqrt( q->s_, t1, p );
383376
}
384377

385-
static void pc_drv_new( pc_drv_t *d, pc_prm_t *prm )
386-
{
387-
pd_new( d->f0_, PD_DECAY0, PD_EXP_DECAY0 );
388-
pd_new( d->f1_, PD_DECAY1, PD_EXP_DECAY1 );
389-
pd_new( d->f2_, PD_DECAY2, PD_EXP_DECAY2 );
390-
d->fact_ = prm->fact_;
391-
}
392-
393-
static void pc_twap_calc( pc_drv_t *d, pd_t *twap, pd_t *pn )
394-
{
395-
pd_t t[1];
396-
if ( twap->v_ ) {
397-
pd_mul( twap, twap, d->f0_ );
398-
pd_mul( t, pn, d->f1_ );
399-
pd_add( twap, twap, t, d->fact_ );
400-
} else {
401-
// initial twap
402-
pd_set( twap, pn );
403-
}
404-
}
405-
406-
static void pc_avol_calc( pc_drv_t *d, pd_t *vol, pd_t *pn, pd_t *pp )
407-
{
408-
// check for previous price
409-
if ( pp->v_ == 0 ) {
410-
return;
411-
}
412-
pd_t t[1], fa[1];
413-
pd_sub( t, pn, pp, d->fact_ );
414-
pd_mul( t, t, t );
415-
if ( vol->v_ ) {
416-
pd_mul( vol, vol, vol );
417-
pd_mul( vol, vol, d->f0_ );
418-
pd_mul( t, t, d->f2_ );
419-
pd_add( vol, vol, t, d->fact_ );
420-
} else {
421-
// initial vol
422-
pd_new( fa, PD_ANN_FACT, 0 );
423-
pd_mul( vol, t, fa );
424-
}
425-
pd_sqrt( vol, vol, d->fact_ );
426-
}
427378

428379
#ifdef __cplusplus
429380
}

0 commit comments

Comments
 (0)