Global
GetCommand()
获取管理端推送给实盘的交互指令(非阻塞轮询)。
语法
python
cmd = GetCommand()返回值
str:指令内容(字符串,格式由策略自行约定,如普通文本或 JSON)None:当前没有指令,或查询失败
说明
- 管理端向实盘推送的指令进入托管者中该实盘的指令队列,
GetCommand()每次从队列取出一条,取出后即删除。 - 调用不会阻塞,没有指令时立即返回
None。 - 队列中有多条指令时,需要多次调用才能全部取出。
示例
主循环中处理指令
python
def main():
running = True
while True:
cmd = GetCommand()
if cmd:
Log(f"📩 收到指令: {cmd}")
if cmd == "pause":
running = False
elif cmd == "resume":
running = True
elif cmd == "stop":
Exit(reason="收到停止指令")
if running:
ticker = exchange.GetTicker()
# ... 策略逻辑 ...
Sleep(3000)处理 JSON 指令
python
def handle(cmd):
try:
data = json.loads(cmd)
except ValueError:
Log("非 JSON 指令:", cmd)
return
if data.get("action") == "buy":
exchange.Buy(data["price"], data["amount"], "手动指令")
def main():
while True:
cmd = GetCommand()
while cmd: # 一次取完队列中的所有指令
handle(cmd)
cmd = GetCommand()
Sleep(1000)