def initialize(state):
state.counter = 0
@schedule(interval="1h",symbol="BTCUSDT”)
If state.counter < 4: state.counter += 1 Else: state.counter = 0
if counter == 4: (every four hours)
macd = data.macd(12,26,9) signalLine = macd[‘macd_signal’]
Check if bot has position
has_position = has_open_position(data.symbol, truncated=True)
import numpy as np
def initialize(state):
state.counter = 0
@schedule(interval="1h", symbol="BTCTUSD")
def handler(state, data):
angle = 0
macd_ind = data.macd(12,26,9)
if macd_ind is None:
return
signal = macd_ind['macd_signal']
has_position = has_open_position(data.symbol, truncated=True)
balance_base = float(query_balance_free(data.base))
balance_quoted = float(query_balance_free(data.quoted))
buy_amount = balance_quoted * 0.80 / data.close_last
plot("signal",signal[-1],"BTCTUSD")
if state.counter < 4:
state.counter += 1
else:
state.counter = 0
if state.counter == 4:
lastsignals = signal[-4:]
slope = (lastsignals[-1] - lastsignals[0]) / 3
angle = np.rad2deg(np.arctan(slope))
print("slope: ",slope)
print("angle: ",angle)
plot("angle of signal",angle,"BTCTUSD")
if angle > 30 and balance_base
print("-------")
print("Checking for buying possibility of {}".format(data.symbol))
print("buy amount:",buy_amount)
print("buy price:", data.close_last)
create_order(symbol=data.symbol,amount = buy_amount)
elif angle < -30 and has_position:
print("-------")
print("Checking for selling possibility of {}".format(data.symbol))
print("sell amount:",balance_base)
print("sell price:",data.close_last)
close_position(data.symbol)
问题:
第一个state.counter = 0
应该缩进。我收到此错误消息:
Engine error: File "bot.py", line 13. Engine error: @schedule(interval="1h",symbol="BTCUSDT”). Engine error: ^. Engine error: SyntaxError: EOL while scanning string literal. File "bot.py", line 13 @schedule(interval="1h",symbol="BTCUSDT”) ^ SyntaxError: EOL while scanning string literal