文章 "深度神经网络 (第 I 部)。准备数据" - 页 3

 
Vladimir Perervenko:

在 ggplot2(v2.2.1) 中,geom_candlestick(MRO 3.4.1)的定义消失了。

我已经拆掉了 MRO 3.4.0,所有计算都是在其中完成的,所以我明天会找到解决方案并写出来。

您使用的是哪个版本的 R?

谢谢!

最新版本是 "R 版本 3.4.2 (2017-09-28)"

 

这就是我不喜欢 ggplot2 的原因。下面是我在文章中没有提到的一个可行的变体。

#--------quantmod----------------------------
require(quantmod)
require(timetk)
evalq(
  pr %>% tk_xts(.) %>%
        chartSeries(x = OHLC(.), 
                    #c("auto", "candlesticks", 
                    #"matchsticks", "bars","line")
                    type = "bars", 
                    subset = 'last 3 days',#weeks, months
                    show.grid = T,
                    name = "EURJPY M15",
                    tyme.scale = T,
                    log.scale = FALSE,
                    line.type = "l",
                    bar.type = "ohlc",
                    theme = chartTheme('white',
                                       up.col = 4, 
                                       dn.col = 2,
                                       grid.col = 3,
                                       main.col = 1,
                                       sub.col = 4), 
                    major.ticks = "day", 
                    minor.ticks = TRUE ,
                    plot = TRUE,
                    color.vol = F,
                    multi.col = F
                    ),
      env)

它看起来是这样的

课程表

祝你好运

 
Vladimir Perervenko:

这就是我不喜欢 ggplot2 的原因。下面是我在文章中没有提到的一个可行的变体。

它看起来是这样的


祝你好运

谢谢!

您的变体在 RStudio 中可以正常绘制图表,但在 MT4 终端中却不起作用。我已经苦苦挣扎了第二天,在 env 环境中,chartSeries 命令不起作用。

如果可能,请分享一个能卸载报价并构建图表的 MT4 Expert Advisor。谢谢。

我只能用以前的老方法。在终端而不是 R 中编写所有命令非常不方便。


Rv(R, "Data",tm);

Rv(R, "Time",tm);

Rv(R, "Open",o);

Rv(R, "High",hi);

Rv(R, "Low",lo);

Rv(R, "Close",clo);

Rv(R, "成交量",vol);


prediction_command=

"库(magrittr)"+CR

+"library(dplyr) "+CR

+"库(XTS)"+CR

+"库(quantmod)"+CR

+"price <- cbind(Time = rev(Time), Open = rev(Open), High = rev(High), Low = rev(Low), Close = rev(Close)) "+CR

+"price_t <- price "+CR

+"dts = price_t[,1]"+CR

+"mydates = structure(price_t[,1],class=c('POSIXt','POSIXct')) "+CR

+"price_time <- xts(x=price_t[,c(2:5)], order.by=mydates, tzone='GMT') "+CR

;

RExecuteAsync(R,PREDICTION_COMMAND);

Rx(R, "chartSeries(price_time, type = 'bars', subset = 'last 3 days',show.grid = T,name = 'EURUSD M15',tyme.scale = T,log.scale = FALSE,line.type = 'l',bar.type = 'ohlc',theme = chartTheme('white',up.col = 4,dn.col = 2,grid.col = 3,main.col = 1,sub.col = 4),major.ticks = 'day',minor.ticks = TRUE,plot = TRUE,color.vol = F,multi.col = F)");


 
Konstantin Kopylov:

谢谢!

您的变体在 RStudio 中可以正常生成图表,但在 MT4 终端中却不起作用。第二天我一直在苦苦挣扎,我无法通过 env 环境获取 chartSeries 命令。

如果可能,请分享一个能卸载报价并构建图表的 MT4 Expert Advisor。谢谢。

我只能用以前的老方法。在终端而不是 R 中编写所有命令非常不方便。


Rv(R, "Data",tm);

Rv(R, "Time",tm);

Rv(R, "Open",o);

Rv(R, "High",hi);

Rv(R, "Low",lo);

Rv(R, "Close",clo);

Rv(R, "成交量",vol);


prediction_command=

"库(magrittr)"+CR

+"library(dplyr) "+CR

+"库(XTS)"+CR

+"库(quantmod)"+CR

+"price <- cbind(Time = rev(Time), Open = rev(Open), High = rev(High), Low = rev(Low), Close = rev(Close)) "+CR

+"price_t <- price "+CR

+"dts = price_t[,1]"+CR

+"mydates = structure(price_t[,1],class=c('POSIXt','POSIXct')) "+CR

+"price_time <- xts(x=price_t[,c(2:5)], order.by=mydates, tzone='GMT') "+CR

;

RExecuteAsync(R,PREDICTION_COMMAND);

Rx(R, "chartSeries(price_time, type = 'bars', subset = 'last 3 days',show.grid = T,name = 'EURUSD M15',tyme.scale = T,log.scale = FALSE,line.type = 'l',bar.type = 'ohlc',theme = chartTheme('white',up.col = 4,dn.col = 2,grid.col = 3,main.col = 1,sub.col = 4),major.ticks = 'day',minor.ticks = TRUE,plot = TRUE,color.vol = F,multi.col = F))");


下午好。

我在 MT 中不使用这种方式绘制图表。这样既麻烦又不方便。交互式图表和任何其他图表都应通过 shiny 从 R 中构建。

在文章的 V 部分,我将附上一个智能交易系统的简单图表输出。但我不明白为什么需要报价图表?

我打算输出测试结果、实时交易结果以及按时间、符号等分类的图表。也许我不会在这个 Expert Advisor 中完成所有工作。

