![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Das Problem mit R ist, dass es nicht in Verbindung mit einem Prüfgerät ausgeführt werden kann und keine grafischen Berichte erstellt werden können. =)
Das Problem mit R ist, dass man es nicht in Verbindung mit dem Prüfgerät ausführen und grafische Berichte erstellen kann. =)
Dies ist kein Problem von R, sondern ein Problem der Berichtsersteller.
Zu Forschungszwecken genügt es, in fünf Minuten selbst einen einfachen Tester zu schreiben.
library(TTR)
library(zoo)
# get some data
num.points <- ...
midprices <- ...
spreads <- ...
bids <- midprices - 0.5 * spreads
asks <- midprices + 0.5 * spreads
# length(midprices) == num.points; length(spreads) == num.points
ma.fast <- EMA(midprices, 15)
ma.slow <- EMA(midprices, 50)
# compute entry/exit signals
open.long.position <- (ma.fast > ma.slow) & (ma.slow > midprices)
close.long.position <- (ma.fast < midprices)
open.short.position <- (ma.fast < ma.slow) & (ma.slow < midprices)
close.short.position <- (ma.fast > midprices)
signals.to.position <- function (num.points, signal.open, signal.close) {
pos <- rep(NA, num.points)
pos[signal.open] <- 1
pos[signal.close] <- 0
pos <- na.locf(pos, na.rm = F)
pos[is.na(pos)] <- 0
pos
}
# compute strategy positions
pos.long <- signals.to.position(num.points, open.long.position, close.long.position)
pos.short <- signals.to.position(num.points, open.short.position, close.short.position)
pos.total <- pos.long - pos.short
# compute equity
commission <- 1
trade.size <- c(0, pos.total[2 : num.points] - pos.total[1 : (num.points - 1)])
fees <- abs(trade.size) * (commission + 0.5 * spreads)
equity <- midprices * pos.total + cumsum(-midprices * trade.size - fees)
# compute balance
balance <- rep(NA, num.points)
balance[trade.size != 0] <- equity[trade.size != 0]
balance <- na.locf(balance, na.rm = F)
balance[is.na(balance)] <- 0
# display results
par(mfrow = c(2, 1))
plot(midprices, t = 'l', col = 'gray', lty = 'dashed')
lines(bids, col = 'blue')
lines(asks, col = 'red')
points(which(trade.size > 0, arr.ind = T), asks[trade.size > 0], col = 'blue')
points(which(trade.size < 0, arr.ind = T), bids[trade.size < 0], col = 'red')
plot(equity, t = 'l')
lines(balance, col = 'gray', lty = 'dashed')
Das ist nicht das Problem von R, sondern das Problem der Berichtszeichner.
Es dauert nur fünf Minuten, um selbst einen einfachen Tester für die Forschung zu schreiben.
library(TTR)
library(zoo)
# get some data
num.points <- ...
midprices <- ...
spreads <- ...
bids <- midprices - 0.5 * spreads
asks <- midprices + 0.5 * spreads
# length(midprices) == num.points; length(spreads) == num.points
ma.fast <- EMA(midprices, 15)
ma.slow <- EMA(midprices, 50)
# compute entry/exit signals
open.long.position <- (ma.fast > ma.slow) & (ma.slow > midprices)
close.long.position <- (ma.fast < midprices)
open.short.position <- (ma.fast < ma.slow) & (ma.slow < midprices)
close.short.position <- (ma.fast > midprices)
signals.to.position <- function (num.points, signal.open, signal.close) {
pos <- rep(NA, num.points)
pos[signal.open] <- 1
pos[signal.close] <- 0
pos <- na.locf(pos, na.rm = F)
pos[is.na(pos)] <- 0
pos
}
# compute strategy positions
pos.long <- signals.to.position(num.points, open.long.position, close.long.position)
pos.short <- signals.to.position(num.points, open.short.position, close.short.position)
pos.total <- pos.long - pos.short
# compute equity
commission <- 1
trade.size <- c(0, pos.total[2 : num.points] - pos.total[1 : (num.points - 1)])
fees <- abs(trade.size) * (commission + 0.5 * spreads)
equity <- midprices * pos.total + cumsum(-midprices * trade.size - fees)
# compute balance
balance <- rep(NA, num.points)
balance[trade.size != 0] <- equity[trade.size != 0]
balance <- na.locf(balance, na.rm = F)
balance[is.na(balance)] <- 0
# display results
par(mfrow = c(2, 1))
plot(midprices, t = 'l', col = 'gray', lty = 'dashed')
lines(bids, col = 'blue')
lines(asks, col = 'red')
points(which(trade.size > 0, arr.ind = T), asks[trade.size > 0], col = 'blue')
points(which(trade.size < 0, arr.ind = T), bids[trade.size < 0], col = 'red')
plot(equity, t = 'l')
lines(balance, col = 'gray', lty = 'dashed')
So einfach ist das...
Sollen wir die Raster entschlüsseln?
Hm. Vielleicht weiß ich es auch nicht. Ich habe es noch nicht wirklich benutzt.
Es ist nur, wie bei allem...
Sollen wir die Raster entschlüsseln?
Bitte um Hilfe.
Ich habe EURUSD in R eingegeben. Ich habe das Modell berechnet und den Koeffizienten ermittelt. Wie kann ich ein Diagramm zeichnen und es mit dem Kotir kombinieren?
> x.ar<-ar(eur[1:256],method="mle")
> x.ar
Anrufen:
ar(x = eur[1:256],method="mle")
Koeffizienten:
1 ........2.......... 3
0.9420 0.1955 -0.1644
Gewählte Reihenfolge 3 sigma^2 geschätzt als 2.73e-06