Create ichimoku cloud strategies using the indicator condition 'long / short while c1 > c2'. Complex strategies can be formulated as combined 'c1 > c2 & c3 > c4' (both conditions must be satisfied) or asymmetric 'c1 > c2 x c3 > c4' (where 'c1 > c2' denotes the entry and 'c3 > c4' the exit indicator).

strat(
  x,
  c1 = c("close", "chikou", "open", "high", "low", "tenkan", "kijun", "senkouA",
    "senkouB", "cloudT", "cloudB"),
  c2 = c("tenkan", "kijun", "senkouA", "senkouB", "cloudT", "cloudB", "chikou",
    "close", "open", "high", "low"),
  c3 = c("close", "chikou", "open", "high", "low", "tenkan", "kijun", "senkouA",
    "senkouB", "cloudT", "cloudB"),
  c4 = c("tenkan", "kijun", "senkouA", "senkouB", "cloudT", "cloudB", "chikou",
    "close", "open", "high", "low"),
  dir = c("long", "short"),
  type = 2
)

Arguments

x

an ichimoku object.

c1

[default 'close'] column name specified as a string.

c2

[default 'tenkan'] column name specified as a string.

c3

(optional) column name specified as a string.

c4

(optional) column name specified as a string.

dir

[default 'long'] trade direction, either 'long' or 'short'.

type

[default 2] if 'c3' and 'c4' are specified, type 2 will create the combined strategy 'c1 > c2 & c3 > c4' whilst type 3 will create the asymmetric strategy 'c1 > c2 x c3 > c4'.

Value

An ichimoku object augmented with the strategy.

Details

The following assumption applies to all strategies: confirmation of whether a condition is satisfied is received at the 'close' of a particular period, and a transaction is initiated at the immediately following 'open'. All transactions occur at the 'open'.

By default, the periods in which the strategy results in a position is shaded on the ichimoku cloud chart and the strategy is printed as the chart message (if not otherwise specified). To turn off this behaviour, pass the strat = FALSE argument to plot() or iplot().

Ichimoku Object Specification for Strategies

The ichimoku object is augmented with the following additional elements:

Columns [numeric]:

  • $cond: a boolean vector if the indicator condition is met

  • $posn: a boolean vector indicating if a position is held

  • $txn: a vector representing the transactions to implement the position (1 = enter position, -1 = exit position)

  • $logret: a vector of log returns

  • $slogret: a vector of log returns for the strategy

  • $ret: a vector of discrete returns

  • $sret: a vector of of discrete returns for the strategy

Attributes:

  • $strat: the strategy summary [matrix]

The strategy summary may be accessed by the summary() method for ichimoku objects or via look.

Complex Strategies

For complex strategies: 's1' denotes the strategy 'c1 > c2' and 's2' denotes the strategy 'c3 > c4'.

  • Combined strategy 's1 & s2': indicator conditions in 's1' and 's2' have to be met simulateneously for a position to be taken. The column $cond will show when both conditions are met.

  • Asymmetric strategy 's1 x s2': indicator condition in 's1' has to be met to enter a position, and indicator condition in 's2' to exit a position. These rules are applied recursively over the length of the data. The column $cond will show when the indicator condition is met in 's1'

Further Details

Please refer to the strategies vignette by calling: vignette("strategies", package = "ichimoku")

Examples

cloud <- ichimoku(sample_ohlc_data, ticker = "TKR") strat <- strat(cloud, c1 = "tenkan", c2 = "cloudB", dir = "short") summary(strat)
#> [,1] #> Strategy "tenkan > cloudB" #> --------------------- "----------" #> Strategy cuml return % 10 #> Per period mean ret % 0.0536 #> Periods in market 127 #> Total trades 4 #> Average trade length 31.75 #> Trade success % 75 #> Worst trade ret % -1.42 #> --------------------- "----------" #> Benchmark cuml ret % -5.24 #> Per period mean ret % -0.0302 #> Periods in market 178 #> --------------------- "----------" #> Direction "short" #> Start 2020-04-19 23:00:00 #> End 2020-12-23 #> Ticker "TKR"
plot(strat)
strat2 <- strat(cloud, c1 = "cloudT", c2 = "kijun", c3 = "cloudT", c4 = "close") summary(strat2)
#> [,1] #> Strategy "cloudT > kijun & cloudT > close" #> --------------------- "----------" #> Strategy cuml return % 9.82 #> Per period mean ret % 0.0527 #> Periods in market 63 #> Total trades 5 #> Average trade length 12.6 #> Trade success % 80 #> Worst trade ret % -0.97 #> --------------------- "----------" #> Benchmark cuml ret % 5.53 #> Per period mean ret % 0.0302 #> Periods in market 178 #> --------------------- "----------" #> Direction "long" #> Start 2020-04-19 23:00:00 #> End 2020-12-23 #> Ticker "TKR"
plot(strat2)