Trading Bot in C# — Part 1 — Basic Market Watching on Binance

·

Introduction

Automated cryptocurrency trading combines technical analysis with algorithmic execution to capitalize on market opportunities. This guide focuses on building a C# trading bot that monitors Binance's market data, leveraging candlestick patterns and the Relative Strength Index (RSI) for decision-making.

Key Objectives:


Prerequisites

👉 Learn more about .NET development


Step 1: Setting Up the Project

Create a new C# console application:

dotnet new console --name MarketWatcher  
cd MarketWatcher  
dotnet add package WhalesSecret.ScriptApiLib  

Step 2: Connecting to Binance

Use the following code in Program.cs to establish a connection:

using WhalesSecret.ScriptApiLib;  
using WhalesSecret.TradeScriptLib.API.TradingV1;  

await using ScriptApi scriptApi = await ScriptApi.CreateAsync();  
await scriptApi.InitializeMarketAsync(ExchangeMarket.BinanceSpot);  

ConnectionOptions options = new(ConnectionType.MarketData);  
await using ITradeApiClient tradeClient = await scriptApi.ConnectAsync(ExchangeMarket.BinanceSpot, options);  
Console.WriteLine("Connected to Binance!");  

Step 3: Fetching Historical Candlestick Data

Retrieve 1-minute candles for the last 3 days:

DateTime endTime = DateTime.Now;  
DateTime startTime = endTime.AddDays(-3);  
CandlestickData candlestickData = await tradeClient.GetCandlesticksAsync(  
    SymbolPair.BTC_USDT,  
    CandleWidth.Minute1,  
    startTime,  
    endTime  
);  

Step 4: Calculating RSI Values

Add the Skender.Stock.Indicators NuGet package and compute RSI:

List<Quote> quotes = candlestickData.Candles.Select(QuoteFromCandle).ToList();  
IEnumerable<RsiResult> rsiResults = quotes.GetRsi();  
RsiResult latestRsi = rsiResults.Last();  
Console.WriteLine($"Current RSI: {latestRsi.Rsi}");  

👉 Explore advanced trading strategies


Step 5: Real-Time Candle Updates

Subscribe to live candlestick updates:

await using ICandlestickSubscription subscription = await tradeClient.CreateCandlestickSubscriptionAsync(SymbolPair.BTC_USDT);  

while (true)  
{  
    Candle newCandle = await subscription.WaitNextClosedCandlestickAsync(CandleWidth.Minute1);  
    quotes.Add(QuoteFromCandle(newCandle));  
    ReportRsi(quotes);  
}  

FAQ

Q1: Why use RSI for trading?

A: RSI identifies overbought (>70) or oversold (<30) conditions, signaling potential reversals.

Q2: Can I trade without an API key?

A: Yes, but only for market data. Order execution requires authentication.

Q3: How accurate is historical data?

A: Binance provides high-fidelity data, but latency and slippage affect live trading.


Conclusion

This bot monitors Binance’s BTC/USDT pair, computes RSI, and alerts for trading opportunities. Future enhancements include trade execution and risk management.

Disclaimer: This tutorial is for educational purposes only. Cryptocurrency trading involves high risk.


### Keywords:  
- Trading bot  
- Binance API  
- C#  
- Candlestick data  
- RSI indicator  
- Cryptocurrency trading  
- Market analysis