哪位大神可以帮我看看哪里出错了吗?我写的这个双均线买不进来,也卖不出去。。
我是个初学者,刚学完python,还望各位大佬多指教。
from jqdata import *
def initialize(context):
run_daily(period, time='every_bar')
g.security = '000001.XSHE'
g.ema = 0
def period(context):
#程序主体
cash = context.portfolio.available_cash
#print([EMA(g.security,5)[0],EMA(g.security,10)[0],EMA(g.security,5)[1],EMA(g.security,10)[1]])
if EMA(g.security,10)[0] < EMA(g.security,60)[0] and EMA(g.security,10)[1] > EMA(g.security,60)[1]:
order_target_value(g.security,cash)
elif EMA(g.security,10)[0] > EMA(g.security,60)[0] and EMA(g.security,10)[1] < EMA(g.security,60)[1]:
order_target(g.security, 0)
def EMA(security,n=10):
alpha = (n-1)/(n+1)
#ema计算
ema_pre = g.ema
if g.ema == 0:
sum = 0
for i in range(0,n):
values = list(attribute_history(g.security, count=n, unit='1d', fields=['close'],df = True).values)
sum += values[i][0]
g.ema = sum/n
ema_now = g.ema
ema_pre = g.ema
else:
close = list(attribute_history(g.security,count=1, unit='1d', fields=['close'], df=True).values)
close_td = close[0][0]
g.ema = (1-alpha)*close_td + (alpha)*ema_pre
ema_now = g.ema
return (ema_pre,ema_now)
2019-07-03