public void TradeSignal(TickDataModel buyQuote, TickDataModel sellQuote) { string subject = string.Format( "Botcoin - Arbitrarge oppurtunity discovered between {0}, {1}", buyQuote.SourceExchange, sellQuote.SourceExchange); string body = string.Format( @" Botcoin has discovered an <i>arbitrarge</i> oppurtunity by buying <b>{0}</b> and selling <b>{1}</b>!<br> <br> Current order book for {0}:<br> <u>Bid: <b>${2}</b></u> Ask: <b>${3}</b><br> <br> Current order book for {1}:<br> Bid: <b>${4}</b> <u>Ask: <b>${5}</b></u><br> <br> You stand to make a profit of: ${6}<br> " , buyQuote.SourceExchange, sellQuote.SourceExchange, buyQuote.Bid, buyQuote.Ask, sellQuote.Bid, sellQuote.Ask, sellQuote.Ask - buyQuote.Bid ); smtpProvider.Send(subject, body); }
public override void Tick(TickDataModel tick) { lastTick = tick; lastTick.Ask = 1 / lastTick.Ask; //lastTick.Average = 1 / lastTick.Average; lastTick.Bid = 1 / lastTick.Bid; lastTick.High = 1 / lastTick.High; lastTick.Last = 1 / lastTick.Last; lastTick.Low = 1 / lastTick.Low; dataStore.Save(tick);//TODO: categorize the data by currencywalletpair }
public void UpdateQuotes() { Ticker sourceTicker = mtGoxExchangeAPI.GetTicker(Currency.USD); var tick = new TickDataModel(); tick.SourceExchange = sourceExchange; tick.High = Sanitize(sourceTicker.High ); tick.Low = Sanitize(sourceTicker.Low ); tick.Average = Sanitize(sourceTicker.Average ); //tick.Volume = Sanitize(sourceTicker.Volume ); tick.Last = Sanitize(sourceTicker.Last ); tick.Bid = Sanitize(sourceTicker.Bid ); tick.Ask = Sanitize(sourceTicker.Ask); dataStore.Save(tick); lastQuote = tick; Thread.Sleep(1000); return; }
public void UpdateQuotes() { WebClient client = new WebClient(); var source = client.DownloadString(getUrl); var sourceTicker = JsonConvert.DeserializeObject<CampBXTickerModel>(source); var tick = new TickDataModel(); tick.SourceExchange = sourceExchange; //tick.Average= sourceTicker.av //tick.Volum; tick.Last = sourceTicker.Last_Trade; tick.Bid = sourceTicker.Best_Bid; tick.Ask = sourceTicker.Best_Ask; dataStore.Save(tick); lastQuote = tick; Thread.Sleep(1000); return; }
public void TradeSignal(Shared.TickDataModel buyQuote, Shared.TickDataModel sellQuote) { //DO nothing, used for debugging without spamming the recipients }
public void Save(TickDataModel data) { Console.WriteLine("Bid: {1}\t Ask: {0}\t Exchange: {2}", data.Ask.ToString("N2"), data.Bid.ToString("N2"), data.SourceExchange); }
private void UpdateQuotes(BTCMarketsSyntheticCurrencyWalletPair pair) { WebClient client = new WebClient(); var source1 = client.DownloadString(pair.url); var source2 = client.DownloadString(pair.url2); var sourceTicker = JsonConvert.DeserializeObject<BTCMarketsTickerModel>(source1); var sourceTicker2 = JsonConvert.DeserializeObject<BTCMarketsTickerModel>(source2); var tick = new TickDataModel(); tick.SourceExchange = sourceExchange + " Synthetic BTC/LTC"; //tick.Average= sourceTicker.av //tick.Volum; tick.Last = sourceTicker.lastPrice / sourceTicker2.lastPrice; tick.Bid = sourceTicker.bestBid / sourceTicker2.bestAsk; tick.Ask = sourceTicker.bestAsk / sourceTicker2.bestBid; pair.Tick(tick); lastQuote = tick; return; }