要处理时间/日期,请使用更方便的 timekt 软件包。您的选择。

祝您好运

 

你好,弗拉基米尔

1) 为什么

v.rstl = c(NA, diff(rstl)*10)

乘以 10,而其他的却没有?

正常化后,乘法效应就会消失。

2)数字过滤器 按收盘价计算。在条形图开始时,收盘价是未知的(等于开盘价)。按收盘价计算 - 您可以窥视未来,这稍微提高了准确性。
也许您应该按前一栏的收盘价或至少按当前栏的开盘价计算过滤器?

在实验中,我试着按开仓计算过滤器--结果差了几个百分点。
根据第 6 篇文章中的实验

> #---5-----best----------------------
[1] 0.677 0.674 0.673 0.672 0.669 0.669 0.668

而不是 Close [1] 0.720 0.718 0.718 0.718 0.715 0.713 0.713 0.712。

3) 为什么滤波器 FATL、SATL、RFTL、RSTL 被排除在进一步计算之外?计算只针对振荡器。我试着保留它们,但 clusterSim 认为它们很重要,没有将它们过滤掉,训练的结果误差约为 50%,也就是说,虽然它们很重要,但却使结果大为恶化。
我想神经网络只使用振荡器作为输入是否合理?
 
elibrarius:

你好,弗拉基米尔

1) 为什么

乘以 10,而其他的却没有?

正常化后,乘法效应就会消失。

2)数字过滤器 按收盘价计算。在条形图开始时,收盘价是未知的(等于开盘价)。按收盘价计算 - 您可以窥视未来,这稍微提高了准确性。
也许您应该按前一栏的收盘价或至少按当前栏的开盘价计算过滤器?

在实验中,我试着按开仓计算过滤器--结果差了几个百分点。
根据第 6 篇文章中的实验

> #---5-----best----------------------
[1] 0.677 0.674 0.673 0.672 0.669 0.669 0.668

而不是 Close [1] 0.720 0.718 0.718 0.718 0.715 0.713 0.713 0.712。

3) 为什么滤波器 FATL、SATL、RFTL、RSTL 被排除在进一步计算之外?计算只针对振荡器。我试着把它们排除在外,但 clusterSim 认为它们很重要,没有把它们过滤掉。 训练的结果是,我得到了大约 50%的误差,也就是说,尽管它们很重要,但它们却使结果大为恶化。
我想,神经网络只使用振荡器作为输入是否合理?

下午好。

1. 这个预测器的值非常小,在归一化过程中可能会丢失。我只是将其纳入其他预测因子的范围。使用 SpatialSign 方法时,预测值不应该有数量级的差异。

2.所有引用值均取自从 1 开始形成的条形图。一般来说,最好按高/低计算之字形。我在前几篇文章中提供了 ZZ 计算的变体。

这 4 条是连续线,不适用于输入。它们之间的第一个区别是

v.fatl = c(NA, diff(fatl)),
v.rftl = c(NA, diff(rftl)),
v.satl = c(NA, diff(satl)),
v.rstl = c(NA, diff(rstl)*10))

与其他指标相比,数字滤波器有一个重要优势 - 它们是非参数指标(当然,从传统意义上说)。但我非常喜欢它们。

祝好运

 

您好,在阅读了您的文章后(第一次接触 R),我在第二段代码中遇到了以下错误:

Error in evalq({ : object 'env' not found

这里的 env 是指 PC 软件中的某个名称吗?还是真的是一个自动创建的对象?


这篇文章太棒了,我一定要想办法超越它,如果您能提供帮助就太好了:)

(使用 RStudio 并安装了 MRO 3.5.3(因为 3.4.0 已经过时了)

 
ferox875 :

您好,在阅读了您的文章(第一次接触 R)之后,我在第二段代码中遇到了以下错误:

Error in evalq ({: object 'env' not found

这里的 env 是指 PC 软件中的某个名称吗?还是它真的是一个自动生成的对象?


很好的文章,我会想办法解决这个问题的,如果您能帮忙就太好了:)

(使用 RStudio 并安装 MRO 3.5.3(因为 3.4.0 已过时)

创建 env 对象是为了分离来自不同工具的数据。只需在脚本开头写上

env <- new .env()
ls(env)
character( 0 )
env$a <- 23
ls(env)
[ 1 ] "a"
> env$a
[ 1 ] 23 

祝您好运

 

亲爱的 MR.弗拉基米尔-佩列文科先生,非常感谢您的快速回复,在学习了 R 课程之后,我希望至少能有足够的时间来学习您的优秀作品,非常感谢弗拉基米尔先生的分享。



致最崇高的敬意


费罗克斯

 

佩列文科先生,您好!希望您身体健康。我有一个新问题,当您第一次写到 ZigZag :

#------ZZ-----------------------------------
par <- c(25, 5)
ZZ <- function(x, par) {
# x - vector
  require(TTR)
  require(magrittr)
  ch = par[1] 
  mode = par[2]
  if (ch > 1) ch <- ch/(10 ^ (Dig - 1))
  switch(mode, xx <- x$Close,
         xx <- x$Med, xx <- x$Typ,
         xx <- x$Wd, xx <- x %>% select(High,Low))
  zz <- ZigZag(xx, change = ch, percent = F, 
               retrace = F, lastExtreme = T)
  n <- 1:length(zz)
  for (i in n) { if (is.na(zz[i])) zz[i] = zz[i - 1]}
  return(zz)
}

第 9 行中的 Dig 对象是什么意思?

项目 或所需软件包中都找不到......


致以最崇高的敬意 MR.佩列文科


费罗克斯