Untitled
unknown
plain_text
3 years ago
1.9 kB
10
Indexable
# Connect to Binance API
api_key = 'API HERE'
api_secret = 'SECRET API HERE'
client = Client(api_key, api_secret)
symbol = "ETHUSDT"
interval = '1d'
Client.KLINE_INTERVAL_1DAY
klines = client.get_historical_klines(symbol, interval, "1 Jan,2017")
data = pd.DataFrame(klines)
# create colums name
df = pd.DataFrame(data, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume', 'ignore'])
df.set_index('timestamp', inplace=True)
# Create a target variable
df['next_day_price'] = df['close'].shift(-1)
df['price_change'] = df['next_day_price'] - df['close']
df['price_direction'] = df['price_change'].apply(lambda x: 1 if x > 0 else 0)
# Define the feature set and target variable
X = df[['open', 'high', 'low', 'volume']]
y = df['price_direction']
# Train the model
clf = ExtraTreesRegressor()
clf.fit(X, y)
# Predict the next day's price
prediction = clf.predict([[df['open'].iloc[-1], df['high'].iloc[-1], df['low'].iloc[-1], df['volume'].iloc[-1]]])
# Create an order based on the prediction
if prediction > 0.5:
# Buy order
order = client.create_order(
symbol='ETHUSDT',
side=Client.SIDE_BUY,
type=Client.ORDER_TYPE_MARKET,
quantity=5
)
else:
# Sell order
order = client.create_order(
symbol='ETHUSDT',
side=Client.SIDE_SELL,
type=Client.ORDER_TYPE_MARKET,
quantity=5
)
# Set stop loss and stop gain orders
stop_loss_price = df['close'].iloc[-1] * 0.9
stop_gain_price = df['close'].iloc[-1] * 1.1
client.create_order(
symbol='ETHUSD',
side=Client.SIDE_SELL,
type=Client.ORDER_TYPE_STOP_LOSS,
quantity=5,
stopPrice=stop_loss_price
)
client.create_order(
symbol='ETHUSD',
side=Client.SIDE_SELL,
type=Client.ORDER_TYPE_TAKE_PROFIT,
quantity=5,
stopPrice=stop_gain_price
)Editor is loading...