Automating Trading Using APIs (Python Samples)
Automating Trading Using APIs (Python Samples)
Here are Python code samples for automating trading using APIs. The examples cover fetching market data, placing orders, and monitoring positions using REST APIs.
1️⃣ Fetch Market Data (Example: Binance API)
Fetch live price data for BTC/USDT from Binance API.
import requests
BASE_URL = "https://api.binance.com/api/v3"
def get_market_price(symbol="BTCUSDT"):
url = f"{BASE_URL}/ticker/price"
params = {"symbol": symbol}
response = requests.get(url, params=params)
data = response.json()
return float(data["price"])
price = get_market_price("BTCUSDT")
print(f"BTC/USDT Price: {price}")
📌 Modify
for different assets like ETHUSDT, XRPUSDT, etc.symbol
2️⃣ Place a Market Order (Example: Binance API)
Placing a market buy order using Binance API.
Requires API Key and Secret (Use testnet for safety).
import hmac
import hashlib
import time
import requests
API_KEY = "your_api_key"
API_SECRET = "your_api_secret"
BASE_URL = "https://api.binance.com/api/v3"
def sign_request(params):
query_string = "&".join([f"{key}={params[key]}" for key in sorted(params)])
return hmac.new(API_SECRET.encode(), query_string.encode(), hashlib.sha256).hexdigest()
def place_market_order(symbol="BTCUSDT", side="BUY", quantity=0.001):
url = f"{BASE_URL}/order"
params = {
"symbol": symbol,
"side": side,
"type": "MARKET",
"quantity": quantity,
"timestamp": int(time.time() * 1000),
}
params["signature"] = sign_request(params)
headers = {"X-MBX-APIKEY": API_KEY}
response = requests.post(url, headers=headers, params=params)
return response.json()
order_response = place_market_order()
print(order_response)
📌 Replace
and your_api_key
with Binance credentials.your_api_secret
3️⃣ Check Order Status
def check_order_status(order_id, symbol="BTCUSDT"):
url = f"{BASE_URL}/order"
params = {
"symbol": symbol,
"orderId": order_id,
"timestamp": int(time.time() * 1000),
}
params["signature"] = sign_request(params)
headers = {"X-MBX-APIKEY": API_KEY}
response = requests.get(url, headers=headers, params=params)
return response.json()
order_status = check_order_status(order_id="123456")
print(order_status)
4️⃣ Cancel an Order
def cancel_order(order_id, symbol="BTCUSDT"):
url = f"{BASE_URL}/order"
params = {
"symbol": symbol,
"orderId": order_id,
"timestamp": int(time.time() * 1000),
}
params["signature"] = sign_request(params)
headers = {"X-MBX-APIKEY": API_KEY}
response = requests.delete(url, headers=headers, params=params)
return response.json()
cancel_response = cancel_order(order_id="123456")
print(cancel_response)
5️⃣ Automate Heikin-Ashi Strategy
Use Heikin-Ashi candles to place automated trades.
import pandas as pd
def calculate_heikin_ashi(df):
df["HA_Close"] = (df["Open"] + df["High"] + df["Low"] + df["Close"]) / 4
df["HA_Open"] = df["Open"]
for i in range(1, len(df)):
df.loc[df.index[i], "HA_Open"] = (df.loc[df.index[i-1], "HA_Open"] + df.loc[df.index[i-1], "HA_Close"]) / 2
df["HA_High"] = df[["High", "HA_Open", "HA_Close"]].max(axis=1)
df["HA_Low"] = df[["Low", "HA_Open", "HA_Close"]].min(axis=1)
return df
# Fetch Market Data
df = pd.DataFrame([ # Example Data
{"Open": 100, "High": 110, "Low": 95, "Close": 105},
{"Open": 105, "High": 115, "Low": 100, "Close": 110},
{"Open": 110, "High": 120, "Low": 105, "Close": 115},
])
ha_df = calculate_heikin_ashi(df)
print(ha_df[["HA_Open", "HA_High", "HA_Low", "HA_Close"]])
# If HA_Close is above HA_Open (Uptrend), place a buy order
if ha_df.iloc[-1]["HA_Close"] > ha_df.iloc[-1]["HA_Open"]:
place_market_order()
🚀 Next Steps
✅ Use WebSockets for real-time price updates.
✅ Set up a cron job or a loop for continuous execution.
✅ Backtest strategies before deploying live.
No Comments have been Posted.