完善turtle监视
This commit is contained in:
parent
c9841014c1
commit
43a419a56f
@ -785,26 +785,70 @@ class TurtleTrading_OnTime(object):
|
||||
|
||||
def monitor_single_turtle(self, turtle: TurtleTrading, stock_data, etf_data):
|
||||
"""监控单个turtle的交易条件"""
|
||||
# 获取当前价格
|
||||
if turtle.TradeCode in stock_data['代码'].values:
|
||||
price_now = stock_data[stock_data['代码'] == turtle.TradeCode]['最新价'].values[0]
|
||||
elif turtle.TradeCode in etf_data['代码'].values:
|
||||
price_now = etf_data[etf_data['代码'] == turtle.TradeCode]['最新价'].values[0]
|
||||
else:
|
||||
return # 未找到对应标的
|
||||
|
||||
now = datetime.now().time()
|
||||
if turtle.type == "stock":
|
||||
turtle.PriceNow = float(stock_data.loc[etf_data['代码'] == self.turtle.TradeCode, '最新价'].values[0])
|
||||
|
||||
elif turtle.type == "etf":
|
||||
# self.turtle.PriceNow = float(etf_data.loc[etf_data['基金代码'] == self.turtle.TradeCode, '当前-单位净值'].values[0])
|
||||
turtle.PriceNow = float(etf_data.loc[etf_data['代码'] == self.turtle.TradeCode, '最新价'].values[0])
|
||||
|
||||
# 检查买入条件
|
||||
if self.system1EnterNormal(price_now, turtle.Donchian_20_ups, turtle.BreakOutLog):
|
||||
self.start_email_thread(turtle, "买入", price_now)
|
||||
|
||||
# 检查加仓条件
|
||||
if self.add(price_now):
|
||||
self.start_email_thread(turtle, "加仓", price_now)
|
||||
|
||||
# 检查止损条件
|
||||
if self.system_1_stop(price_now):
|
||||
self.start_email_thread(turtle, "止损", price_now)
|
||||
|
||||
if now.hour == 9 and now.minute == 30 and self.turtle.PriceNow > self.turtle.prev_heigh:
|
||||
turtle.is_gap_up = True
|
||||
|
||||
# 判断当前仓位状态并执行相应操作
|
||||
if turtle.TrigerTime == 0:
|
||||
if turtle.system1EnterNormal(
|
||||
turtle.PriceNow,
|
||||
turtle.Donchian_20_up,
|
||||
turtle.BreakOutLog
|
||||
):
|
||||
|
||||
self.start_email_thread(turtle, "买入", turtle.PriceNow)
|
||||
|
||||
# 突破 记录self.turtle.breakoutlog
|
||||
today = datetime.now().strftime("%Y-%m-%d")
|
||||
breakout_this_time = BreakOutLog(today,
|
||||
turtle.Donchian_20_up,
|
||||
turtle.Donchian_20_up - 2 * turtle.N,
|
||||
'valid',
|
||||
None)
|
||||
turtle.BreakOutLog.append(breakout_this_time)
|
||||
|
||||
elif turtle.system1EnterSafe(
|
||||
turtle.PriceNow,
|
||||
turtle.Donchian_50_up
|
||||
):
|
||||
self.start_email_thread(turtle, "买入", turtle.PriceNow)
|
||||
|
||||
elif 1 <= turtle.TrigerTime <= 3:
|
||||
|
||||
# 加仓状态
|
||||
if turtle.add(turtle.PriceNow):
|
||||
self.start_email_thread(turtle, "加仓", turtle.PriceNow)
|
||||
|
||||
# 止损状态
|
||||
elif turtle.system_1_stop(turtle.PriceNow):
|
||||
self.start_email_thread(turtle, "止损", turtle.PriceNow)
|
||||
|
||||
# 止盈
|
||||
elif turtle.system_1_Out(
|
||||
turtle.PriceNow,
|
||||
turtle.Donchian_10_down
|
||||
):
|
||||
self.start_email_thread(turtle, "止盈", turtle.PriceNow)
|
||||
|
||||
elif turtle.TrigerTime == 4:
|
||||
# 满仓 止损 止盈
|
||||
if turtle.system_1_stop(turtle.PriceNow):
|
||||
self.start_email_thread(turtle, "止损", turtle.PriceNow)
|
||||
elif turtle.system_1_Out(
|
||||
turtle.PriceNow,
|
||||
turtle.Donchian_10_down
|
||||
):
|
||||
self.start_email_thread(turtle, "止盈", turtle.PriceNow)
|
||||
|
||||
def start_email_thread(self, turtle, action, price_now):
|
||||
"""启动邮件处理线程"""
|
||||
event = threading.Event()
|
||||
|
Loading…
x
Reference in New Issue
Block a user