R quantmod chartSeries newTA chob - Legende und Achse ändern (primär und sekundär)

Dies ist eine fortgeschrittene Frage.

Ich verwende mein eigenes Layout für die chartSeries-Quantmod-Funktion und kann sogar mein eigenes newTA erstellen. Alles funktioniert gut. Aber ...

Was ich tun möchte, aber ich kann nicht:

a) Manipulieren Sie die Legende jedes der 3 Diagramme: - Verschieben Sie in eine andere Ecke (von "oben links" nach "oben rechts") - Ändern Sie den Inhalt - Entfernen Sie ihn bei Bedarf vollständig ...

b) Mein Indikator generiert 2 Legenden: Wert1 Wert2 wie oben ... wie könnte ich sie ändern? wie könnte ich sie löschen?

c) Position und Bereich der Y-Achse kontrollieren (links / rechts positionieren oder sogar entfernen, wenn sich eine sekundäre Achse in der Grafik befindet)

d) Ändern Sie die Hauptlegende (die oben rechts, in der der Datumsbereich angegeben ist)

Ein funktionierender Beispielcode:

# Load Library
library(quantmod)

# Get Data
getSymbols("SPY", src="yahoo", from = "2010-01-01")

# Create my indicator (30 values)
value1 <- rnorm(30, mean = 50, sd = 25)
value2 <- rnorm(30, mean = 50, sd = 25)

# merge with the first 30 rows of SPY
dataset <- merge(first(SPY, n = 30),
                 value1,
                 value2)
# **** data has now 8 columns:
# - Open
# - High
# - Low
# - Close
# - Volume
# - Adjusted
# - a       (my indicator value 1)
# - b       (my indicator value 2)
#

# create my TA function - This could also be achieve using the preFUN option of newTA
myTAfun <- function(a){
   # input: a: function will receive whole dataset
   a[,7:8]  # just return my indicator values
}

# create my indicator to add to chartSeries
newMyTA <- newTA(FUN   = myTAfun, # chartSeries will pass whole dataset, 
                                  # I just want to process the last 2 columns
              lty   = c("solid", "dotted"),
              legend.name = "My_TA",
              col   = c("red", "blue")
              )

# define my layout 
layout(matrix(c(1, 2, 3), 3, 1),
       heights = c(2.5, 1, 1.5)
       )

# create the chart
chartSeries(dataset,
            type        = "candlesticks",
            main        = "",
            show.grid   = FALSE,
            name        = "My_Indicator_Name",
            layout      = NULL,     # bypass internal layout
            up.col      = "blue",
            dn.col      = "red",
            TA          = c(newMyTA(),
                            addVo()
                            ),
            plot        = TRUE,
            theme       = chartTheme("wsj")
            )

Ich habe versucht, Legende Befehl und auch die Option legend.name (mit sehr begrenzter Kontrolle über die Ausgabe). Ich habe mir das von chartSeries zurückgegebene chob-Objekt angesehen, weiß aber nicht, was ich als Nächstes tun soll ...

Bild unten:

Antworten auf die Frage(1)

Ihre Antwort auf die Frage