正文
我们如何通过机器学习解决这一问题?
让我们看看下面的策略假设:我们在移动平均线交叉处预测某些特征的变化。如果出现一个跳跃,我们便将其作为交易信号;否则就跳过它,因为我们不想在平滑区域损失钱。
我想尝试把偏度(skewness)作为预测目标,偏度即度量分布非对称性的指标。假设我们预测分布出现变化,这意味着当前的趋势(不只是平滑区域)将在未来发生改变。
分布偏度
输入数据
这里我们使用 pandas 和 PyTi 来生成更多指标,并将其作为输入。我们将使用 MACD、Ichimocku cloud、RSI、波动率等。所有这些值将形成多变量时序,并逐渐变得平滑,以方便之后在 MLP 中使用,或者停留在 CNN/RNN。
nine_period_low = pd.rolling_min(pd.DataFrame(lowp), window= ROLLING / 2)
ichimoku = (nine_period_high + nine_period_low) /2
ichimoku = ichimoku.replace([np.inf, -np.inf], np.nan)
ichimoku = ichimoku.fillna(0.).values.tolist()
macd_indie = moving_average_convergence(pd.DataFrame(closep))
wpr = williams_percent_r(closep)
rsi = relative_strength_index(closep, ROLLING / 2)
volatility1 = pd.DataFrame(closep).rolling(ROLLING).std().values#.tolist()
volatility2 = pd.