指定
import ccxt
import pandas as pd
import numpy as np
import talib
import time
# Configuration
exchange = ccxt.binance({
'apiKey': 'VOTRE_API_KEY',
'secret': 'VOTRE_SECRET_KEY',
})
# Paramètres de trading
symbole = 'BTC/USDT'
timeframe = '1h'
montant = 100 # en USDT
stop_loss = 0.98 # 2% de perte maximale
take_profit = 1.03 # 3% de gain
def recuperer_donnees():
ohlcv = exchange.fetch_ohlcv(symbole, timeframe, limit=100)
df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
return df
def calculer_indicateurs(df):
df['ema_50'] = talib.EMA(df['close'].values, timeperiod=50)
df['ema_200'] = talib.EMA(df['close'].values, timeperiod=200)
df['rsi'] = talib.RSI(df['close'].values, timeperiod=14)
return df
def strategie(df):
if df['ema_50'].iloc[-1] > df['ema_200'].iloc[-1] and df['rsi'].iloc[-1] < 70:
return 'acheter'
elif df['ema_50'].iloc[-1] < df['ema_200'].iloc[-1] and df['rsi'].iloc[-1] > 30:
return 'vendre'
else:
return 'neutre'
def trader():
df = recuperer_donnees()
df = calculer_indicateurs(df)
signal = strategie(df)
if signal == 'acheter':
try:
ordre = exchange.create_market_buy_order(symbole, montant)
print(f"Achetés {montant} {symbole}")
except Exception as e:
print(f"Erreur d'achat : {e}")
elif signal == 'vendre':
try:
ordre = exchange.create_market_sell_order(symbole, montant)
print(f"Vendus {montant} {symbole}")
except Exception as e:
print(f"Erreur de vente : {e}")
while True:
trader()
time.sleep(3600) # attendre 1 heure
反馈
1
等级
项目
7
0%
仲裁
8
13%
/
75%
逾期
3
43%
空闲
2
等级
项目
39
23%
仲裁
14
0%
/
93%
逾期
4
10%
空闲
3
等级
项目
476
40%
仲裁
105
40%
/
24%
逾期
81
17%
繁忙
发布者: 2 代码
4
等级
项目
0
0%
仲裁
0
逾期
0
空闲
5
等级
项目
0
0%
仲裁
0
逾期
0
空闲
发布者: 8 代码
6
等级
项目
0
0%
仲裁
0
逾期
0
空闲
项目信息
预算
30 - 200 USD