init
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import pandas as pd
|
||||
|
||||
import yfinance as yf
|
||||
from HTS2 import HTS
|
||||
import pandas as pd
|
||||
from datetime import datetime, timedelta
|
||||
import telegram
|
||||
@@ -13,6 +13,7 @@ import schedule
|
||||
from config import *
|
||||
import FinanceDataReader as fdr
|
||||
|
||||
hts = HTS()
|
||||
|
||||
def send_coin_msg(text):
|
||||
coin_client = telegram.Bot(token=COIN_TELEGRAM_BOT_TOKEN)
|
||||
@@ -36,6 +37,13 @@ def send_coin_telegram_message(message_list, header):
|
||||
|
||||
return
|
||||
|
||||
def buy_ticker(buy_ticker_list):
|
||||
for buy_ticker in buy_ticker_list:
|
||||
ticker_code = buy_ticker['symbol']
|
||||
_ = hts.buyCoinMarket(ticker_code, 50000)
|
||||
return
|
||||
|
||||
|
||||
|
||||
def send_stock_msg(text):
|
||||
stock_client = telegram.Bot(token=STOCK_TELEGRAM_BOT_TOKEN)
|
||||
@@ -425,6 +433,7 @@ def monitor_kr_stocks():
|
||||
|
||||
def monitor_coins():
|
||||
message_list = []
|
||||
buy_ticker_list = []
|
||||
print("KRW COINs {}".format(datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
|
||||
|
||||
for symbol in KR_COINS:
|
||||
@@ -438,11 +447,11 @@ def monitor_coins():
|
||||
if info is None:
|
||||
continue
|
||||
info['name'] = KR_COINS[symbol]
|
||||
print(
|
||||
f" - {info['name']} ({symbol}): {info['price']:.2f} -> {info['alert']} ({info['details']['interval']})")
|
||||
print(f" - {info['name']} ({symbol}): {info['price']:.2f} -> {info['alert']} ({info['details']['interval']})")
|
||||
|
||||
if info['alert']:
|
||||
message_list.append(format_ma_message(info, 'KR'))
|
||||
buy_ticker_list.append(info)
|
||||
except Exception as e:
|
||||
print(f"Error processing data for {symbol}: {str(e)}")
|
||||
else:
|
||||
@@ -459,8 +468,7 @@ def monitor_coins():
|
||||
if info is None:
|
||||
continue
|
||||
info['name'] = KR_COINS[symbol]
|
||||
print(
|
||||
f" - {info['name']} ({symbol}): {info['price']:.2f} -> {info['alert']} ({info['details']['interval']})")
|
||||
print(f" - {info['name']} ({symbol}): {info['price']:.2f} -> {info['alert']} ({info['details']['interval']})")
|
||||
|
||||
if info['alert']:
|
||||
message_list.append(format_ma_message(info, 'KR'))
|
||||
@@ -472,24 +480,15 @@ def monitor_coins():
|
||||
|
||||
if len(message_list) > 0:
|
||||
try:
|
||||
# buy
|
||||
buy_ticker(buy_ticker_list)
|
||||
# send message
|
||||
send_coin_telegram_message(message_list, header="[KRW-COIN]")
|
||||
except Exception as e:
|
||||
print(f"Error sending Telegram message: {str(e)}")
|
||||
|
||||
return
|
||||
|
||||
# ----------------------
|
||||
# Indicator utilities
|
||||
# ----------------------
|
||||
|
||||
def calculate_bollinger_bands(data: pd.DataFrame, period: int = 20, std: int = 2):
|
||||
data = data.copy()
|
||||
data['MA'] = data['Close'].rolling(window=period).mean()
|
||||
data['STD'] = data['Close'].rolling(window=period).std()
|
||||
data['Upper'] = data['MA'] + std * data['STD']
|
||||
data['Lower'] = data['MA'] - std * data['STD']
|
||||
return data
|
||||
|
||||
# ----------------------
|
||||
# Turnaround Detector v6
|
||||
# ----------------------
|
||||
|
||||
Reference in New Issue
Block a user