تداول
- Lingua principale
- Python
- Stelle
- 1.5k
- Fork
- 398
- Merge medio
- 1g 16h
- PR unite (30g)
- 6
Descrizione
pip install alpaca-py pandas yfinance pandas_ta
import alpaca_trade_api as tradeapi
import yfinance as yf
import pandas as pd
import pandas_ta as ta
import time
from datetime import datetime
# إعداد Alpaca (استخدم Paper Trading أولاً)
API_KEY = 'YOUR_API_KEY'
API_SECRET = 'YOUR_API_SECRET'
BASE_URL = 'https://paper-api.alpaca.markets' # غيرها إلى live عند الجاهزية
api = tradeapi.REST(API_KEY, API_SECRET, BASE_URL, api_version='v2')
def get_penny_stocks():
# قائمة أسهم ناسداك رخيصة (يمكن توسيعها بـ scanner)
tickers = ['AAPL', 'TSLA', 'AMD'] # استبدل بقائمة حقيقية من scanner مثل Finviz أو Polygon
penny = []
for t in tickers:
try:
info = yf.Ticker(t).info
if info.get('regularMarketPrice', 100) < 5 and info.get('volume', 0) > 500000:
penny.append(t)
except:
pass
return penny
def should_buy(ticker):
data = yf.download(ticker, period='5d', interval='1m')
if len(data) < 50:
return False
data['RSI'] = ta.rsi(data['Close'], length=14)
data['Volume_MA'] = data['Volume'].rolling(20).mean()
latest = data.iloc[-1]
prev = data.iloc[-2]
# شرط بسيط: RSI منخفض + حجم مرتفع + ارتفاع سعر
if (latest['RSI'] < 35 and
latest['Volume'] > latest['Volume_MA'] * 1.5 and
latest['Close'] > prev['Close']):
return True
return False
def trading_bot():
print(f"تشغيل البوت في: {datetime.now()}")
pennies = get_penny_stocks()
for ticker in pennies:
if should_buy(ticker):
try:
# تحقق من الرصيد واشترِ (مثال: 100 سهم أو حسب رأس المال)
api.submit_order(
symbol=ticker,
qty=100,
side='buy',
type='market',
time_in_force='gtc'
)
print(f"تم شراء {ticker}")
except Exception as e:
print(f"خطأ في {ticker}: {e}")
# تشغيل البوت كل 5 دقائق (في حلقة)
while True:
trading_bot()
time.sleep(300) # 5 دقائق
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.