def custom_tester(symbol, timeframe, frompos, pricesnumber, lag, num, markup = 0.0):
symbols_list = [symbol]
pr_test = pd.DataFrame()
for i in symbols_list:
rates = MT5CopyRatesFromPos(i, timeframe, frompos, pricesnumber)
pr_test[i] = [y.close for y in rates]
#creating price returns with lag
returns = np.array(np.log(1 + pr_test.pct_change(lag)))
returns = returns[lag:]
comp_returns = np.array(returns)
#
for i in range(num-1):
comp_returns = np.c_[comp_returns, returns]
#putting returns into dataframe
comp_returns = pd.DataFrame(comp_returns)
#shifting columns to use it as delayed features
for i in range(num):
comp_returns[i] = comp_returns.shift(i)
#deleting first 'num' rows with NaN's
comp_returns_shifted = pd.DataFrame(comp_returns[num:]).reset_index(drop=True)
testpr = np.array(pr_test[lag+num:])
X = pd.DataFrame(comp_returns_shifted)
p = model.predict_proba(X) # непрерывное предсказание классификатора (типа вероятность) result = np.array([0])
lastdeal = int(2)
lastpr = float(0.0)
for i in range (X[0].size):
# При первом входе
if lastdeal == 2:
# переводим непрерывное предсказание в номинальные значенияю Порог 0.5
if p[i][0] > 0.5:
lastdeal = 1else:
lastdeal = 0
lastpr = testpr[i] # сохраняем значение Close
continue
# при следующей итерации
if lastdeal == 1 and p[i][0] > 0.5:
lastdeal = 0 # это я не понял зачем
# При вычислении результата ошибка
result = np.append(result, result[-1] - markup + lastpr - testpr[i])
lastpr = testpr[i]
continue
# при последующей итерации
if lastdeal == 0 and p[i][0] < 0.5:
lastdeal = 1 # здесь не должно быть -1?
# и здесь ошибка
result = np.append(result, result[-1] - markup + testpr[i] - lastpr)
lastpr = testpr[i]
continue
plt.figure(figsize=(20,5))
plt.plot(result)
from sklearn.linear_model import LinearRegression
y = result.reshape(-1,1)
X = np.arange(result.size).reshape(-1,1)
lr = LinearRegression()
lr.fit(X,y)
# print(lr.score(X,y))
return lr.score(X,y)
Дополнение до единицы значения переменной. Значение выражения содержит 1 во всех разрядах, в которых значение переменной содержит 0, и 0 во всех разрядах, в которых значения переменной содержит 1. Сдвиг вправо Двоичное представление x сдвигается вправо на y разрядов. Если сдвигаемое значение имеет беззнаковый тип, то осуществляется логический...
我使用ZZ已经有大约15年了。我知道这个工具的所有缺点。我还知道很多其他的事情,这就是为什么我在上面说了我的想法。
---
系统应该自己找到买/卖点。它不是与市场上的参与者竞争,而是与市场本身竞争(抱歉,有些同义词)。
我和ZZ一起练习已经有大约15年了。我知道这个工具的所有缺点。而我知道的还有很多,这就是为什么我在上面告诉你我的想法。
---
系统应自行识别买/卖点。它不是与市场上的参与者竞争,而是与市场本身竞争(抱歉,有些同义词)。
一篇关于Habra的文章,以高调的标题"AI for people: simple words about technology"https://habr.com/ru/company/jetinfosystems/blog/471626/
我翻阅了这篇文章--这一切都归结为机器学习,....,并想起了一个古老的轶事。
一个学生正在参加动物学考试。他只知道跳蚤。在考试中,他得到一个关于狗的问题。
学生开始。
- 狗是哺乳动物,身上有毛。他们的皮毛里有跳蚤......那么这一切都是关于跳蚤的....
传教士。
- 好吧,年轻人,告诉我们关于猫的事情。
学生。
- 猫是覆盖着毛发的哺乳动物。他们的皮毛里有跳蚤....,更多关于跳蚤的信息....。
学生。
- 让我们来谈谈鱼。
学生。
- 鱼不是哺乳动物。他们没有毛。他们身上有鳞片,但如果他们身上有毛,就会有跳蚤出现在....。
归国人员培训的收官之作
完全不要使用ZZ或任何附加指标。只有来自几个tf的OHLC(tf的差异应该是4-6倍。 例如,1-5-30-H3...最多一个月的时间框架。自己选择),也许,还有更多的虱子,用于早期预警。
由最大和最小的价格分别卷积结构。通过OHLC--复发结构。以此类推,所有的二手价格。所有这些的信号都被进一步送入,比如说,送入整个网状网络。
同时,将通过递归网络传递的蜱虫输入到全网状网络的一个输入端。
优化存款增加的速度。因此,网眼应该自己决定手数,并选择开仓和平仓点。大约是这样的。
你为什么要急于用文字呢? 只要画出你建议的网络结构就可以了。而且你会得到很多问题。
但这只是热空气。这个想法是正确的,但方向是错误的。
归国人员培训的收官之作
还有,你能不能附上一个自制的测试器,我想知道你是否避免了一个非常常见的错误?或在私人信息中。
祝好运
并能附上自制的测试器,不知道你是否避免了一个非常常见的错误?或在私人信息中。
祝好运
Jupiter笔记本能不能用?
朱庇特的笔记本电脑能用吗?
(笑)当然了。谢谢。(笑)。我看一下,然后报告。
Jupiter笔记本电脑可以吗? 我把整个东西发给你,不是秘密地发给你,因为整个代码都在视频里。
把别人的代码拆开是一件很麻烦的事。只看custom_tester()函数,只看高亮部分。
计算结果的误差是多少?你计算每次迭代的结果,将结果+=testpr[i]-lastpr 加到前一个值。 它是当前条形图的收盘价与前一个条形图的收盘价之间的差异。理想情况下,最好使用关闭-打开,但这并不重要。重要的是,在当前条形图的收盘处收到信号后,你将把它视为同一条形图的diff(Close)信号。这是不正确的。 当前柱状图的信号溢价是下一个 柱状图的diff(Close)。 信号必须向右移动一格才能正确计算出结果。 p = model.predict_proba(X) 向右移动一 格。我将在R上显示进一步的计算,这对我来说比较容易。
在第一行,将预测值转换为名义值(1,-1),向右移动 一格,去除NA,得到一个信号矢量。第二行累积总结了信号向量和diff(Close)向量的乘积,之前已经将其与信号向量的长度对齐。这将给我们带来正确的结果。
祝好运