v0.1.7 done
This commit is contained in:
parent
0e36cf82a7
commit
cbf7f301f5
15
AutoStartTurtle.py
Normal file
15
AutoStartTurtle.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import schedule
|
||||||
|
import time
|
||||||
|
import os
|
||||||
|
|
||||||
|
def run_script():
|
||||||
|
os.system("/opt/miniconda3/envs/turtle_trade/bin/python3 TurtleOnTime.py")
|
||||||
|
|
||||||
|
# 每天上午9点20运行
|
||||||
|
schedule.every().day.at("09:20").do(run_script)
|
||||||
|
# schedule.every().day.a
|
||||||
|
# t("10:00").do(run_script)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
schedule.run_pending()
|
||||||
|
time.sleep(1)
|
@ -21,11 +21,13 @@ import requests
|
|||||||
'''
|
'''
|
||||||
todo
|
todo
|
||||||
|
|
||||||
1 运行过程框架调整,支持多个turtle同时监测 done
|
v0.1.1 运行过程框架调整,支持多个turtle同时监测 done
|
||||||
2 增加运行状态写入yaml文件,读取文件恢复状态 done
|
v0.1.2 增加运行状态写入yaml文件,读取文件恢复状态 done
|
||||||
3 测试每分钟获取实时信息,是否稳定。 done
|
v0.1.3 测试每分钟获取实时信息,是否稳定。 done
|
||||||
4 etf实时数据使用异步方式,获取速度加快了 done
|
v0.1.4 etf实时数据使用异步方式,获取速度加快了 done
|
||||||
4 获取数据,调用clash代理 done
|
v0.1.5 获取数据,调用clash代理 done
|
||||||
|
v0.1.6 把东方财富网写进规则代理 done
|
||||||
|
v0.1.7 每天定时启动 done
|
||||||
'''
|
'''
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@ -375,12 +377,14 @@ class TurtleTrading_OnTime(object):
|
|||||||
"R2-3|香港-NF|HKT家宽",
|
"R2-3|香港-NF|HKT家宽",
|
||||||
"R2-5|香港-NF|HKT家宽",
|
"R2-5|香港-NF|HKT家宽",
|
||||||
"R3-1|香港-NF|BGP静态",
|
"R3-1|香港-NF|BGP静态",
|
||||||
"R4-1|台湾-NF|家宽|原生",
|
|
||||||
"R5-1|日本-NF|GMO|原生IP",
|
"R5-1|日本-NF|GMO|原生IP",
|
||||||
"R5-4|日本-NF|IIJ|精品",
|
"R5-4|日本-NF|IIJ|精品",
|
||||||
"R6-1|美国-NF|BGP",
|
|
||||||
"R9-1|狮城-NF|FDC",
|
"R9-1|狮城-NF|FDC",
|
||||||
|
"D1-1直连|香港-NF",
|
||||||
|
"D1-2直连|香港-NF",
|
||||||
|
"D1-3直连|香港-NF"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def load_previous_state(self):
|
def load_previous_state(self):
|
||||||
"""Load previous state from YAML file if exists"""
|
"""Load previous state from YAML file if exists"""
|
||||||
@ -778,6 +782,12 @@ class TurtleTrading_OnTime(object):
|
|||||||
# 获取当前时间
|
# 获取当前时间
|
||||||
now = datetime.now().time()
|
now = datetime.now().time()
|
||||||
|
|
||||||
|
# 优先判断是否收盘
|
||||||
|
is_stop_time = (now.hour >= 15 and now.minute > 5) #收盘时间
|
||||||
|
# is_stop_time = (now.hour >= 18 and now.minute > 32) #收盘时间
|
||||||
|
if is_stop_time:
|
||||||
|
break
|
||||||
|
|
||||||
# 判断当前时间是否在交易时段内(9:30-11:30 或 13:00-15:00)
|
# 判断当前时间是否在交易时段内(9:30-11:30 或 13:00-15:00)
|
||||||
is_trading_time = (
|
is_trading_time = (
|
||||||
(now.hour == 9 and now.minute >= 30) or
|
(now.hour == 9 and now.minute >= 30) or
|
||||||
@ -795,10 +805,7 @@ class TurtleTrading_OnTime(object):
|
|||||||
time.sleep(60)
|
time.sleep(60)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
is_stop_time = (now.hour >= 15 and now.minute > 0) #收盘时间
|
|
||||||
# is_stop_time = (now.hour >= 18 and now.minute > 32) #收盘时间
|
|
||||||
if is_stop_time:
|
|
||||||
break
|
|
||||||
|
|
||||||
# 获取股票和ETF数据
|
# 获取股票和ETF数据
|
||||||
self.monitor_all_turtles()
|
self.monitor_all_turtles()
|
||||||
@ -850,8 +857,8 @@ class TurtleTrading_OnTime(object):
|
|||||||
if now.hour == 9 and now.minute == 30 and turtle.PriceNow > turtle.prev_heigh:
|
if now.hour == 9 and now.minute == 30 and turtle.PriceNow > turtle.prev_heigh:
|
||||||
turtle.is_gap_up = True
|
turtle.is_gap_up = True
|
||||||
|
|
||||||
fake_price = 1.492
|
# fake_price = 1.492
|
||||||
turtle.PriceNow = fake_price
|
# turtle.PriceNow = fake_price
|
||||||
# 判断当前仓位状态并执行相应操作
|
# 判断当前仓位状态并执行相应操作
|
||||||
if turtle.TrigerTime == 0:
|
if turtle.TrigerTime == 0:
|
||||||
if turtle.system1EnterNormal(
|
if turtle.system1EnterNormal(
|
||||||
@ -934,8 +941,8 @@ class TurtleTrading_OnTime(object):
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
user_email = "guoyize2209@163.com"
|
user_email = "guoyize2209@163.com"
|
||||||
nsdk = TurtleTrading('513870', "etf", 0.0025, 100000, 200000)
|
nsdk = TurtleTrading('513870', "etf", 0.0025, 50000, 200000)
|
||||||
cjdl = TurtleTrading('600900', "stock", 0.0025, 100000, 200000)
|
cjdl = TurtleTrading('600900', "stock", 0.0025, 50000, 200000)
|
||||||
# t.get_ready(100)
|
# t.get_ready(100)
|
||||||
|
|
||||||
a = TurtleTrading_OnTime([nsdk, cjdl], user_email)
|
a = TurtleTrading_OnTime([nsdk, cjdl], user_email)
|
||||||
|
22
state/2025-06-04.yaml
Normal file
22
state/2025-06-04.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
main_state:
|
||||||
|
email_events: {}
|
||||||
|
turtles:
|
||||||
|
- BreakOutLog: []
|
||||||
|
BuyStates: []
|
||||||
|
Capital: 50000
|
||||||
|
TradeCode: '513870'
|
||||||
|
TrigerTime: 0
|
||||||
|
cash: 200000
|
||||||
|
riskcoe: 0.0025
|
||||||
|
tradeslog: []
|
||||||
|
type: etf
|
||||||
|
- BreakOutLog: []
|
||||||
|
BuyStates: []
|
||||||
|
Capital: 50000
|
||||||
|
TradeCode: '600900'
|
||||||
|
TrigerTime: 0
|
||||||
|
cash: 200000
|
||||||
|
riskcoe: 0.0025
|
||||||
|
tradeslog: []
|
||||||
|
type: stock
|
||||||
|
user_email: guoyize2209@163.com
|
Loading…
x
Reference in New Issue
Block a user