Alpaca Markets Trading ve Market Data API'leri için çoklu dil desteğine sahip client kütüphanesi.
Bu kütüphane ile Alpaca üzerinden programatik olarak trading yapabilirsiniz:
- Trading: Hisse senedi, crypto ve opsiyon alım/satım
- Market Data: Gerçek zamanlı ve geçmiş fiyat verileri
- Streaming: WebSocket ile canlı veri akışı
- Paper Trading: Gerçek para riski olmadan test
| Özellik | Açıklama |
|---|---|
| Trading API | Account, Orders, Positions, Watchlists |
| Market Data | Stocks, Crypto, Options (Bars, Trades, Quotes) |
| Streaming | Real-time WebSocket (IEX, SIP, Crypto) |
| Paper Trading | Risk-free testing environment |
cd python
pip install -r requirements.txtimport os
from dotenv import load_dotenv
from alpaca_client import AlpacaClient, TradingAPI, MarketDataAPI
load_dotenv()
client = AlpacaClient(
api_key=os.environ["ALPACA_API_KEY"],
api_secret=os.environ["ALPACA_API_SECRET"],
paper=True
)
trading = TradingAPI(client)
market_data = MarketDataAPI(client)
# Hesap bilgisi
account = trading.get_account()
print(f"Buying Power: ${account.buying_power:,.2f}")
# Fiyat sorgula
price = market_data.get_current_price("AAPL")
print(f"AAPL: ${price}")
# Order ver
order = trading.buy("AAPL", qty=10)cd typescript
npm installimport { AlpacaClient, TradingAPI, MarketDataAPI } from 'alpaca-api-client';
const client = new AlpacaClient({
apiKey: process.env.ALPACA_API_KEY!,
apiSecret: process.env.ALPACA_API_SECRET!,
paper: true
});
const trading = new TradingAPI(client);
const marketData = new MarketDataAPI(client);
// Hesap bilgisi
const account = await trading.getAccount();
console.log(`Buying Power: $${account.buyingPower.toLocaleString()}`);
// Fiyat sorgula
const price = await marketData.getCurrentPrice('AAPL');
console.log(`AAPL: $${price}`);
// Order ver
const order = await trading.buy('AAPL', 10);cd go
go mod downloadpackage main
import (
"fmt"
"os"
"github.com/eneshenderson/alpaca-API/go/alpaca"
)
func main() {
client := alpaca.NewClient(alpaca.ClientOptions{
APIKey: os.Getenv("ALPACA_API_KEY"),
APISecret: os.Getenv("ALPACA_API_SECRET"),
Paper: true,
})
trading := alpaca.NewTradingAPI(client)
marketData := alpaca.NewMarketDataAPI(client)
// Hesap bilgisi
account, _ := trading.GetAccount()
fmt.Printf("Buying Power: $%s\n", account.BuyingPower)
// Fiyat sorgula
price, _ := marketData.GetCurrentPrice("AAPL")
fmt.Printf("AAPL: $%.2f\n", price)
// Order ver
order, _ := trading.Buy("AAPL", 10)
}cd csharp
dotnet buildusing Alpaca.Api;
var client = new AlpacaClient(new AlpacaClientOptions
{
ApiKey = Environment.GetEnvironmentVariable("ALPACA_API_KEY")!,
ApiSecret = Environment.GetEnvironmentVariable("ALPACA_API_SECRET")!,
Paper = true
});
var trading = new TradingApi(client);
var marketData = new MarketDataApi(client);
// Hesap bilgisi
var account = await trading.GetAccountAsync();
Console.WriteLine($"Buying Power: ${account.BuyingPower:N2}");
// Fiyat sorgula
var price = await marketData.GetCurrentPriceAsync("AAPL");
Console.WriteLine($"AAPL: ${price}");
// Order ver
var order = await trading.BuyAsync("AAPL", 10);cd java
gradle runimport com.alpaca.client.*;
import com.alpaca.client.models.*;
// Initialize client
AlpacaClient client = new AlpacaClient(apiKey, apiSecret, true);
TradingApi trading = new TradingApi(client);
MarketDataApi marketData = new MarketDataApi(client);
// Hesap bilgisi
Account account = trading.getAccount();
System.out.println("Buying Power: $" + account.getBuyingPower());
// Fiyat sorgula
double price = marketData.getCurrentPrice("AAPL");
System.out.printf("AAPL: $%.2f%n", price);
// Order ver
Order order = trading.submitOrder(OrderRequest.market("AAPL", "10", "buy"));Tüm dillerde aynı metodlar mevcuttur:
| Metod | Açıklama |
|---|---|
getAccount() |
Hesap bilgilerini getirir |
buy(symbol, qty) |
Market buy order |
sell(symbol, qty) |
Market sell order |
buyLimit(symbol, qty, price) |
Limit buy order |
getOrders() |
Tüm order'ları listeler |
cancelOrder(id) |
Order iptal eder |
getPositions() |
Açık pozisyonları listeler |
closePosition(symbol) |
Pozisyon kapatır |
getClock() |
Market durumunu getirir |
isMarketOpen() |
Market açık mı kontrol eder |
| Metod | Açıklama |
|---|---|
getStockBars(symbols, timeframe) |
Geçmiş OHLCV verileri |
getStockSnapshot(symbol) |
Anlık fiyat verisi |
getCurrentPrice(symbol) |
Güncel fiyat |
getCryptoBars(symbols, timeframe) |
Crypto OHLCV verileri |
getOptionsContracts(...) |
Opsiyon kontratları |
| Metod | Açıklama |
|---|---|
subscribe(trades, quotes, bars) |
Veri akışına abone ol |
unsubscribe(...) |
Aboneliği iptal et |
onTrade |
Trade event handler |
onQuote |
Quote event handler |
onBar |
Bar event handler |
alpaca-API/
├── python/ # Python 3.8+
│ ├── alpaca_client/ # Ana modül
│ ├── tests/ # Test dosyaları
│ └── requirements.txt
├── typescript/ # TypeScript 5.0+
│ ├── src/ # Kaynak kodlar
│ └── package.json
├── go/ # Go 1.21+
│ ├── alpaca/ # Ana paket
│ └── go.mod
├── csharp/ # .NET 8.0+
│ └── *.cs
├── java/ # Java 11+
│ ├── src/ # Kaynak kodlar
│ └── build.gradle
├── .env.example # Credential template
├── LICENSE # MIT Lisansı
└── README.md
.env.exampledosyasını.envolarak kopyalayın- Alpaca Dashboard'dan API key'lerinizi alın
.envdosyasına key'lerinizi girin
ALPACA_API_KEY=your_api_key_here
ALPACA_API_SECRET=your_api_secret_here
ALPACA_PAPER=true| Parametre | Varsayılan | Açıklama |
|---|---|---|
paper |
true |
Paper trading modu |
timeout |
30s |
Request timeout |
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit edin (
git commit -m 'Add amazing feature') - Push edin (
git push origin feature/amazing-feature) - Pull Request açın
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Enes Hikmet Kayım
- GitHub: @eneshenderson
Bu kütüphane resmi Alpaca API'si değildir. Yatırım kararlarınızda bu verileri kullanmadan önce kendi araştırmanızı yapın. Paper trading ile test etmeniz önerilir.