ODB

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> #include <string.h> #include <stdio.h> #include <math.h> using namespace std; union Pos { struct { double p; double q; } pos; double vect[2]; }; union Book { struct { Pos b[10]; Pos s[10]; } ob; double vect[40]; }; void SetBid(Book& book, double q, double p) { book.ob.s[0].pos.p = p; book.ob.s[0].pos.q = q; } void SetAsk(Book& book, double q, double p) { book.ob.b[0].pos.p = p; book.ob.b[0].pos.q = q; } // Generates a random number (to emulate the order book) double randBetween(double low, double high) { double r = ((double) rand()) / RAND_MAX; return low + (high - low) * r; } double sellY(double x, double prev = 1) { // "1" is the smallest Y. return max(prev, x * randBetween(1.0, x)); } double buyY(double x, double prev = 1) { // "1" is the smallest Y. return max(prev, fabs(x * randBetween(1.0, x))); } void BuildTable() { double central = 2; double spread = 2; printf("(cel mai mic primul)\n"); double y; double x = spread/2; double prev = 1; for (int i = 0; i < 10; i++, x = max(x, x + randBetween(0.1, 0.5)) ) { y = sellY(x, prev); printf("Pr=%f x Q=%f \n", central + x, y); prev = y; } printf("\n"); printf("(cel mai mare primul)\n"); x = - spread/2; prev = 1; for (int i = 0; i < 10; i++, x = min(x, x - randBetween(0.1, 0.5)) ) { y = buyY(x, prev); printf("Pr=%f x Q=%f \n", central + x, y); prev = y; } } int main() { srand(time(NULL)); Book book; memset(book.vect, 0, sizeof(book.vect)); SetBid(book, 11, 95); SetAsk(book, 2, 100); int i; for (i = 0 ; i < 20; i+=2) { // printf("%f x %f\n", book.vect[i], book.vect[i+1] ); } printf("------------------------------------------\n"); for ( ; i < 40; i+=2) { // printf("%f x %f\n", book.vect[i], book.vect[i+1] ); } BuildTable(); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines