Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.
Articles

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

symbol
for different assets like ETHUSDT, XRPUSDT, etc.


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

your_api_key
and
your_api_secret
with Binance credentials.


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.

 

caa February 03 2025 12 reads 0 comments Print

0 comments

Leave a Comment

Please Login to Post a Comment.
  • No Comments have been Posted.

Sign In
Not a member yet? Click here to register.
Forgot Password?
Users Online Now
Guests Online 2
Members Online 0

Total Members: 14
Newest Member: Frank_nKansas