| Overall Statistics |
|
Total Orders 6487 Average Win 0.73% Average Loss -0.53% Compounding Annual Return 133.345% Drawdown 31.200% Expectancy 0.289 Start Equity 10000 End Equity 765636.16 Net Profit 7556.362% Sharpe Ratio 2.332 Sortino Ratio 3.4 Probabilistic Sharpe Ratio 96.476% Loss Rate 46% Win Rate 54% Profit-Loss Ratio 1.40 Alpha 0.847 Beta 0.592 Annual Standard Deviation 0.379 Annual Variance 0.143 Information Ratio 2.201 Tracking Error 0.374 Treynor Ratio 1.492 Total Fees $11608.45 Estimated Strategy Capacity $1100000.00 Lowest Capacity Asset SOXL UKTSIYPJHFMT Portfolio Turnover 36.47% Drawdown Recovery 165 |
# region imports
from AlgorithmImports import *
# endregion
from run_strategy import run_strategy
# Every ticker weathervane_logic.py's generated run_strategy() references (kept as an
# explicit list here rather than parsed at runtime, so a missing/renamed ticker fails
# fast at initialize() instead of mid-backtest). The strategy's own rebalance cadence is
# "daily" (see the score JSON's top-level "rebalance" field).
WEATHERVANE_TICKERS = [
"AAPX", "AGG", "AGQ", "AMZN", "AMZU", "AMZZ", "BABA", "BAM", "BIL", "BITX", "BN",
"BND", "BTAL", "BX", "COIN", "CONL", "EDC", "EDZ", "EEM", "FAS", "FAZ", "FBL",
"GDXD", "GDXU", "GGLL", "GLD", "HOOD", "IBKR", "IEF", "IEI", "IGIB", "IOO", "IUSV",
"IVW", "IWM", "KKR", "KMLM", "MA", "META", "NVDL", "PLTR", "PSQ", "QLD", "QQQ",
"QQQE", "RGTI", "SCHW", "SH", "SHV", "SOFI", "SOXL", "SOXS", "SPXL", "SPY", "SQQQ",
"SVIX", "TECL", "TECS", "TLT", "TMF", "TQQQ", "TSLA", "TSLR", "UGL", "UPRO", "UVXY",
"V", "VIXM", "VIXY", "VOOG", "VOOV", "VOX", "VTR", "VTV", "WELL", "XLF", "XLK",
"XLP", "XLY",
]
HISTORY_WINDOW_DAYS = 220
class Weathervane(QCAlgorithm):
def initialize(self):
self.set_start_date(2021, 7, 1)
# self.set_end_date(2026, 8, 9)
self.set_cash(10000)
self.set_warm_up(HISTORY_WINDOW_DAYS, Resolution.DAILY)
self._symbols = {}
for ticker in WEATHERVANE_TICKERS:
try:
security = self.add_equity(ticker, Resolution.DAILY)
self._symbols[ticker] = security.symbol
except Exception as e:
# Some of these are newer leveraged/thematic products that may not have
# data over the full backtest window, or may not resolve on this data
# feed at all -- log and continue rather than aborting the whole
# backtest over one bad ticker.
self.debug(f"Could not add equity {ticker}: {e}")
self.schedule.on(
self.date_rules.every_day(),
self.time_rules.after_market_open("SPY", 10),
self.rebalance,
)
def rebalance(self):
if self.is_warming_up:
return
prices = {}
for ticker, symbol in self._symbols.items():
hist = self.history(symbol, HISTORY_WINDOW_DAYS, Resolution.DAILY)
closes = hist["close"].tolist() if (not hist.empty and "close" in hist.columns) else []
if len(closes) < HISTORY_WINDOW_DAYS:
pad_value = closes[0] if closes else 1.0
closes = [pad_value] * (HISTORY_WINDOW_DAYS - len(closes)) + closes
prices[ticker] = closes
try:
weights = run_strategy(prices)
except Exception as e:
# Last-resort safety net for anything unanticipated -- not relied on for the
# routine missing-data case anymore (see above).
self.debug(f"run_strategy failed on {self.time}: {e}")
return
targets = [
PortfolioTarget(self._symbols[ticker], weight)
for ticker, weight in weights.items()
if ticker in self._symbols
]
self.set_holdings(targets, liquidate_existing_holdings=True)
# region imports
from AlgorithmImports import *
# endregion
"""
Auto-generated from a strategy's JSON score by the code generator module.
Do not hand-edit -- regenerate instead. See the code generator's module
docstring for the schema-confidence caveats before trusting this.
"""
from typing import Dict, Sequence
import strategy_runtime as rt
import weathervane_part_0 # noqa: F401 -- registers this chunk's node functions
import weathervane_part_1 # noqa: F401 -- registers this chunk's node functions
import weathervane_part_2 # noqa: F401 -- registers this chunk's node functions
import weathervane_part_3 # noqa: F401 -- registers this chunk's node functions
import weathervane_part_4 # noqa: F401 -- registers this chunk's node functions
def run_strategy(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
"""Returns {ticker: target weight}. `prices` needs a chronological (oldest
first) daily-close series for every ticker referenced below:
'AAPX', 'AGG', 'AGQ', 'AMZN', 'AMZU', 'AMZZ', 'BABA', 'BAM', 'BIL', 'BITX', 'BN', 'BND', 'BTAL', 'BX', 'COIN', 'CONL', 'EDC', 'EDZ', 'EEM', 'FAS', 'FAZ', 'FBL', 'GDXD', 'GDXU', 'GGLL', 'GLD', 'HOOD', 'IBKR', 'IEF', 'IEI', 'IGIB', 'IOO', 'IUSV', 'IVW', 'IWM', 'KKR', 'KMLM', 'MA', 'META', 'NVDL', 'PLTR', 'PSQ', 'QLD', 'QQQ', 'QQQE', 'RGTI', 'SCHW', 'SH', 'SHV', 'SOFI', 'SOXL', 'SOXS', 'SPXL', 'SPY', 'SQQQ', 'SVIX', 'TECL', 'TECS', 'TLT', 'TMF', 'TQQQ', 'TSLA', 'TSLR', 'UGL', 'UPRO', 'UVXY', 'V', 'VIXM', 'VIXY', 'VOOG', 'VOOV', 'VOX', 'VTR', 'VTV', 'WELL', 'XLF', 'XLK', 'XLP', 'XLY'.
"""
return rt.call_node('_node_wt_cash_equal_952', prices)
# region imports
from __future__ import annotations
from AlgorithmImports import *
import statistics
from typing import Callable, Dict, List, Optional, Sequence
# endregion
"""
Runtime support for code generated by the score-code generator: the indicator math
(`relative_strength_index`, `cumulative_return`, ...) and weight-combination helpers
that generated `_node_*` functions call into. Kept separate from the code generator
itself so the generated Python only has one small, readable import to depend on.
A price series is just `Sequence[float]`, chronological ascending (oldest first,
most recent/current last) -- e.g. daily closes. Every indicator function reads
backwards from the end of the series, consistent with how the strategy is evaluated
"as of today" using a trailing window.
Every name in INDICATOR_FUNCTIONS below is confirmed against 3 real strategies pulled
from a live account (not guessed) -- see the code generator's module docstring for how
and what's still unconfirmed (mainly: step/fn types those 3 strategies happen not to
use). Simple-average conventions, not Wilder-smoothed:
`relative_strength_index()` here averages gains/losses evenly over the window rather
than using Wilder's exponential smoothing, matching the same simplification
`ibkr_client.get_atr()` already makes for ATR elsewhere in this project (see that
function's docstring). The strategy's own engine may compute these indicators slightly
differently -- treat this as a reasonable approximation to sanity-check logic with, not
a bit-for-bit reproduction of the source backtester.
"""
# Deliberately not `from typing import Tuple`: QuantConnect Cloud's Python environment
# (used by the generated code when backtested via Lean) resolves a
# bare `Tuple` to .NET's System.Tuple via its interop stubs, colliding with typing's.
# `tuple[...]` (lowercase, PEP 585) is used in annotations below instead -- safe on any
# Python version because of `from __future__ import annotations` above.
def _window(prices: Sequence[float], window_days: int, extra: int = 0) -> Sequence[float]:
"""The trailing `window_days + extra` prices. `extra` is 1 for indicators that need
one extra leading data point to compute `window_days` worth of day-over-day change
(returns, RSI, drawdown)."""
n = window_days + extra
if len(prices) < n:
raise ValueError(f"Need at least {n} price points for a {window_days}-day window, got {len(prices)}.")
return prices[-n:]
def current_price(prices: Sequence[float], window_days: Optional[int] = None) -> float:
"""`window_days` accepted (and ignored) so every indicator function has the same
`(prices, window_days)` signature -- simplifies the code generator's call sites."""
if not prices:
raise ValueError("Empty price series.")
return float(prices[-1])
def cumulative_return(prices: Sequence[float], window_days: int) -> float:
"""Percent change from `window_days` ago to the most recent price."""
w = _window(prices, window_days, extra=1)
start, end = w[0], w[-1]
return (end / start - 1.0) * 100.0
def moving_average_price(prices: Sequence[float], window_days: int) -> float:
return statistics.fmean(_window(prices, window_days))
def moving_average_return(prices: Sequence[float], window_days: int) -> float:
"""Mean of day-over-day percent returns over the trailing window."""
w = _window(prices, window_days, extra=1)
returns = [(w[i] / w[i - 1] - 1.0) * 100.0 for i in range(1, len(w))]
return statistics.fmean(returns)
def exponential_moving_average_price(prices: Sequence[float], window_days: int) -> float:
"""Standard EMA (alpha = 2/(window_days+1)), seeded with the simple average of the
earliest `window_days` points then applied forward over whatever history is given
(not just the trailing window -- EMA is defined recursively over the whole series)."""
if len(prices) < window_days:
raise ValueError(f"Need at least {window_days} price points, got {len(prices)}.")
alpha = 2.0 / (window_days + 1)
ema = statistics.fmean(prices[:window_days])
for p in prices[window_days:]:
ema = alpha * p + (1 - alpha) * ema
return ema
def standard_deviation_price(prices: Sequence[float], window_days: int) -> float:
return statistics.pstdev(_window(prices, window_days))
def standard_deviation_return(prices: Sequence[float], window_days: int) -> float:
w = _window(prices, window_days, extra=1)
returns = [(w[i] / w[i - 1] - 1.0) * 100.0 for i in range(1, len(w))]
return statistics.pstdev(returns)
def relative_strength_index(prices: Sequence[float], window_days: int) -> float:
"""Relative Strength Index, 0-100. Simple (not Wilder-smoothed) average of
gains/losses over the window -- see module docstring."""
w = _window(prices, window_days, extra=1)
changes = [w[i] - w[i - 1] for i in range(1, len(w))]
gains = [c for c in changes if c > 0]
losses = [-c for c in changes if c < 0]
avg_gain = sum(gains) / window_days
avg_loss = sum(losses) / window_days
if avg_loss == 0:
return 100.0 if avg_gain > 0 else 50.0
rs = avg_gain / avg_loss
return 100.0 - 100.0 / (1.0 + rs)
def max_drawdown(prices: Sequence[float], window_days: int) -> float:
"""Largest peak-to-trough decline over the trailing window, as a positive percent
(e.g. 12.5 for a 12.5% drawdown)."""
w = _window(prices, window_days, extra=1)
peak = w[0]
worst = 0.0
for p in w:
peak = max(peak, p)
worst = max(worst, (peak - p) / peak)
return worst * 100.0
INDICATOR_FUNCTIONS = {
"current-price": current_price,
"cumulative-return": cumulative_return,
"moving-average-price": moving_average_price,
"moving-average-return": moving_average_return,
"exponential-moving-average-price": exponential_moving_average_price,
"standard-deviation-price": standard_deviation_price,
"standard-deviation-return": standard_deviation_return,
"relative-strength-index": relative_strength_index,
"max-drawdown": max_drawdown,
}
"""Maps the source's `lhs-fn`/`rhs-fn`/`sort-by-fn` node values to the functions above --
every key here is confirmed (all 9 appear across 3 real strategies pulled from a live
account), not guessed. A 4th strategy could still use an indicator these 3 happen not
to; extend this dict (and add a matching function above, named `fn.replace("-", "_")`)
if the code generator reports an fn name it doesn't recognize."""
COMPARATORS = {
"gt": lambda a, b: a > b,
"gte": lambda a, b: a >= b,
"lt": lambda a, b: a < b,
"lte": lambda a, b: a <= b,
}
"""The source's `comparator` node value -> a Python comparison. All 4 confirmed (seen
across 3 real strategies); the source may also have an "eq" or similar not observed here."""
def combine_equal(parts: List[Dict[str, float]]) -> Dict[str, float]:
"""Equal-weight combination of sibling subtrees' {ticker: weight} results (each
summing to ~1.0 on its own) into one {ticker: weight} dict for their shared parent,
also summing to ~1.0."""
if not parts:
return {}
share = 1.0 / len(parts)
result: Dict[str, float] = {}
for part in parts:
for ticker, weight in part.items():
result[ticker] = result.get(ticker, 0.0) + weight * share
return result
def combine_weighted(parts: List[tuple[float, Dict[str, float]]]) -> Dict[str, float]:
"""Like combine_equal(), but each (fraction, {ticker: weight}) pair carries its own
explicit share (the source's per-child `weight: {num, den}`) instead of an equal 1/n."""
result: Dict[str, float] = {}
for fraction, part in parts:
for ticker, weight in part.items():
result[ticker] = result.get(ticker, 0.0) + weight * fraction
return result
def combine_inverse_vol(parts: List[tuple[float, Dict[str, float]]]) -> Dict[str, float]:
"""Inverse-volatility weighting: each (volatility, {ticker: weight}) pair gets a
share proportional to 1/volatility (higher volatility -> smaller share), normalized
so shares sum to 1.0. `volatility` is typically standard_deviation_return() computed
by the generated code for that child over the configured window.
Approximation, not a confirmed reproduction of the source's own inverse-vol formula
(e.g. the exact window/lookback used internally is not publicly documented
as of when this was written) -- treat results as directional, verify against a real
backtest before trusting exact weights.
A zero (or negative, shouldn't happen) volatility is floored to a tiny epsilon
rather than treated as literal infinity or as zero weight -- 1/vol is undefined at
vol=0, but the *intent* of inverse-vol weighting is "the calmer the asset, the more
weight it gets", so a perfectly flat price series should end up dominant, not
excluded."""
epsilon = 1e-9
inv = [(1.0 / max(vol, epsilon), part) for vol, part in parts]
total = sum(w for w, _ in inv)
if total <= 0:
return combine_equal([part for _, part in parts])
result: Dict[str, float] = {}
for weight, part in inv:
fraction = weight / total
for ticker, w in part.items():
result[ticker] = result.get(ticker, 0.0) + w * fraction
return result
def select_filter(
scored: List[tuple[float, Dict[str, float]]], select_fn: str, n: int
) -> Dict[str, float]:
"""The source's 'filter' step: rank candidates by a score (each generated by the
strategy's configured sort-by-fn/sort-by-fn-params, e.g. cumulative_return over some
window -- on either a single asset's own price series, or, for a candidate that's a
whole subtree, a synthetic_price_series() built from its resulting weights) and keep
only the top or bottom `n`, equal-weighted. select-fn/select-n/sort-by-fn field names
confirmed from 3 real strategies, but the exact weighting applied among
multiple *selected* candidates when n > 1 is not separately confirmed; equal-weight
is the standard convention and what's assumed here."""
if select_fn == "top":
ranked = sorted(scored, key=lambda pair: pair[0], reverse=True)
elif select_fn == "bottom":
ranked = sorted(scored, key=lambda pair: pair[0])
else:
raise ValueError(f"Unknown select-fn {select_fn!r} (expected 'top' or 'bottom').")
chosen = [part for _, part in ranked[:n]]
return combine_equal(chosen)
def synthetic_price_series(weights: Dict[str, float], prices: Dict[str, Sequence[float]]) -> List[float]:
"""Builds a synthetic blended price series for a sub-portfolio: each underlying
ticker's price series is normalized to start at 1.0 over the shared trailing window
(so different price scales don't distort the blend), then combined according to
`weights` (e.g. a generated `_node_*` function's {ticker: weight} result, summing to
~1.0) into one NAV-style series.
Used to rank or measure the volatility of a filter/wt-inverse-vol *candidate* that's
a whole subtree rather than a single asset, confirmed to occur in real strategies
(a 'filter' whose children are themselves conditional sub-strategies, not plain
tickers). The source's own exact method for this isn't confirmed -- this is a
standard, reasonable approximation (a weighted index of normalized prices), not a
verified reproduction of its internal formula."""
tickers = [t for t in weights if weights[t] != 0]
if not tickers:
raise ValueError("No non-zero-weight tickers to blend into a synthetic series.")
length = min(len(prices[t]) for t in tickers)
if length == 0:
raise ValueError("No overlapping price history among the weighted tickers.")
normalized = {t: [p / prices[t][-length] for p in prices[t][-length:]] for t in tickers}
return [sum(weights[t] * normalized[t][i] for t in tickers) for i in range(length)]
NODE_REGISTRY: Dict[str, Callable[[Dict[str, Sequence[float]]], Dict[str, float]]] = {}
"""Populated by generated `_node_*` functions (see the code generator) as each one is
defined, so nodes can call each other via call_node() by name rather than by bare Python
reference. Needed because a large strategy's generated code can be split across multiple
files (some hosting platforms, notably QuantConnect Cloud, cap individual file size at
64,000 characters -- easily exceeded; a complex real strategy can generate 800,000+
characters of Python), and a plain function can only resolve a bare-name call to another
function defined in its own module, not a sibling file's -- a shared registry sidesteps
that entirely, at the cost of one dict lookup per node evaluated."""
def call_node(name: str, prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
fn = NODE_REGISTRY.get(name)
if fn is None:
raise KeyError(
f"Node function {name!r} was called but never registered in NODE_REGISTRY -- "
"its defining module wasn't imported before this call. For a multi-file "
"generated strategy (see generate_python_chunks()), make "
"sure every chunk module gets imported (even just for its registration side "
"effect) before run_strategy() is called."
)
return fn(prices)
# region imports
from AlgorithmImports import *
# endregion
from typing import Dict, Sequence
import strategy_runtime as rt
def _node_asset_UVXY_1(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_1'] = _node_asset_UVXY_1
def _node_asset_UVXY_2(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_2'] = _node_asset_UVXY_2
def _node_asset_TQQQ_3(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_3'] = _node_asset_TQQQ_3
def _node_wt_cash_equal_4(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_TQQQ_3', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_4'] = _node_wt_cash_equal_4
def _node_if_5(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPXL'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_2', prices)
else:
return rt.call_node('_node_wt_cash_equal_4', prices)
rt.NODE_REGISTRY['_node_if_5'] = _node_if_5
def _node_wt_cash_equal_6(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_5', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_6'] = _node_wt_cash_equal_6
def _node_if_7(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_1', prices)
else:
return rt.call_node('_node_wt_cash_equal_6', prices)
rt.NODE_REGISTRY['_node_if_7'] = _node_if_7
def _node_wt_cash_equal_8(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_7', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_8'] = _node_wt_cash_equal_8
def _node_asset_TECL_9(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TECL': 1.0}
rt.NODE_REGISTRY['_node_asset_TECL_9'] = _node_asset_TECL_9
def _node_asset_UPRO_10(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UPRO': 1.0}
rt.NODE_REGISTRY['_node_asset_UPRO_10'] = _node_asset_UPRO_10
def _node_asset_SQQQ_11(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_11'] = _node_asset_SQQQ_11
def _node_asset_TLT_12(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TLT': 1.0}
rt.NODE_REGISTRY['_node_asset_TLT_12'] = _node_asset_TLT_12
def _node_filter_13(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['SQQQ'], 10), rt.call_node('_node_asset_SQQQ_11', prices)), (rt.relative_strength_index(prices['TLT'], 10), rt.call_node('_node_asset_TLT_12', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_13'] = _node_filter_13
def _node_wt_cash_equal_14(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_13', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_14'] = _node_wt_cash_equal_14
def _node_asset_SQQQ_15(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_15'] = _node_asset_SQQQ_15
def _node_asset_TQQQ_16(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_16'] = _node_asset_TQQQ_16
def _node_if_17(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SQQQ'], 10) < 31.0:
return rt.call_node('_node_asset_SQQQ_15', prices)
else:
return rt.call_node('_node_asset_TQQQ_16', prices)
rt.NODE_REGISTRY['_node_if_17'] = _node_if_17
def _node_wt_cash_equal_18(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_17', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_18'] = _node_wt_cash_equal_18
def _node_if_19(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['TQQQ']) < rt.moving_average_price(prices['TQQQ'], 20):
return rt.call_node('_node_wt_cash_equal_14', prices)
else:
return rt.call_node('_node_wt_cash_equal_18', prices)
rt.NODE_REGISTRY['_node_if_19'] = _node_if_19
def _node_wt_cash_equal_20(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_19', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_20'] = _node_wt_cash_equal_20
def _node_if_21(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) < 30.0:
return rt.call_node('_node_asset_UPRO_10', prices)
else:
return rt.call_node('_node_wt_cash_equal_20', prices)
rt.NODE_REGISTRY['_node_if_21'] = _node_if_21
def _node_wt_cash_equal_22(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_21', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_22'] = _node_wt_cash_equal_22
def _node_if_23(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) < 31.0:
return rt.call_node('_node_asset_TECL_9', prices)
else:
return rt.call_node('_node_wt_cash_equal_22', prices)
rt.NODE_REGISTRY['_node_if_23'] = _node_if_23
def _node_wt_cash_equal_24(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_23', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_24'] = _node_wt_cash_equal_24
def _node_if_25(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 200):
return rt.call_node('_node_wt_cash_equal_8', prices)
else:
return rt.call_node('_node_wt_cash_equal_24', prices)
rt.NODE_REGISTRY['_node_if_25'] = _node_if_25
def _node_wt_cash_equal_26(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_25', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_26'] = _node_wt_cash_equal_26
def _node_wt_cash_equal_27(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_26', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_27'] = _node_wt_cash_equal_27
def _node_asset_EDC_28(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_28'] = _node_asset_EDC_28
def _node_asset_BIL_29(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_29'] = _node_asset_BIL_29
def _node_wt_cash_specified_30(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('68') / float(100)), rt.call_node('_node_asset_EDC_28', prices)), ((float(32) / float(100)), rt.call_node('_node_asset_BIL_29', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_30'] = _node_wt_cash_specified_30
def _node_asset_EDC_31(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_31'] = _node_asset_EDC_31
def _node_asset_EDZ_32(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_32'] = _node_asset_EDZ_32
def _node_if_33(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IEI'], 10) > rt.relative_strength_index(prices['IWM'], 15):
return rt.call_node('_node_asset_EDC_31', prices)
else:
return rt.call_node('_node_asset_EDZ_32', prices)
rt.NODE_REGISTRY['_node_if_33'] = _node_if_33
def _node_wt_cash_equal_34(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_33', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_34'] = _node_wt_cash_equal_34
def _node_asset_EDC_35(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_35'] = _node_asset_EDC_35
def _node_asset_EDZ_36(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_36'] = _node_asset_EDZ_36
def _node_if_37(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 15) > rt.relative_strength_index(prices['EEM'], 15):
return rt.call_node('_node_asset_EDC_35', prices)
else:
return rt.call_node('_node_asset_EDZ_36', prices)
rt.NODE_REGISTRY['_node_if_37'] = _node_if_37
def _node_wt_cash_equal_38(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_37', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_38'] = _node_wt_cash_equal_38
def _node_asset_EDC_39(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_39'] = _node_asset_EDC_39
def _node_asset_EDZ_40(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_40'] = _node_asset_EDZ_40
def _node_if_41(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 10) > rt.relative_strength_index(prices['SPY'], 10):
return rt.call_node('_node_asset_EDC_39', prices)
else:
return rt.call_node('_node_asset_EDZ_40', prices)
rt.NODE_REGISTRY['_node_if_41'] = _node_if_41
def _node_wt_cash_equal_42(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_41', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_42'] = _node_wt_cash_equal_42
def _node_combine_equal_43(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_38', prices), rt.call_node('_node_wt_cash_equal_42', prices)])
rt.NODE_REGISTRY['_node_combine_equal_43'] = _node_combine_equal_43
def _node_if_44(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['EEM']) > rt.moving_average_price(prices['EEM'], 200):
return rt.call_node('_node_wt_cash_equal_34', prices)
else:
return rt.call_node('_node_combine_equal_43', prices)
rt.NODE_REGISTRY['_node_if_44'] = _node_if_44
def _node_wt_cash_equal_45(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_44', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_45'] = _node_wt_cash_equal_45
def _node_asset_EDC_46(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_46'] = _node_asset_EDC_46
def _node_asset_EDZ_47(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_47'] = _node_asset_EDZ_47
def _node_if_48(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 10) > rt.relative_strength_index(prices['SPY'], 10):
return rt.call_node('_node_asset_EDC_46', prices)
else:
return rt.call_node('_node_asset_EDZ_47', prices)
rt.NODE_REGISTRY['_node_if_48'] = _node_if_48
def _node_wt_cash_equal_49(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_48', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_49'] = _node_wt_cash_equal_49
def _node_if_50(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SHV']) > rt.moving_average_price(prices['SHV'], 50):
return rt.call_node('_node_wt_cash_equal_45', prices)
else:
return rt.call_node('_node_wt_cash_equal_49', prices)
rt.NODE_REGISTRY['_node_if_50'] = _node_if_50
def _node_wt_cash_equal_51(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_50', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_51'] = _node_wt_cash_equal_51
def _node_if_52(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['EEM'], 10) < 25.0:
return rt.call_node('_node_wt_cash_specified_30', prices)
else:
return rt.call_node('_node_wt_cash_equal_51', prices)
rt.NODE_REGISTRY['_node_if_52'] = _node_if_52
def _node_wt_cash_equal_53(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_52', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_53'] = _node_wt_cash_equal_53
def _node_wt_cash_equal_54(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_53', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_54'] = _node_wt_cash_equal_54
def _node_asset_EDC_55(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_55'] = _node_asset_EDC_55
def _node_asset_BIL_56(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_56'] = _node_asset_BIL_56
def _node_wt_cash_specified_57(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('68') / float(100)), rt.call_node('_node_asset_EDC_55', prices)), ((float(32) / float(100)), rt.call_node('_node_asset_BIL_56', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_57'] = _node_wt_cash_specified_57
def _node_asset_EEM_58(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EEM': 1.0}
rt.NODE_REGISTRY['_node_asset_EEM_58'] = _node_asset_EEM_58
def _node_asset_EDZ_59(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_59'] = _node_asset_EDZ_59
def _node_asset_BIL_60(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_60'] = _node_asset_BIL_60
def _node_wt_cash_specified_61(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('33') / float(100)), rt.call_node('_node_asset_EDZ_59', prices)), ((float(67) / float(100)), rt.call_node('_node_asset_BIL_60', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_61'] = _node_wt_cash_specified_61
def _node_if_62(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IEI'], 10) > rt.relative_strength_index(prices['IWM'], 15):
return rt.call_node('_node_asset_EEM_58', prices)
else:
return rt.call_node('_node_wt_cash_specified_61', prices)
rt.NODE_REGISTRY['_node_if_62'] = _node_if_62
def _node_wt_cash_equal_63(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_62', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_63'] = _node_wt_cash_equal_63
def _node_asset_EEM_64(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EEM': 1.0}
rt.NODE_REGISTRY['_node_asset_EEM_64'] = _node_asset_EEM_64
def _node_asset_EDZ_65(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_65'] = _node_asset_EDZ_65
def _node_asset_BIL_66(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_66'] = _node_asset_BIL_66
def _node_wt_cash_specified_67(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('33') / float(100)), rt.call_node('_node_asset_EDZ_65', prices)), ((float(67) / float(100)), rt.call_node('_node_asset_BIL_66', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_67'] = _node_wt_cash_specified_67
def _node_if_68(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 15) > rt.relative_strength_index(prices['EEM'], 15):
return rt.call_node('_node_asset_EEM_64', prices)
else:
return rt.call_node('_node_wt_cash_specified_67', prices)
rt.NODE_REGISTRY['_node_if_68'] = _node_if_68
def _node_wt_cash_equal_69(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_68', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_69'] = _node_wt_cash_equal_69
def _node_asset_EEM_70(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EEM': 1.0}
rt.NODE_REGISTRY['_node_asset_EEM_70'] = _node_asset_EEM_70
def _node_asset_EDZ_71(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_71'] = _node_asset_EDZ_71
def _node_asset_BIL_72(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_72'] = _node_asset_BIL_72
def _node_wt_cash_specified_73(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('33') / float(100)), rt.call_node('_node_asset_EDZ_71', prices)), ((float(67) / float(100)), rt.call_node('_node_asset_BIL_72', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_73'] = _node_wt_cash_specified_73
def _node_if_74(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 10) > rt.relative_strength_index(prices['SPY'], 10):
return rt.call_node('_node_asset_EEM_70', prices)
else:
return rt.call_node('_node_wt_cash_specified_73', prices)
rt.NODE_REGISTRY['_node_if_74'] = _node_if_74
def _node_wt_cash_equal_75(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_74', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_75'] = _node_wt_cash_equal_75
def _node_combine_equal_76(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_69', prices), rt.call_node('_node_wt_cash_equal_75', prices)])
rt.NODE_REGISTRY['_node_combine_equal_76'] = _node_combine_equal_76
def _node_if_77(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['EEM']) > rt.moving_average_price(prices['EEM'], 200):
return rt.call_node('_node_wt_cash_equal_63', prices)
else:
return rt.call_node('_node_combine_equal_76', prices)
rt.NODE_REGISTRY['_node_if_77'] = _node_if_77
def _node_wt_cash_equal_78(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_77', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_78'] = _node_wt_cash_equal_78
def _node_asset_EEM_79(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EEM': 1.0}
rt.NODE_REGISTRY['_node_asset_EEM_79'] = _node_asset_EEM_79
def _node_asset_EDZ_80(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_80'] = _node_asset_EDZ_80
def _node_asset_BIL_81(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_81'] = _node_asset_BIL_81
def _node_wt_cash_specified_82(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('33') / float(100)), rt.call_node('_node_asset_EDZ_80', prices)), ((float(67) / float(100)), rt.call_node('_node_asset_BIL_81', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_82'] = _node_wt_cash_specified_82
def _node_if_83(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 10) > rt.relative_strength_index(prices['SPY'], 10):
return rt.call_node('_node_asset_EEM_79', prices)
else:
return rt.call_node('_node_wt_cash_specified_82', prices)
rt.NODE_REGISTRY['_node_if_83'] = _node_if_83
def _node_wt_cash_equal_84(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_83', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_84'] = _node_wt_cash_equal_84
def _node_if_85(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SHV']) > rt.moving_average_price(prices['SHV'], 50):
return rt.call_node('_node_wt_cash_equal_78', prices)
else:
return rt.call_node('_node_wt_cash_equal_84', prices)
rt.NODE_REGISTRY['_node_if_85'] = _node_if_85
def _node_wt_cash_equal_86(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_85', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_86'] = _node_wt_cash_equal_86
def _node_if_87(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['EEM'], 10) < 25.0:
return rt.call_node('_node_wt_cash_specified_57', prices)
else:
return rt.call_node('_node_wt_cash_equal_86', prices)
rt.NODE_REGISTRY['_node_if_87'] = _node_if_87
def _node_wt_cash_equal_88(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_87', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_88'] = _node_wt_cash_equal_88
def _node_wt_cash_equal_89(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_88', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_89'] = _node_wt_cash_equal_89
def _node_if_90(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 200):
return rt.call_node('_node_wt_cash_equal_54', prices)
else:
return rt.call_node('_node_wt_cash_equal_89', prices)
rt.NODE_REGISTRY['_node_if_90'] = _node_if_90
def _node_wt_cash_equal_91(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_90', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_91'] = _node_wt_cash_equal_91
def _node_wt_cash_equal_92(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_91', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_92'] = _node_wt_cash_equal_92
def _node_asset_UVXY_93(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_93'] = _node_asset_UVXY_93
def _node_asset_UVXY_94(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_94'] = _node_asset_UVXY_94
def _node_asset_UVXY_95(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_95'] = _node_asset_UVXY_95
def _node_asset_UVXY_96(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_96'] = _node_asset_UVXY_96
def _node_asset_UVXY_97(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_97'] = _node_asset_UVXY_97
def _node_asset_UVXY_98(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_98'] = _node_asset_UVXY_98
def _node_asset_UVXY_99(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_99'] = _node_asset_UVXY_99
def _node_asset_UVXY_100(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_100'] = _node_asset_UVXY_100
def _node_wt_cash_equal_101(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_UVXY_100', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_101'] = _node_wt_cash_equal_101
def _node_asset_UVXY_102(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_102'] = _node_asset_UVXY_102
def _node_asset_UVXY_103(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_103'] = _node_asset_UVXY_103
def _node_asset_UVXY_104(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_104'] = _node_asset_UVXY_104
def _node_asset_VIXM_105(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'VIXM': 1.0}
rt.NODE_REGISTRY['_node_asset_VIXM_105'] = _node_asset_VIXM_105
def _node_asset_SPXL_106(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SPXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SPXL_106'] = _node_asset_SPXL_106
def _node_if_107(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 21) > 30.0:
return rt.call_node('_node_asset_VIXM_105', prices)
else:
return rt.call_node('_node_asset_SPXL_106', prices)
rt.NODE_REGISTRY['_node_if_107'] = _node_if_107
def _node_wt_cash_equal_108(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_107', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_108'] = _node_wt_cash_equal_108
def _node_wt_cash_equal_109(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_108', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_109'] = _node_wt_cash_equal_109
def _node_asset_TECL_110(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TECL': 1.0}
rt.NODE_REGISTRY['_node_asset_TECL_110'] = _node_asset_TECL_110
def _node_asset_SOXL_111(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_111'] = _node_asset_SOXL_111
def _node_asset_SPXL_112(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SPXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SPXL_112'] = _node_asset_SPXL_112
def _node_asset_TECL_113(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TECL': 1.0}
rt.NODE_REGISTRY['_node_asset_TECL_113'] = _node_asset_TECL_113
def _node_asset_SOXL_114(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_114'] = _node_asset_SOXL_114
def _node_filter_115(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['TECL'], 10), rt.call_node('_node_asset_TECL_113', prices)), (rt.relative_strength_index(prices['SOXL'], 10), rt.call_node('_node_asset_SOXL_114', prices))], 'bottom', int('1'))
rt.NODE_REGISTRY['_node_filter_115'] = _node_filter_115
def _node_wt_cash_equal_116(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_115', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_116'] = _node_wt_cash_equal_116
def _node_asset_SQQQ_117(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_117'] = _node_asset_SQQQ_117
def _node_asset_TLT_118(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TLT': 1.0}
rt.NODE_REGISTRY['_node_asset_TLT_118'] = _node_asset_TLT_118
def _node_filter_119(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['SQQQ'], 10), rt.call_node('_node_asset_SQQQ_117', prices)), (rt.relative_strength_index(prices['TLT'], 10), rt.call_node('_node_asset_TLT_118', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_119'] = _node_filter_119
def _node_wt_cash_equal_120(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_119', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_120'] = _node_wt_cash_equal_120
def _node_if_121(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLK'], 10) > rt.relative_strength_index(prices['KMLM'], 10):
return rt.call_node('_node_wt_cash_equal_116', prices)
else:
return rt.call_node('_node_wt_cash_equal_120', prices)
rt.NODE_REGISTRY['_node_if_121'] = _node_if_121
def _node_wt_cash_equal_122(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_121', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_122'] = _node_wt_cash_equal_122
def _node_wt_cash_equal_123(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_122', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_123'] = _node_wt_cash_equal_123
def _node_wt_cash_equal_124(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_123', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_124'] = _node_wt_cash_equal_124
def _node_if_125(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPXL'], 10) < 30.0:
return rt.call_node('_node_asset_SPXL_112', prices)
else:
return rt.call_node('_node_wt_cash_equal_124', prices)
rt.NODE_REGISTRY['_node_if_125'] = _node_if_125
def _node_wt_cash_equal_126(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_125', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_126'] = _node_wt_cash_equal_126
def _node_if_127(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SOXL'], 10) < 30.0:
return rt.call_node('_node_asset_SOXL_111', prices)
else:
return rt.call_node('_node_wt_cash_equal_126', prices)
rt.NODE_REGISTRY['_node_if_127'] = _node_if_127
def _node_wt_cash_equal_128(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_127', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_128'] = _node_wt_cash_equal_128
def _node_if_129(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) < 30.0:
return rt.call_node('_node_asset_TECL_110', prices)
else:
return rt.call_node('_node_wt_cash_equal_128', prices)
rt.NODE_REGISTRY['_node_if_129'] = _node_if_129
def _node_wt_cash_equal_130(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_129', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_130'] = _node_wt_cash_equal_130
def _node_wt_cash_equal_131(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_130', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_131'] = _node_wt_cash_equal_131
def _node_if_132(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 21) > 65.0:
return rt.call_node('_node_wt_cash_equal_109', prices)
else:
return rt.call_node('_node_wt_cash_equal_131', prices)
rt.NODE_REGISTRY['_node_if_132'] = _node_if_132
def _node_wt_cash_equal_133(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_132', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_133'] = _node_wt_cash_equal_133
def _node_wt_cash_equal_134(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_133', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_134'] = _node_wt_cash_equal_134
def _node_if_135(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_104', prices)
else:
return rt.call_node('_node_wt_cash_equal_134', prices)
rt.NODE_REGISTRY['_node_if_135'] = _node_if_135
def _node_wt_cash_equal_136(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_135', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_136'] = _node_wt_cash_equal_136
def _node_if_137(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['FAS'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_103', prices)
else:
return rt.call_node('_node_wt_cash_equal_136', prices)
rt.NODE_REGISTRY['_node_if_137'] = _node_if_137
def _node_wt_cash_equal_138(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_137', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_138'] = _node_wt_cash_equal_138
def _node_if_139(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLY'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_102', prices)
else:
return rt.call_node('_node_wt_cash_equal_138', prices)
rt.NODE_REGISTRY['_node_if_139'] = _node_if_139
def _node_wt_cash_equal_140(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_139', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_140'] = _node_wt_cash_equal_140
def _node_if_141(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_101', prices)
else:
return rt.call_node('_node_wt_cash_equal_140', prices)
rt.NODE_REGISTRY['_node_if_141'] = _node_if_141
def _node_wt_cash_equal_142(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_141', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_142'] = _node_wt_cash_equal_142
def _node_if_143(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLP'], 10) > 75.0:
return rt.call_node('_node_asset_UVXY_99', prices)
else:
return rt.call_node('_node_wt_cash_equal_142', prices)
rt.NODE_REGISTRY['_node_if_143'] = _node_if_143
def _node_wt_cash_equal_144(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_143', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_144'] = _node_wt_cash_equal_144
def _node_if_145(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VOOV'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_98', prices)
else:
return rt.call_node('_node_wt_cash_equal_144', prices)
rt.NODE_REGISTRY['_node_if_145'] = _node_if_145
def _node_wt_cash_equal_146(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_145', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_146'] = _node_wt_cash_equal_146
def _node_if_147(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VOOG'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_97', prices)
else:
return rt.call_node('_node_wt_cash_equal_146', prices)
rt.NODE_REGISTRY['_node_if_147'] = _node_if_147
def _node_wt_cash_equal_148(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_147', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_148'] = _node_wt_cash_equal_148
def _node_if_149(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TECL'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_96', prices)
else:
return rt.call_node('_node_wt_cash_equal_148', prices)
rt.NODE_REGISTRY['_node_if_149'] = _node_if_149
def _node_wt_cash_equal_150(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_149', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_150'] = _node_wt_cash_equal_150
def _node_if_151(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VOX'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_95', prices)
else:
return rt.call_node('_node_wt_cash_equal_150', prices)
rt.NODE_REGISTRY['_node_if_151'] = _node_if_151
def _node_wt_cash_equal_152(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_151', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_152'] = _node_wt_cash_equal_152
def _node_if_153(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VTV'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_94', prices)
else:
return rt.call_node('_node_wt_cash_equal_152', prices)
rt.NODE_REGISTRY['_node_if_153'] = _node_if_153
def _node_wt_cash_equal_154(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_153', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_154'] = _node_wt_cash_equal_154
def _node_if_155(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQE'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_93', prices)
else:
return rt.call_node('_node_wt_cash_equal_154', prices)
rt.NODE_REGISTRY['_node_if_155'] = _node_if_155
def _node_wt_cash_equal_156(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_155', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_156'] = _node_wt_cash_equal_156
def _node_wt_cash_equal_157(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_156', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_157'] = _node_wt_cash_equal_157
def _node_asset_GDXD_158(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GDXD': 1.0}
rt.NODE_REGISTRY['_node_asset_GDXD_158'] = _node_asset_GDXD_158
def _node_asset_UGL_159(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UGL': 1.0}
rt.NODE_REGISTRY['_node_asset_UGL_159'] = _node_asset_UGL_159
def _node_asset_UGL_160(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UGL': 1.0}
rt.NODE_REGISTRY['_node_asset_UGL_160'] = _node_asset_UGL_160
def _node_asset_BIL_161(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_161'] = _node_asset_BIL_161
def _node_if_162(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['UGL'], 70) < rt.cumulative_return(prices['UGL'], 75):
return rt.call_node('_node_asset_UGL_160', prices)
else:
return rt.call_node('_node_asset_BIL_161', prices)
rt.NODE_REGISTRY['_node_if_162'] = _node_if_162
def _node_wt_cash_equal_163(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_162', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_163'] = _node_wt_cash_equal_163
def _node_asset_GDXD_164(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GDXD': 1.0}
rt.NODE_REGISTRY['_node_asset_GDXD_164'] = _node_asset_GDXD_164
def _node_asset_BIL_165(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_165'] = _node_asset_BIL_165
def _node_if_166(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['TLT'], 95) < rt.cumulative_return(prices['QQQ'], 35):
return rt.call_node('_node_asset_GDXD_164', prices)
else:
return rt.call_node('_node_asset_BIL_165', prices)
rt.NODE_REGISTRY['_node_if_166'] = _node_if_166
def _node_wt_cash_equal_167(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_166', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_167'] = _node_wt_cash_equal_167
def _node_if_168(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['QQQ'], 90) > rt.cumulative_return(prices['QQQ'], 70):
return rt.call_node('_node_wt_cash_equal_163', prices)
else:
return rt.call_node('_node_wt_cash_equal_167', prices)
rt.NODE_REGISTRY['_node_if_168'] = _node_if_168
def _node_wt_cash_equal_169(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_168', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_169'] = _node_wt_cash_equal_169
def _node_if_170(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UGL'], 10) < 30.0:
return rt.call_node('_node_asset_UGL_159', prices)
else:
return rt.call_node('_node_wt_cash_equal_169', prices)
rt.NODE_REGISTRY['_node_if_170'] = _node_if_170
def _node_wt_cash_equal_171(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_170', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_171'] = _node_wt_cash_equal_171
def _node_if_172(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UGL'], 10) > 79.0:
return rt.call_node('_node_asset_GDXD_158', prices)
else:
return rt.call_node('_node_wt_cash_equal_171', prices)
rt.NODE_REGISTRY['_node_if_172'] = _node_if_172
def _node_wt_cash_equal_173(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_172', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_173'] = _node_wt_cash_equal_173
def _node_asset_SOXL_174(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_174'] = _node_asset_SOXL_174
def _node_asset_SOXL_175(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_175'] = _node_asset_SOXL_175
def _node_asset_SOXL_176(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_176'] = _node_asset_SOXL_176
def _node_asset_SOXL_177(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_177'] = _node_asset_SOXL_177
def _node_asset_SOXL_178(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_178'] = _node_asset_SOXL_178
def _node_asset_UVXY_179(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_179'] = _node_asset_UVXY_179
def _node_asset_UVXY_180(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_180'] = _node_asset_UVXY_180
def _node_wt_cash_equal_181(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_UVXY_180', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_181'] = _node_wt_cash_equal_181
def _node_asset_UVXY_182(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_182'] = _node_asset_UVXY_182
def _node_asset_UVXY_183(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_183'] = _node_asset_UVXY_183
def _node_asset_UVXY_184(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_184'] = _node_asset_UVXY_184
def _node_asset_UVXY_185(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_185'] = _node_asset_UVXY_185
def _node_asset_UVXY_186(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_186'] = _node_asset_UVXY_186
def _node_asset_UVXY_187(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_187'] = _node_asset_UVXY_187
def _node_asset_VIXY_188(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'VIXY': 1.0}
rt.NODE_REGISTRY['_node_asset_VIXY_188'] = _node_asset_VIXY_188
def _node_asset_VIXY_189(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'VIXY': 1.0}
rt.NODE_REGISTRY['_node_asset_VIXY_189'] = _node_asset_VIXY_189
def _node_asset_VIXY_190(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'VIXY': 1.0}
rt.NODE_REGISTRY['_node_asset_VIXY_190'] = _node_asset_VIXY_190
def _node_asset_SOXL_191(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_191'] = _node_asset_SOXL_191
def _node_asset_UVXY_192(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_192'] = _node_asset_UVXY_192
def _node_asset_TMF_193(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TMF': 1.0}
rt.NODE_REGISTRY['_node_asset_TMF_193'] = _node_asset_TMF_193
def _node_asset_SOXL_194(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_194'] = _node_asset_SOXL_194
def _node_wt_cash_equal_195(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_194', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_195'] = _node_wt_cash_equal_195
def _node_asset_SOXL_196(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_196'] = _node_asset_SOXL_196
def _node_wt_cash_equal_197(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_196', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_197'] = _node_wt_cash_equal_197
def _node_asset_SOXL_198(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_198'] = _node_asset_SOXL_198
def _node_wt_cash_equal_199(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_198', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_199'] = _node_wt_cash_equal_199
def _node_asset_SOXL_200(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_200'] = _node_asset_SOXL_200
def _node_wt_cash_equal_201(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_200', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_201'] = _node_wt_cash_equal_201
def _node_asset_UPRO_202(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UPRO': 1.0}
rt.NODE_REGISTRY['_node_asset_UPRO_202'] = _node_asset_UPRO_202
def _node_asset_TQQQ_203(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_203'] = _node_asset_TQQQ_203
def _node_wt_cash_specified_204(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('80') / float(100)), rt.call_node('_node_asset_UPRO_202', prices)), ((float(20) / float(100)), rt.call_node('_node_asset_TQQQ_203', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_204'] = _node_wt_cash_specified_204
def _node_if_205(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) < 31.0:
return rt.call_node('_node_wt_cash_equal_201', prices)
else:
return rt.call_node('_node_wt_cash_specified_204', prices)
rt.NODE_REGISTRY['_node_if_205'] = _node_if_205
def _node_wt_cash_equal_206(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_205', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_206'] = _node_wt_cash_equal_206
def _node_if_207(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) < 31.0:
return rt.call_node('_node_wt_cash_equal_199', prices)
else:
return rt.call_node('_node_wt_cash_equal_206', prices)
rt.NODE_REGISTRY['_node_if_207'] = _node_if_207
def _node_wt_cash_equal_208(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_207', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_208'] = _node_wt_cash_equal_208
def _node_if_209(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 99.0:
return rt.call_node('_node_wt_cash_equal_197', prices)
else:
return rt.call_node('_node_wt_cash_equal_208', prices)
rt.NODE_REGISTRY['_node_if_209'] = _node_if_209
def _node_wt_cash_equal_210(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_209', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_210'] = _node_wt_cash_equal_210
def _node_if_211(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) > 56.0:
return rt.call_node('_node_wt_cash_equal_195', prices)
else:
return rt.call_node('_node_wt_cash_equal_210', prices)
rt.NODE_REGISTRY['_node_if_211'] = _node_if_211
def _node_wt_cash_equal_212(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_211', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_212'] = _node_wt_cash_equal_212
def _node_if_213(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -16.0:
return rt.call_node('_node_asset_TMF_193', prices)
else:
return rt.call_node('_node_wt_cash_equal_212', prices)
rt.NODE_REGISTRY['_node_if_213'] = _node_if_213
def _node_wt_cash_equal_214(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_213', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_214'] = _node_wt_cash_equal_214
def _node_if_215(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -20.0:
return rt.call_node('_node_asset_UVXY_192', prices)
else:
return rt.call_node('_node_wt_cash_equal_214', prices)
rt.NODE_REGISTRY['_node_if_215'] = _node_if_215
def _node_wt_cash_equal_216(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_215', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_216'] = _node_wt_cash_equal_216
def _node_if_217(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -25.0:
return rt.call_node('_node_asset_SOXL_191', prices)
else:
return rt.call_node('_node_wt_cash_equal_216', prices)
rt.NODE_REGISTRY['_node_if_217'] = _node_if_217
def _node_wt_cash_equal_218(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_217', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_218'] = _node_wt_cash_equal_218
def _node_if_219(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 200) > 57.0:
return rt.call_node('_node_asset_VIXY_190', prices)
else:
return rt.call_node('_node_wt_cash_equal_218', prices)
rt.NODE_REGISTRY['_node_if_219'] = _node_if_219
def _node_wt_cash_equal_220(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_219', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_220'] = _node_wt_cash_equal_220
def _node_wt_cash_equal_221(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_220', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_221'] = _node_wt_cash_equal_221
def _node_if_222(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 60) > 63.0:
return rt.call_node('_node_asset_VIXY_189', prices)
else:
return rt.call_node('_node_wt_cash_equal_221', prices)
rt.NODE_REGISTRY['_node_if_222'] = _node_if_222
def _node_wt_cash_equal_223(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_222', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_223'] = _node_wt_cash_equal_223
def _node_if_224(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 14) > 99.0:
return rt.call_node('_node_asset_VIXY_188', prices)
else:
return rt.call_node('_node_wt_cash_equal_223', prices)
rt.NODE_REGISTRY['_node_if_224'] = _node_if_224
def _node_wt_cash_equal_225(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_224', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_225'] = _node_wt_cash_equal_225
def _node_if_226(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 60) > 67.0:
return rt.call_node('_node_asset_UVXY_187', prices)
else:
return rt.call_node('_node_wt_cash_equal_225', prices)
rt.NODE_REGISTRY['_node_if_226'] = _node_if_226
def _node_wt_cash_equal_227(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_226', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_227'] = _node_wt_cash_equal_227
def _node_if_228(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 60) > 68.0:
return rt.call_node('_node_asset_UVXY_186', prices)
else:
return rt.call_node('_node_wt_cash_equal_227', prices)
rt.NODE_REGISTRY['_node_if_228'] = _node_if_228
def _node_wt_cash_equal_229(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_228', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_229'] = _node_wt_cash_equal_229
def _node_if_230(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 6) > 86.0:
return rt.call_node('_node_asset_UVXY_185', prices)
else:
return rt.call_node('_node_wt_cash_equal_229', prices)
rt.NODE_REGISTRY['_node_if_230'] = _node_if_230
def _node_wt_cash_equal_231(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_230', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_231'] = _node_wt_cash_equal_231
def _node_if_232(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 5) > 92.0:
return rt.call_node('_node_asset_UVXY_184', prices)
else:
return rt.call_node('_node_wt_cash_equal_231', prices)
rt.NODE_REGISTRY['_node_if_232'] = _node_if_232
def _node_wt_cash_equal_233(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_232', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_233'] = _node_wt_cash_equal_233
def _node_if_234(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 5) > 88.0:
return rt.call_node('_node_asset_UVXY_183', prices)
else:
return rt.call_node('_node_wt_cash_equal_233', prices)
rt.NODE_REGISTRY['_node_if_234'] = _node_if_234
def _node_wt_cash_equal_235(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_234', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_235'] = _node_wt_cash_equal_235
def _node_if_236(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_182', prices)
else:
return rt.call_node('_node_wt_cash_equal_235', prices)
rt.NODE_REGISTRY['_node_if_236'] = _node_if_236
def _node_wt_cash_equal_237(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_236', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_237'] = _node_wt_cash_equal_237
# region imports
from AlgorithmImports import *
# endregion
from typing import Dict, Sequence
import strategy_runtime as rt
def _node_if_238(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_181', prices)
else:
return rt.call_node('_node_wt_cash_equal_237', prices)
rt.NODE_REGISTRY['_node_if_238'] = _node_if_238
def _node_wt_cash_equal_239(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_238', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_239'] = _node_wt_cash_equal_239
def _node_if_240(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLP'], 10) > 77.0:
return rt.call_node('_node_asset_UVXY_179', prices)
else:
return rt.call_node('_node_wt_cash_equal_239', prices)
rt.NODE_REGISTRY['_node_if_240'] = _node_if_240
def _node_wt_cash_specified_241(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float(100) / float(100)), rt.call_node('_node_if_240', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_241'] = _node_wt_cash_specified_241
def _node_if_242(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 10) > 84.0:
return rt.call_node('_node_asset_SOXL_178', prices)
else:
return rt.call_node('_node_wt_cash_specified_241', prices)
rt.NODE_REGISTRY['_node_if_242'] = _node_if_242
def _node_wt_cash_equal_243(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_242', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_243'] = _node_wt_cash_equal_243
def _node_asset_SOXL_244(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_244'] = _node_asset_SOXL_244
def _node_asset_UVXY_245(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_245'] = _node_asset_UVXY_245
def _node_asset_UVXY_246(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_246'] = _node_asset_UVXY_246
def _node_asset_UVXY_247(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_247'] = _node_asset_UVXY_247
def _node_asset_UVXY_248(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_248'] = _node_asset_UVXY_248
def _node_asset_UVXY_249(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_249'] = _node_asset_UVXY_249
def _node_asset_UVXY_250(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_250'] = _node_asset_UVXY_250
def _node_asset_UVXY_251(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_251'] = _node_asset_UVXY_251
def _node_asset_SOXL_252(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_252'] = _node_asset_SOXL_252
def _node_wt_cash_equal_253(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_252', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_253'] = _node_wt_cash_equal_253
def _node_asset_UVXY_254(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_254'] = _node_asset_UVXY_254
def _node_asset_SOXL_255(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_255'] = _node_asset_SOXL_255
def _node_if_256(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 10) < 84.0:
return rt.call_node('_node_asset_UVXY_254', prices)
else:
return rt.call_node('_node_asset_SOXL_255', prices)
rt.NODE_REGISTRY['_node_if_256'] = _node_if_256
def _node_wt_cash_equal_257(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_256', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_257'] = _node_wt_cash_equal_257
def _node_asset_SOXL_258(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_258'] = _node_asset_SOXL_258
def _node_wt_cash_equal_259(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_258', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_259'] = _node_wt_cash_equal_259
def _node_asset_SOXL_260(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_260'] = _node_asset_SOXL_260
def _node_wt_cash_equal_261(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_260', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_261'] = _node_wt_cash_equal_261
def _node_asset_SQQQ_262(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_262'] = _node_asset_SQQQ_262
def _node_wt_cash_equal_263(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SQQQ_262', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_263'] = _node_wt_cash_equal_263
def _node_asset_SOXL_264(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_264'] = _node_asset_SOXL_264
def _node_wt_cash_equal_265(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_264', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_265'] = _node_wt_cash_equal_265
def _node_if_266(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['PSQ'], 10) < 33.0:
return rt.call_node('_node_wt_cash_equal_263', prices)
else:
return rt.call_node('_node_wt_cash_equal_265', prices)
rt.NODE_REGISTRY['_node_if_266'] = _node_if_266
def _node_wt_cash_equal_267(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_266', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_267'] = _node_wt_cash_equal_267
def _node_asset_SOXL_268(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_268'] = _node_asset_SOXL_268
def _node_wt_cash_equal_269(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_268', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_269'] = _node_wt_cash_equal_269
def _node_asset_SOXL_270(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_270'] = _node_asset_SOXL_270
def _node_wt_cash_equal_271(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_270', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_271'] = _node_wt_cash_equal_271
def _node_asset_SOXL_272(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_272'] = _node_asset_SOXL_272
def _node_wt_cash_equal_273(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_272', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_273'] = _node_wt_cash_equal_273
def _node_asset_GLD_274(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GLD': 1.0}
rt.NODE_REGISTRY['_node_asset_GLD_274'] = _node_asset_GLD_274
def _node_if_275(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) > rt.relative_strength_index(prices['TLT'], 10):
return rt.call_node('_node_wt_cash_equal_273', prices)
else:
return rt.call_node('_node_asset_GLD_274', prices)
rt.NODE_REGISTRY['_node_if_275'] = _node_if_275
def _node_wt_cash_equal_276(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_275', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_276'] = _node_wt_cash_equal_276
def _node_asset_SQQQ_277(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_277'] = _node_asset_SQQQ_277
def _node_filter_278(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['SQQQ'], 10), rt.call_node('_node_asset_SQQQ_277', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_278'] = _node_filter_278
def _node_wt_cash_equal_279(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_278', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_279'] = _node_wt_cash_equal_279
def _node_asset_TMF_280(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TMF': 1.0}
rt.NODE_REGISTRY['_node_asset_TMF_280'] = _node_asset_TMF_280
def _node_asset_TQQQ_281(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_281'] = _node_asset_TQQQ_281
def _node_wt_cash_equal_282(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_TQQQ_281', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_282'] = _node_wt_cash_equal_282
def _node_if_283(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['TLT']) > rt.moving_average_price(prices['TLT'], 200):
return rt.call_node('_node_asset_TMF_280', prices)
else:
return rt.call_node('_node_wt_cash_equal_282', prices)
rt.NODE_REGISTRY['_node_if_283'] = _node_if_283
def _node_wt_cash_equal_284(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_283', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_284'] = _node_wt_cash_equal_284
def _node_if_285(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['PSQ'], 10) > rt.relative_strength_index(prices['TLT'], 10):
return rt.call_node('_node_wt_cash_equal_279', prices)
else:
return rt.call_node('_node_wt_cash_equal_284', prices)
rt.NODE_REGISTRY['_node_if_285'] = _node_if_285
def _node_wt_cash_equal_286(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_285', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_286'] = _node_wt_cash_equal_286
def _node_if_287(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['PSQ'], 10) > 65.0:
return rt.call_node('_node_wt_cash_equal_276', prices)
else:
return rt.call_node('_node_wt_cash_equal_286', prices)
rt.NODE_REGISTRY['_node_if_287'] = _node_if_287
def _node_wt_cash_equal_288(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_287', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_288'] = _node_wt_cash_equal_288
def _node_wt_cash_equal_289(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_288', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_289'] = _node_wt_cash_equal_289
def _node_if_290(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 30):
return rt.call_node('_node_wt_cash_equal_271', prices)
else:
return rt.call_node('_node_wt_cash_equal_289', prices)
rt.NODE_REGISTRY['_node_if_290'] = _node_if_290
def _node_wt_cash_equal_291(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_290', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_291'] = _node_wt_cash_equal_291
def _node_if_292(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) < 31.0:
return rt.call_node('_node_wt_cash_equal_269', prices)
else:
return rt.call_node('_node_wt_cash_equal_291', prices)
rt.NODE_REGISTRY['_node_if_292'] = _node_if_292
def _node_wt_cash_equal_293(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_292', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_293'] = _node_wt_cash_equal_293
def _node_if_294(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['QQQ']) > rt.moving_average_price(prices['QQQ'], 20):
return rt.call_node('_node_wt_cash_equal_267', prices)
else:
return rt.call_node('_node_wt_cash_equal_293', prices)
rt.NODE_REGISTRY['_node_if_294'] = _node_if_294
def _node_wt_cash_equal_295(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_294', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_295'] = _node_wt_cash_equal_295
def _node_if_296(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) < 30.0:
return rt.call_node('_node_wt_cash_equal_261', prices)
else:
return rt.call_node('_node_wt_cash_equal_295', prices)
rt.NODE_REGISTRY['_node_if_296'] = _node_if_296
def _node_wt_cash_equal_297(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_296', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_297'] = _node_wt_cash_equal_297
def _node_if_298(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) < 28.0:
return rt.call_node('_node_wt_cash_equal_259', prices)
else:
return rt.call_node('_node_wt_cash_equal_297', prices)
rt.NODE_REGISTRY['_node_if_298'] = _node_if_298
def _node_wt_cash_equal_299(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_298', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_299'] = _node_wt_cash_equal_299
def _node_if_300(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 10) > 74.0:
return rt.call_node('_node_wt_cash_equal_257', prices)
else:
return rt.call_node('_node_wt_cash_equal_299', prices)
rt.NODE_REGISTRY['_node_if_300'] = _node_if_300
def _node_wt_cash_equal_301(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_300', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_301'] = _node_wt_cash_equal_301
def _node_if_302(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) < 18.0:
return rt.call_node('_node_wt_cash_equal_253', prices)
else:
return rt.call_node('_node_wt_cash_equal_301', prices)
rt.NODE_REGISTRY['_node_if_302'] = _node_if_302
def _node_wt_cash_equal_303(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_302', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_303'] = _node_wt_cash_equal_303
def _node_if_304(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -24.0:
return rt.call_node('_node_asset_UVXY_251', prices)
else:
return rt.call_node('_node_wt_cash_equal_303', prices)
rt.NODE_REGISTRY['_node_if_304'] = _node_if_304
def _node_wt_cash_equal_305(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_304', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_305'] = _node_wt_cash_equal_305
def _node_if_306(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 60) > 52.0:
return rt.call_node('_node_asset_UVXY_250', prices)
else:
return rt.call_node('_node_wt_cash_equal_305', prices)
rt.NODE_REGISTRY['_node_if_306'] = _node_if_306
def _node_wt_cash_equal_307(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_306', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_307'] = _node_wt_cash_equal_307
def _node_if_308(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 60) > 55.0:
return rt.call_node('_node_asset_UVXY_249', prices)
else:
return rt.call_node('_node_wt_cash_equal_307', prices)
rt.NODE_REGISTRY['_node_if_308'] = _node_if_308
def _node_wt_cash_equal_309(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_308', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_309'] = _node_wt_cash_equal_309
def _node_if_310(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 6) > 78.0:
return rt.call_node('_node_asset_UVXY_248', prices)
else:
return rt.call_node('_node_wt_cash_equal_309', prices)
rt.NODE_REGISTRY['_node_if_310'] = _node_if_310
def _node_wt_cash_equal_311(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_310', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_311'] = _node_wt_cash_equal_311
def _node_if_312(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) > 77.0:
return rt.call_node('_node_asset_UVXY_247', prices)
else:
return rt.call_node('_node_wt_cash_equal_311', prices)
rt.NODE_REGISTRY['_node_if_312'] = _node_if_312
def _node_wt_cash_equal_313(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_312', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_313'] = _node_wt_cash_equal_313
def _node_if_314(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 72.0:
return rt.call_node('_node_asset_UVXY_246', prices)
else:
return rt.call_node('_node_wt_cash_equal_313', prices)
rt.NODE_REGISTRY['_node_if_314'] = _node_if_314
def _node_wt_cash_equal_315(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_314', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_315'] = _node_wt_cash_equal_315
def _node_if_316(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLP'], 10) > 76.0:
return rt.call_node('_node_asset_UVXY_245', prices)
else:
return rt.call_node('_node_wt_cash_equal_315', prices)
rt.NODE_REGISTRY['_node_if_316'] = _node_if_316
def _node_wt_cash_equal_317(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_316', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_317'] = _node_wt_cash_equal_317
def _node_if_318(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 10) > 84.0:
return rt.call_node('_node_asset_SOXL_244', prices)
else:
return rt.call_node('_node_wt_cash_equal_317', prices)
rt.NODE_REGISTRY['_node_if_318'] = _node_if_318
def _node_wt_cash_equal_319(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_318', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_319'] = _node_wt_cash_equal_319
def _node_if_320(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 200):
return rt.call_node('_node_wt_cash_equal_243', prices)
else:
return rt.call_node('_node_wt_cash_equal_319', prices)
rt.NODE_REGISTRY['_node_if_320'] = _node_if_320
def _node_wt_cash_equal_321(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_320', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_321'] = _node_wt_cash_equal_321
def _node_if_322(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 5) < -57.0:
return rt.call_node('_node_asset_SOXL_177', prices)
else:
return rt.call_node('_node_wt_cash_equal_321', prices)
rt.NODE_REGISTRY['_node_if_322'] = _node_if_322
def _node_wt_cash_equal_323(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_322', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_323'] = _node_wt_cash_equal_323
def _node_if_324(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 2) < -37.0:
return rt.call_node('_node_asset_SOXL_176', prices)
else:
return rt.call_node('_node_wt_cash_equal_323', prices)
rt.NODE_REGISTRY['_node_if_324'] = _node_if_324
def _node_wt_cash_equal_325(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_324', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_325'] = _node_wt_cash_equal_325
def _node_if_326(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -31.0:
return rt.call_node('_node_asset_SOXL_175', prices)
else:
return rt.call_node('_node_wt_cash_equal_325', prices)
rt.NODE_REGISTRY['_node_if_326'] = _node_if_326
def _node_wt_cash_equal_327(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_326', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_327'] = _node_wt_cash_equal_327
def _node_if_328(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['QQQ'], 10) < -2.4:
return rt.call_node('_node_asset_SOXL_174', prices)
else:
return rt.call_node('_node_wt_cash_equal_327', prices)
rt.NODE_REGISTRY['_node_if_328'] = _node_if_328
def _node_wt_cash_equal_329(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_328', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_329'] = _node_wt_cash_equal_329
def _node_wt_cash_equal_330(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_329', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_330'] = _node_wt_cash_equal_330
def _node_wt_cash_equal_331(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_27', prices), rt.call_node('_node_wt_cash_equal_92', prices), rt.call_node('_node_wt_cash_equal_157', prices), rt.call_node('_node_wt_cash_equal_173', prices), rt.call_node('_node_wt_cash_equal_330', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_331'] = _node_wt_cash_equal_331
def _node_asset_GDXD_332(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GDXD': 1.0}
rt.NODE_REGISTRY['_node_asset_GDXD_332'] = _node_asset_GDXD_332
def _node_asset_GDXU_333(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GDXU': 1.0}
rt.NODE_REGISTRY['_node_asset_GDXU_333'] = _node_asset_GDXU_333
def _node_asset_GDXU_334(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GDXU': 1.0}
rt.NODE_REGISTRY['_node_asset_GDXU_334'] = _node_asset_GDXU_334
def _node_asset_UVXY_335(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_335'] = _node_asset_UVXY_335
def _node_asset_UVXY_336(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_336'] = _node_asset_UVXY_336
def _node_asset_UVXY_337(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_337'] = _node_asset_UVXY_337
def _node_asset_UVXY_338(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_338'] = _node_asset_UVXY_338
def _node_asset_UVXY_339(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_339'] = _node_asset_UVXY_339
def _node_asset_UVXY_340(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_340'] = _node_asset_UVXY_340
def _node_asset_UVXY_341(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_341'] = _node_asset_UVXY_341
def _node_asset_UVXY_342(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_342'] = _node_asset_UVXY_342
def _node_asset_BIL_343(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_343'] = _node_asset_BIL_343
def _node_asset_BTAL_344(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BTAL': 1.0}
rt.NODE_REGISTRY['_node_asset_BTAL_344'] = _node_asset_BTAL_344
def _node_wt_cash_equal_345(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_343', prices), rt.call_node('_node_asset_BTAL_344', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_345'] = _node_wt_cash_equal_345
def _node_wt_cash_specified_346(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('75') / float(100)), rt.call_node('_node_asset_UVXY_342', prices)), ((float('25') / float(100)), rt.call_node('_node_wt_cash_equal_345', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_346'] = _node_wt_cash_specified_346
def _node_if_347(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLF'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_341', prices)
else:
return rt.call_node('_node_wt_cash_specified_346', prices)
rt.NODE_REGISTRY['_node_if_347'] = _node_if_347
def _node_wt_cash_equal_348(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_347', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_348'] = _node_wt_cash_equal_348
def _node_if_349(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VTV'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_340', prices)
else:
return rt.call_node('_node_wt_cash_equal_348', prices)
rt.NODE_REGISTRY['_node_if_349'] = _node_if_349
def _node_wt_cash_equal_350(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_349', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_350'] = _node_wt_cash_equal_350
def _node_if_351(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_339', prices)
else:
return rt.call_node('_node_wt_cash_equal_350', prices)
rt.NODE_REGISTRY['_node_if_351'] = _node_if_351
def _node_wt_cash_equal_352(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_351', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_352'] = _node_wt_cash_equal_352
def _node_if_353(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IOO'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_338', prices)
else:
return rt.call_node('_node_wt_cash_equal_352', prices)
rt.NODE_REGISTRY['_node_if_353'] = _node_if_353
def _node_wt_cash_equal_354(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_353', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_354'] = _node_wt_cash_equal_354
def _node_if_355(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_337', prices)
else:
return rt.call_node('_node_wt_cash_equal_354', prices)
rt.NODE_REGISTRY['_node_if_355'] = _node_if_355
def _node_wt_cash_equal_356(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_355', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_356'] = _node_wt_cash_equal_356
def _node_asset_UVXY_357(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_357'] = _node_asset_UVXY_357
def _node_asset_UVXY_358(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_358'] = _node_asset_UVXY_358
def _node_asset_UVXY_359(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_359'] = _node_asset_UVXY_359
def _node_asset_UVXY_360(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_360'] = _node_asset_UVXY_360
def _node_asset_UVXY_361(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_361'] = _node_asset_UVXY_361
def _node_asset_BIL_362(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_362'] = _node_asset_BIL_362
def _node_asset_BTAL_363(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BTAL': 1.0}
rt.NODE_REGISTRY['_node_asset_BTAL_363'] = _node_asset_BTAL_363
def _node_wt_cash_equal_364(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_362', prices), rt.call_node('_node_asset_BTAL_363', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_364'] = _node_wt_cash_equal_364
def _node_wt_cash_specified_365(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('75') / float(100)), rt.call_node('_node_asset_UVXY_361', prices)), ((float('25') / float(100)), rt.call_node('_node_wt_cash_equal_364', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_365'] = _node_wt_cash_specified_365
def _node_if_366(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLF'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_360', prices)
else:
return rt.call_node('_node_wt_cash_specified_365', prices)
rt.NODE_REGISTRY['_node_if_366'] = _node_if_366
def _node_wt_cash_equal_367(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_366', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_367'] = _node_wt_cash_equal_367
def _node_if_368(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VTV'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_359', prices)
else:
return rt.call_node('_node_wt_cash_equal_367', prices)
rt.NODE_REGISTRY['_node_if_368'] = _node_if_368
def _node_wt_cash_equal_369(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_368', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_369'] = _node_wt_cash_equal_369
def _node_if_370(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_358', prices)
else:
return rt.call_node('_node_wt_cash_equal_369', prices)
rt.NODE_REGISTRY['_node_if_370'] = _node_if_370
def _node_wt_cash_equal_371(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_370', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_371'] = _node_wt_cash_equal_371
def _node_if_372(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IOO'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_357', prices)
else:
return rt.call_node('_node_wt_cash_equal_371', prices)
rt.NODE_REGISTRY['_node_if_372'] = _node_if_372
def _node_wt_cash_equal_373(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_372', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_373'] = _node_wt_cash_equal_373
def _node_asset_UVXY_374(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_374'] = _node_asset_UVXY_374
def _node_asset_UVXY_375(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_375'] = _node_asset_UVXY_375
def _node_asset_UVXY_376(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_376'] = _node_asset_UVXY_376
def _node_asset_UVXY_377(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_377'] = _node_asset_UVXY_377
def _node_asset_BIL_378(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_378'] = _node_asset_BIL_378
def _node_asset_BTAL_379(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BTAL': 1.0}
rt.NODE_REGISTRY['_node_asset_BTAL_379'] = _node_asset_BTAL_379
def _node_wt_cash_equal_380(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_378', prices), rt.call_node('_node_asset_BTAL_379', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_380'] = _node_wt_cash_equal_380
def _node_wt_cash_specified_381(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('75') / float(100)), rt.call_node('_node_asset_UVXY_377', prices)), ((float('25') / float(100)), rt.call_node('_node_wt_cash_equal_380', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_381'] = _node_wt_cash_specified_381
def _node_if_382(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLF'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_376', prices)
else:
return rt.call_node('_node_wt_cash_specified_381', prices)
rt.NODE_REGISTRY['_node_if_382'] = _node_if_382
def _node_wt_cash_equal_383(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_382', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_383'] = _node_wt_cash_equal_383
def _node_if_384(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VTV'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_375', prices)
else:
return rt.call_node('_node_wt_cash_equal_383', prices)
rt.NODE_REGISTRY['_node_if_384'] = _node_if_384
def _node_wt_cash_equal_385(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_384', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_385'] = _node_wt_cash_equal_385
def _node_if_386(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_374', prices)
else:
return rt.call_node('_node_wt_cash_equal_385', prices)
rt.NODE_REGISTRY['_node_if_386'] = _node_if_386
def _node_wt_cash_equal_387(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_386', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_387'] = _node_wt_cash_equal_387
def _node_asset_UVXY_388(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_388'] = _node_asset_UVXY_388
def _node_asset_UVXY_389(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_389'] = _node_asset_UVXY_389
def _node_asset_UVXY_390(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_390'] = _node_asset_UVXY_390
def _node_asset_BIL_391(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_391'] = _node_asset_BIL_391
def _node_asset_BTAL_392(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BTAL': 1.0}
rt.NODE_REGISTRY['_node_asset_BTAL_392'] = _node_asset_BTAL_392
def _node_wt_cash_equal_393(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_391', prices), rt.call_node('_node_asset_BTAL_392', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_393'] = _node_wt_cash_equal_393
def _node_wt_cash_specified_394(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('75') / float(100)), rt.call_node('_node_asset_UVXY_390', prices)), ((float('25') / float(100)), rt.call_node('_node_wt_cash_equal_393', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_394'] = _node_wt_cash_specified_394
def _node_if_395(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLF'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_389', prices)
else:
return rt.call_node('_node_wt_cash_specified_394', prices)
rt.NODE_REGISTRY['_node_if_395'] = _node_if_395
def _node_wt_cash_equal_396(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_395', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_396'] = _node_wt_cash_equal_396
def _node_if_397(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VTV'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_388', prices)
else:
return rt.call_node('_node_wt_cash_equal_396', prices)
rt.NODE_REGISTRY['_node_if_397'] = _node_if_397
def _node_wt_cash_equal_398(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_397', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_398'] = _node_wt_cash_equal_398
def _node_asset_UVXY_399(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_399'] = _node_asset_UVXY_399
def _node_asset_UVXY_400(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_400'] = _node_asset_UVXY_400
def _node_asset_BIL_401(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_401'] = _node_asset_BIL_401
def _node_asset_BTAL_402(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BTAL': 1.0}
rt.NODE_REGISTRY['_node_asset_BTAL_402'] = _node_asset_BTAL_402
def _node_wt_cash_equal_403(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_401', prices), rt.call_node('_node_asset_BTAL_402', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_403'] = _node_wt_cash_equal_403
def _node_wt_cash_specified_404(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('75') / float(100)), rt.call_node('_node_asset_UVXY_400', prices)), ((float('25') / float(100)), rt.call_node('_node_wt_cash_equal_403', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_404'] = _node_wt_cash_specified_404
def _node_if_405(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLF'], 10) > 81.0:
return rt.call_node('_node_asset_UVXY_399', prices)
else:
return rt.call_node('_node_wt_cash_specified_404', prices)
rt.NODE_REGISTRY['_node_if_405'] = _node_if_405
def _node_wt_cash_equal_406(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_405', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_406'] = _node_wt_cash_equal_406
def _node_asset_TQQQ_407(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_407'] = _node_asset_TQQQ_407
def _node_asset_SPXL_408(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SPXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SPXL_408'] = _node_asset_SPXL_408
def _node_asset_AAPX_409(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AAPX': 1.0}
rt.NODE_REGISTRY['_node_asset_AAPX_409'] = _node_asset_AAPX_409
def _node_asset_BIL_410(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_410'] = _node_asset_BIL_410
def _node_asset_TQQQ_411(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_411'] = _node_asset_TQQQ_411
def _node_combine_equal_412(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_410', prices), rt.call_node('_node_asset_TQQQ_411', prices)])
rt.NODE_REGISTRY['_node_combine_equal_412'] = _node_combine_equal_412
def _node_if_413(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['AAPX'], 10) > 0.0:
return rt.call_node('_node_asset_AAPX_409', prices)
else:
return rt.call_node('_node_combine_equal_412', prices)
rt.NODE_REGISTRY['_node_if_413'] = _node_if_413
def _node_wt_cash_equal_414(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_413', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_414'] = _node_wt_cash_equal_414
def _node_asset_NVDL_415(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'NVDL': 1.0}
rt.NODE_REGISTRY['_node_asset_NVDL_415'] = _node_asset_NVDL_415
def _node_asset_BIL_416(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_416'] = _node_asset_BIL_416
def _node_asset_TQQQ_417(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_417'] = _node_asset_TQQQ_417
def _node_combine_equal_418(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_416', prices), rt.call_node('_node_asset_TQQQ_417', prices)])
rt.NODE_REGISTRY['_node_combine_equal_418'] = _node_combine_equal_418
def _node_if_419(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['NVDL'], 10) > 0.0:
return rt.call_node('_node_asset_NVDL_415', prices)
else:
return rt.call_node('_node_combine_equal_418', prices)
rt.NODE_REGISTRY['_node_if_419'] = _node_if_419
def _node_wt_cash_equal_420(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_419', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_420'] = _node_wt_cash_equal_420
def _node_asset_BITX_421(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BITX': 1.0}
rt.NODE_REGISTRY['_node_asset_BITX_421'] = _node_asset_BITX_421
def _node_asset_BIL_422(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_422'] = _node_asset_BIL_422
def _node_asset_TQQQ_423(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_423'] = _node_asset_TQQQ_423
def _node_combine_equal_424(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_422', prices), rt.call_node('_node_asset_TQQQ_423', prices)])
rt.NODE_REGISTRY['_node_combine_equal_424'] = _node_combine_equal_424
def _node_if_425(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['BITX'], 10) > 0.0:
return rt.call_node('_node_asset_BITX_421', prices)
else:
return rt.call_node('_node_combine_equal_424', prices)
rt.NODE_REGISTRY['_node_if_425'] = _node_if_425
def _node_wt_cash_equal_426(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_425', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_426'] = _node_wt_cash_equal_426
def _node_asset_TSLR_427(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TSLR': 1.0}
rt.NODE_REGISTRY['_node_asset_TSLR_427'] = _node_asset_TSLR_427
def _node_asset_BIL_428(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_428'] = _node_asset_BIL_428
def _node_asset_TQQQ_429(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_429'] = _node_asset_TQQQ_429
def _node_combine_equal_430(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_428', prices), rt.call_node('_node_asset_TQQQ_429', prices)])
rt.NODE_REGISTRY['_node_combine_equal_430'] = _node_combine_equal_430
def _node_if_431(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['TSLA'], 10) > 0.0:
return rt.call_node('_node_asset_TSLR_427', prices)
else:
return rt.call_node('_node_combine_equal_430', prices)
rt.NODE_REGISTRY['_node_if_431'] = _node_if_431
def _node_wt_cash_equal_432(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_431', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_432'] = _node_wt_cash_equal_432
def _node_asset_FBL_433(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'FBL': 1.0}
rt.NODE_REGISTRY['_node_asset_FBL_433'] = _node_asset_FBL_433
def _node_asset_BIL_434(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_434'] = _node_asset_BIL_434
def _node_asset_TQQQ_435(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_435'] = _node_asset_TQQQ_435
def _node_combine_equal_436(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_434', prices), rt.call_node('_node_asset_TQQQ_435', prices)])
rt.NODE_REGISTRY['_node_combine_equal_436'] = _node_combine_equal_436
def _node_if_437(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['META'], 10) > 0.0:
return rt.call_node('_node_asset_FBL_433', prices)
else:
return rt.call_node('_node_combine_equal_436', prices)
rt.NODE_REGISTRY['_node_if_437'] = _node_if_437
def _node_wt_cash_equal_438(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_437', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_438'] = _node_wt_cash_equal_438
def _node_asset_GGLL_439(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GGLL': 1.0}
rt.NODE_REGISTRY['_node_asset_GGLL_439'] = _node_asset_GGLL_439
def _node_asset_BIL_440(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_440'] = _node_asset_BIL_440
def _node_asset_TQQQ_441(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_441'] = _node_asset_TQQQ_441
def _node_combine_equal_442(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_440', prices), rt.call_node('_node_asset_TQQQ_441', prices)])
rt.NODE_REGISTRY['_node_combine_equal_442'] = _node_combine_equal_442
def _node_if_443(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['GGLL'], 10) > 0.0:
return rt.call_node('_node_asset_GGLL_439', prices)
else:
return rt.call_node('_node_combine_equal_442', prices)
rt.NODE_REGISTRY['_node_if_443'] = _node_if_443
def _node_wt_cash_equal_444(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_443', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_444'] = _node_wt_cash_equal_444
def _node_asset_AMZU_445(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AMZU': 1.0}
rt.NODE_REGISTRY['_node_asset_AMZU_445'] = _node_asset_AMZU_445
def _node_asset_BIL_446(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_446'] = _node_asset_BIL_446
def _node_asset_TQQQ_447(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_447'] = _node_asset_TQQQ_447
def _node_combine_equal_448(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_446', prices), rt.call_node('_node_asset_TQQQ_447', prices)])
rt.NODE_REGISTRY['_node_combine_equal_448'] = _node_combine_equal_448
def _node_if_449(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['AMZN'], 10) > 0.0:
return rt.call_node('_node_asset_AMZU_445', prices)
else:
return rt.call_node('_node_combine_equal_448', prices)
rt.NODE_REGISTRY['_node_if_449'] = _node_if_449
def _node_wt_cash_equal_450(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_449', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_450'] = _node_wt_cash_equal_450
def _node_asset_RGTI_451(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'RGTI': 1.0}
rt.NODE_REGISTRY['_node_asset_RGTI_451'] = _node_asset_RGTI_451
def _node_asset_BIL_452(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_452'] = _node_asset_BIL_452
def _node_asset_TQQQ_453(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_453'] = _node_asset_TQQQ_453
def _node_combine_equal_454(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_452', prices), rt.call_node('_node_asset_TQQQ_453', prices)])
rt.NODE_REGISTRY['_node_combine_equal_454'] = _node_combine_equal_454
def _node_if_455(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['RGTI'], 10) > 0.0:
return rt.call_node('_node_asset_RGTI_451', prices)
else:
return rt.call_node('_node_combine_equal_454', prices)
rt.NODE_REGISTRY['_node_if_455'] = _node_if_455
def _node_wt_cash_equal_456(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_455', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_456'] = _node_wt_cash_equal_456
def _node_asset_PLTR_457(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PLTR': 1.0}
rt.NODE_REGISTRY['_node_asset_PLTR_457'] = _node_asset_PLTR_457
def _node_asset_BIL_458(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_458'] = _node_asset_BIL_458
def _node_asset_TQQQ_459(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_459'] = _node_asset_TQQQ_459
def _node_combine_equal_460(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_458', prices), rt.call_node('_node_asset_TQQQ_459', prices)])
rt.NODE_REGISTRY['_node_combine_equal_460'] = _node_combine_equal_460
def _node_if_461(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['PLTR'], 10) > 0.0:
return rt.call_node('_node_asset_PLTR_457', prices)
else:
return rt.call_node('_node_combine_equal_460', prices)
rt.NODE_REGISTRY['_node_if_461'] = _node_if_461
def _node_wt_cash_equal_462(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_461', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_462'] = _node_wt_cash_equal_462
def _node_asset_BABA_463(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BABA': 1.0}
rt.NODE_REGISTRY['_node_asset_BABA_463'] = _node_asset_BABA_463
def _node_asset_BIL_464(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_464'] = _node_asset_BIL_464
def _node_asset_TQQQ_465(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_465'] = _node_asset_TQQQ_465
def _node_combine_equal_466(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_464', prices), rt.call_node('_node_asset_TQQQ_465', prices)])
rt.NODE_REGISTRY['_node_combine_equal_466'] = _node_combine_equal_466
def _node_if_467(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['BABA'], 10) > 0.0:
return rt.call_node('_node_asset_BABA_463', prices)
else:
return rt.call_node('_node_combine_equal_466', prices)
rt.NODE_REGISTRY['_node_if_467'] = _node_if_467
def _node_wt_cash_equal_468(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_467', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_468'] = _node_wt_cash_equal_468
def _node_asset_CONL_469(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'CONL': 1.0}
rt.NODE_REGISTRY['_node_asset_CONL_469'] = _node_asset_CONL_469
def _node_asset_BIL_470(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_470'] = _node_asset_BIL_470
def _node_asset_TQQQ_471(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_471'] = _node_asset_TQQQ_471
def _node_combine_equal_472(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_BIL_470', prices), rt.call_node('_node_asset_TQQQ_471', prices)])
rt.NODE_REGISTRY['_node_combine_equal_472'] = _node_combine_equal_472
def _node_if_473(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['COIN'], 10) > 0.0:
return rt.call_node('_node_asset_CONL_469', prices)
else:
return rt.call_node('_node_combine_equal_472', prices)
rt.NODE_REGISTRY['_node_if_473'] = _node_if_473
def _node_wt_cash_equal_474(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_473', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_474'] = _node_wt_cash_equal_474
# region imports
from AlgorithmImports import *
# endregion
from typing import Dict, Sequence
import strategy_runtime as rt
def _node_filter_475(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_414', prices), prices), 20), rt.call_node('_node_wt_cash_equal_414', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_420', prices), prices), 20), rt.call_node('_node_wt_cash_equal_420', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_426', prices), prices), 20), rt.call_node('_node_wt_cash_equal_426', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_432', prices), prices), 20), rt.call_node('_node_wt_cash_equal_432', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_438', prices), prices), 20), rt.call_node('_node_wt_cash_equal_438', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_444', prices), prices), 20), rt.call_node('_node_wt_cash_equal_444', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_450', prices), prices), 20), rt.call_node('_node_wt_cash_equal_450', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_456', prices), prices), 20), rt.call_node('_node_wt_cash_equal_456', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_462', prices), prices), 20), rt.call_node('_node_wt_cash_equal_462', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_468', prices), prices), 20), rt.call_node('_node_wt_cash_equal_468', prices)), (rt.standard_deviation_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_474', prices), prices), 20), rt.call_node('_node_wt_cash_equal_474', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_475'] = _node_filter_475
def _node_wt_cash_equal_476(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_475', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_476'] = _node_wt_cash_equal_476
def _node_asset_AAPX_477(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AAPX': 1.0}
rt.NODE_REGISTRY['_node_asset_AAPX_477'] = _node_asset_AAPX_477
def _node_asset_NVDL_478(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'NVDL': 1.0}
rt.NODE_REGISTRY['_node_asset_NVDL_478'] = _node_asset_NVDL_478
def _node_asset_BITX_479(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BITX': 1.0}
rt.NODE_REGISTRY['_node_asset_BITX_479'] = _node_asset_BITX_479
def _node_asset_TSLR_480(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TSLR': 1.0}
rt.NODE_REGISTRY['_node_asset_TSLR_480'] = _node_asset_TSLR_480
def _node_asset_FBL_481(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'FBL': 1.0}
rt.NODE_REGISTRY['_node_asset_FBL_481'] = _node_asset_FBL_481
def _node_asset_GGLL_482(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GGLL': 1.0}
rt.NODE_REGISTRY['_node_asset_GGLL_482'] = _node_asset_GGLL_482
def _node_asset_AMZZ_483(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AMZZ': 1.0}
rt.NODE_REGISTRY['_node_asset_AMZZ_483'] = _node_asset_AMZZ_483
def _node_asset_RGTI_484(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'RGTI': 1.0}
rt.NODE_REGISTRY['_node_asset_RGTI_484'] = _node_asset_RGTI_484
def _node_asset_PLTR_485(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PLTR': 1.0}
rt.NODE_REGISTRY['_node_asset_PLTR_485'] = _node_asset_PLTR_485
def _node_asset_BABA_486(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BABA': 1.0}
rt.NODE_REGISTRY['_node_asset_BABA_486'] = _node_asset_BABA_486
def _node_asset_CONL_487(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'CONL': 1.0}
rt.NODE_REGISTRY['_node_asset_CONL_487'] = _node_asset_CONL_487
def _node_filter_488(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.moving_average_return(prices['AAPX'], 15), rt.call_node('_node_asset_AAPX_477', prices)), (rt.moving_average_return(prices['NVDL'], 15), rt.call_node('_node_asset_NVDL_478', prices)), (rt.moving_average_return(prices['BITX'], 15), rt.call_node('_node_asset_BITX_479', prices)), (rt.moving_average_return(prices['TSLR'], 15), rt.call_node('_node_asset_TSLR_480', prices)), (rt.moving_average_return(prices['FBL'], 15), rt.call_node('_node_asset_FBL_481', prices)), (rt.moving_average_return(prices['GGLL'], 15), rt.call_node('_node_asset_GGLL_482', prices)), (rt.moving_average_return(prices['AMZZ'], 15), rt.call_node('_node_asset_AMZZ_483', prices)), (rt.moving_average_return(prices['RGTI'], 15), rt.call_node('_node_asset_RGTI_484', prices)), (rt.moving_average_return(prices['PLTR'], 15), rt.call_node('_node_asset_PLTR_485', prices)), (rt.moving_average_return(prices['BABA'], 15), rt.call_node('_node_asset_BABA_486', prices)), (rt.moving_average_return(prices['CONL'], 15), rt.call_node('_node_asset_CONL_487', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_488'] = _node_filter_488
def _node_wt_cash_equal_489(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_488', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_489'] = _node_wt_cash_equal_489
def _node_asset_TECS_490(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TECS': 1.0}
rt.NODE_REGISTRY['_node_asset_TECS_490'] = _node_asset_TECS_490
def _node_asset_SOXS_491(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXS': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXS_491'] = _node_asset_SOXS_491
def _node_asset_SQQQ_492(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_492'] = _node_asset_SQQQ_492
def _node_wt_cash_equal_493(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_TECS_490', prices), rt.call_node('_node_asset_SOXS_491', prices), rt.call_node('_node_asset_SQQQ_492', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_493'] = _node_wt_cash_equal_493
def _node_if_494(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['KMLM']) < rt.moving_average_price(prices['KMLM'], 20):
return rt.call_node('_node_wt_cash_equal_489', prices)
else:
return rt.call_node('_node_wt_cash_equal_493', prices)
rt.NODE_REGISTRY['_node_if_494'] = _node_if_494
def _node_wt_cash_equal_495(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_494', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_495'] = _node_wt_cash_equal_495
def _node_wt_cash_equal_496(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_495', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_496'] = _node_wt_cash_equal_496
def _node_if_497(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLK'], 10) > rt.relative_strength_index(prices['KMLM'], 10):
return rt.call_node('_node_wt_cash_equal_476', prices)
else:
return rt.call_node('_node_wt_cash_equal_496', prices)
rt.NODE_REGISTRY['_node_if_497'] = _node_if_497
def _node_wt_cash_equal_498(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_497', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_498'] = _node_wt_cash_equal_498
def _node_asset_QQQ_499(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'QQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_QQQ_499'] = _node_asset_QQQ_499
def _node_wt_cash_equal_500(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_QQQ_499', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_500'] = _node_wt_cash_equal_500
def _node_asset_PSQ_501(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PSQ': 1.0}
rt.NODE_REGISTRY['_node_asset_PSQ_501'] = _node_asset_PSQ_501
def _node_asset_TQQQ_502(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_502'] = _node_asset_TQQQ_502
def _node_asset_PSQ_503(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PSQ': 1.0}
rt.NODE_REGISTRY['_node_asset_PSQ_503'] = _node_asset_PSQ_503
def _node_if_504(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['AGG'], 20) > rt.relative_strength_index(prices['SH'], 60):
return rt.call_node('_node_asset_TQQQ_502', prices)
else:
return rt.call_node('_node_asset_PSQ_503', prices)
rt.NODE_REGISTRY['_node_if_504'] = _node_if_504
def _node_wt_cash_equal_505(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_504', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_505'] = _node_wt_cash_equal_505
def _node_if_506(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['PSQ'], 10) < 35.0:
return rt.call_node('_node_asset_PSQ_501', prices)
else:
return rt.call_node('_node_wt_cash_equal_505', prices)
rt.NODE_REGISTRY['_node_if_506'] = _node_if_506
def _node_wt_cash_equal_507(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_506', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_507'] = _node_wt_cash_equal_507
def _node_asset_PSQ_508(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PSQ': 1.0}
rt.NODE_REGISTRY['_node_asset_PSQ_508'] = _node_asset_PSQ_508
def _node_asset_SQQQ_509(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_509'] = _node_asset_SQQQ_509
def _node_if_510(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IEF'], 10) > rt.relative_strength_index(prices['PSQ'], 20):
return rt.call_node('_node_asset_PSQ_508', prices)
else:
return rt.call_node('_node_asset_SQQQ_509', prices)
rt.NODE_REGISTRY['_node_if_510'] = _node_if_510
def _node_wt_cash_equal_511(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_510', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_511'] = _node_wt_cash_equal_511
def _node_if_512(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['TQQQ']) > rt.moving_average_price(prices['TQQQ'], 20):
return rt.call_node('_node_wt_cash_equal_507', prices)
else:
return rt.call_node('_node_wt_cash_equal_511', prices)
rt.NODE_REGISTRY['_node_if_512'] = _node_if_512
def _node_wt_cash_equal_513(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_512', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_513'] = _node_wt_cash_equal_513
def _node_if_514(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TLT'], 20) > rt.relative_strength_index(prices['PSQ'], 20):
return rt.call_node('_node_wt_cash_equal_500', prices)
else:
return rt.call_node('_node_wt_cash_equal_513', prices)
rt.NODE_REGISTRY['_node_if_514'] = _node_if_514
def _node_asset_QLD_515(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'QLD': 1.0}
rt.NODE_REGISTRY['_node_asset_QLD_515'] = _node_asset_QLD_515
def _node_asset_BTAL_516(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BTAL': 1.0}
rt.NODE_REGISTRY['_node_asset_BTAL_516'] = _node_asset_BTAL_516
def _node_if_517(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['BND'], 10) > rt.relative_strength_index(prices['QQQ'], 10):
return rt.call_node('_node_asset_QLD_515', prices)
else:
return rt.call_node('_node_asset_BTAL_516', prices)
rt.NODE_REGISTRY['_node_if_517'] = _node_if_517
def _node_wt_cash_equal_518(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_517', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_518'] = _node_wt_cash_equal_518
def _node_asset_PSQ_519(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PSQ': 1.0}
rt.NODE_REGISTRY['_node_asset_PSQ_519'] = _node_asset_PSQ_519
def _node_asset_TQQQ_520(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_520'] = _node_asset_TQQQ_520
def _node_asset_PSQ_521(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PSQ': 1.0}
rt.NODE_REGISTRY['_node_asset_PSQ_521'] = _node_asset_PSQ_521
def _node_if_522(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['AGG'], 20) > rt.relative_strength_index(prices['SH'], 60):
return rt.call_node('_node_asset_TQQQ_520', prices)
else:
return rt.call_node('_node_asset_PSQ_521', prices)
rt.NODE_REGISTRY['_node_if_522'] = _node_if_522
def _node_wt_cash_equal_523(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_522', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_523'] = _node_wt_cash_equal_523
def _node_if_524(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['PSQ'], 10) < 35.0:
return rt.call_node('_node_asset_PSQ_519', prices)
else:
return rt.call_node('_node_wt_cash_equal_523', prices)
rt.NODE_REGISTRY['_node_if_524'] = _node_if_524
def _node_wt_cash_equal_525(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_524', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_525'] = _node_wt_cash_equal_525
def _node_asset_PSQ_526(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PSQ': 1.0}
rt.NODE_REGISTRY['_node_asset_PSQ_526'] = _node_asset_PSQ_526
def _node_asset_SQQQ_527(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_527'] = _node_asset_SQQQ_527
def _node_if_528(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IEF'], 10) > rt.relative_strength_index(prices['PSQ'], 20):
return rt.call_node('_node_asset_PSQ_526', prices)
else:
return rt.call_node('_node_asset_SQQQ_527', prices)
rt.NODE_REGISTRY['_node_if_528'] = _node_if_528
def _node_wt_cash_equal_529(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_528', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_529'] = _node_wt_cash_equal_529
def _node_if_530(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['TQQQ']) > rt.moving_average_price(prices['TQQQ'], 20):
return rt.call_node('_node_wt_cash_equal_525', prices)
else:
return rt.call_node('_node_wt_cash_equal_529', prices)
rt.NODE_REGISTRY['_node_if_530'] = _node_if_530
def _node_wt_cash_equal_531(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_530', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_531'] = _node_wt_cash_equal_531
def _node_if_532(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['QQQ'], 60) < -12.0:
return rt.call_node('_node_wt_cash_equal_518', prices)
else:
return rt.call_node('_node_wt_cash_equal_531', prices)
rt.NODE_REGISTRY['_node_if_532'] = _node_if_532
def _node_wt_cash_equal_533(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_532', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_533'] = _node_wt_cash_equal_533
def _node_wt_cash_equal_534(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_514', prices), rt.call_node('_node_wt_cash_equal_533', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_534'] = _node_wt_cash_equal_534
def _node_wt_cash_equal_535(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_534', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_535'] = _node_wt_cash_equal_535
def _node_if_536(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 200):
return rt.call_node('_node_wt_cash_equal_498', prices)
else:
return rt.call_node('_node_wt_cash_equal_535', prices)
rt.NODE_REGISTRY['_node_if_536'] = _node_if_536
def _node_wt_cash_equal_537(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_536', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_537'] = _node_wt_cash_equal_537
def _node_if_538(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) < 30.0:
return rt.call_node('_node_asset_SPXL_408', prices)
else:
return rt.call_node('_node_wt_cash_equal_537', prices)
rt.NODE_REGISTRY['_node_if_538'] = _node_if_538
def _node_wt_cash_equal_539(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_538', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_539'] = _node_wt_cash_equal_539
def _node_if_540(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) < 30.0:
return rt.call_node('_node_asset_TQQQ_407', prices)
else:
return rt.call_node('_node_wt_cash_equal_539', prices)
rt.NODE_REGISTRY['_node_if_540'] = _node_if_540
def _node_wt_cash_equal_541(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_540', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_541'] = _node_wt_cash_equal_541
def _node_if_542(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLF'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_406', prices)
else:
return rt.call_node('_node_wt_cash_equal_541', prices)
rt.NODE_REGISTRY['_node_if_542'] = _node_if_542
def _node_wt_cash_equal_543(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_542', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_543'] = _node_wt_cash_equal_543
def _node_if_544(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VTV'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_398', prices)
else:
return rt.call_node('_node_wt_cash_equal_543', prices)
rt.NODE_REGISTRY['_node_if_544'] = _node_if_544
def _node_wt_cash_equal_545(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_544', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_545'] = _node_wt_cash_equal_545
def _node_if_546(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_387', prices)
else:
return rt.call_node('_node_wt_cash_equal_545', prices)
rt.NODE_REGISTRY['_node_if_546'] = _node_if_546
def _node_wt_cash_equal_547(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_546', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_547'] = _node_wt_cash_equal_547
def _node_if_548(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IOO'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_373', prices)
else:
return rt.call_node('_node_wt_cash_equal_547', prices)
rt.NODE_REGISTRY['_node_if_548'] = _node_if_548
def _node_wt_cash_equal_549(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_548', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_549'] = _node_wt_cash_equal_549
def _node_if_550(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_356', prices)
else:
return rt.call_node('_node_wt_cash_equal_549', prices)
rt.NODE_REGISTRY['_node_if_550'] = _node_if_550
def _node_wt_cash_equal_551(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_550', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_551'] = _node_wt_cash_equal_551
def _node_wt_cash_equal_552(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_551', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_552'] = _node_wt_cash_equal_552
def _node_if_553(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPXL'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_336', prices)
else:
return rt.call_node('_node_wt_cash_equal_552', prices)
rt.NODE_REGISTRY['_node_if_553'] = _node_if_553
def _node_wt_cash_equal_554(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_553', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_554'] = _node_wt_cash_equal_554
def _node_if_555(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_335', prices)
else:
return rt.call_node('_node_wt_cash_equal_554', prices)
rt.NODE_REGISTRY['_node_if_555'] = _node_if_555
def _node_wt_cash_equal_556(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_555', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_556'] = _node_wt_cash_equal_556
def _node_asset_TECL_557(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TECL': 1.0}
rt.NODE_REGISTRY['_node_asset_TECL_557'] = _node_asset_TECL_557
def _node_asset_UPRO_558(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UPRO': 1.0}
rt.NODE_REGISTRY['_node_asset_UPRO_558'] = _node_asset_UPRO_558
def _node_asset_SQQQ_559(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_559'] = _node_asset_SQQQ_559
def _node_asset_TLT_560(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TLT': 1.0}
rt.NODE_REGISTRY['_node_asset_TLT_560'] = _node_asset_TLT_560
def _node_filter_561(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['SQQQ'], 10), rt.call_node('_node_asset_SQQQ_559', prices)), (rt.relative_strength_index(prices['TLT'], 10), rt.call_node('_node_asset_TLT_560', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_561'] = _node_filter_561
def _node_wt_cash_equal_562(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_561', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_562'] = _node_wt_cash_equal_562
def _node_asset_SQQQ_563(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_563'] = _node_asset_SQQQ_563
def _node_asset_TQQQ_564(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_564'] = _node_asset_TQQQ_564
def _node_wt_cash_equal_565(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_TQQQ_564', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_565'] = _node_wt_cash_equal_565
def _node_if_566(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SQQQ'], 10) < 31.0:
return rt.call_node('_node_asset_SQQQ_563', prices)
else:
return rt.call_node('_node_wt_cash_equal_565', prices)
rt.NODE_REGISTRY['_node_if_566'] = _node_if_566
def _node_wt_cash_equal_567(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_566', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_567'] = _node_wt_cash_equal_567
def _node_if_568(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['TQQQ']) < rt.moving_average_price(prices['TQQQ'], 20):
return rt.call_node('_node_wt_cash_equal_562', prices)
else:
return rt.call_node('_node_wt_cash_equal_567', prices)
rt.NODE_REGISTRY['_node_if_568'] = _node_if_568
def _node_wt_cash_equal_569(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_568', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_569'] = _node_wt_cash_equal_569
def _node_if_570(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) < 30.0:
return rt.call_node('_node_asset_UPRO_558', prices)
else:
return rt.call_node('_node_wt_cash_equal_569', prices)
rt.NODE_REGISTRY['_node_if_570'] = _node_if_570
def _node_wt_cash_equal_571(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_570', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_571'] = _node_wt_cash_equal_571
def _node_if_572(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) < 31.0:
return rt.call_node('_node_asset_TECL_557', prices)
else:
return rt.call_node('_node_wt_cash_equal_571', prices)
rt.NODE_REGISTRY['_node_if_572'] = _node_if_572
def _node_wt_cash_equal_573(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_572', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_573'] = _node_wt_cash_equal_573
def _node_if_574(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 200):
return rt.call_node('_node_wt_cash_equal_556', prices)
else:
return rt.call_node('_node_wt_cash_equal_573', prices)
rt.NODE_REGISTRY['_node_if_574'] = _node_if_574
def _node_wt_cash_equal_575(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_574', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_575'] = _node_wt_cash_equal_575
def _node_wt_cash_equal_576(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_575', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_576'] = _node_wt_cash_equal_576
def _node_if_577(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['GDXU'], 70) < rt.cumulative_return(prices['GDXU'], 75):
return rt.call_node('_node_asset_GDXU_334', prices)
else:
return rt.call_node('_node_wt_cash_equal_576', prices)
rt.NODE_REGISTRY['_node_if_577'] = _node_if_577
def _node_wt_cash_equal_578(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_577', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_578'] = _node_wt_cash_equal_578
def _node_asset_GDXD_579(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GDXD': 1.0}
rt.NODE_REGISTRY['_node_asset_GDXD_579'] = _node_asset_GDXD_579
def _node_asset_V_580(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'V': 1.0}
rt.NODE_REGISTRY['_node_asset_V_580'] = _node_asset_V_580
def _node_asset_SOFI_581(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOFI': 1.0}
rt.NODE_REGISTRY['_node_asset_SOFI_581'] = _node_asset_SOFI_581
def _node_asset_MA_582(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'MA': 1.0}
rt.NODE_REGISTRY['_node_asset_MA_582'] = _node_asset_MA_582
def _node_asset_BX_583(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BX': 1.0}
rt.NODE_REGISTRY['_node_asset_BX_583'] = _node_asset_BX_583
def _node_asset_SCHW_584(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SCHW': 1.0}
rt.NODE_REGISTRY['_node_asset_SCHW_584'] = _node_asset_SCHW_584
def _node_asset_KKR_585(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'KKR': 1.0}
rt.NODE_REGISTRY['_node_asset_KKR_585'] = _node_asset_KKR_585
def _node_asset_BN_586(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BN': 1.0}
rt.NODE_REGISTRY['_node_asset_BN_586'] = _node_asset_BN_586
def _node_asset_WELL_587(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'WELL': 1.0}
rt.NODE_REGISTRY['_node_asset_WELL_587'] = _node_asset_WELL_587
def _node_asset_VTR_588(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'VTR': 1.0}
rt.NODE_REGISTRY['_node_asset_VTR_588'] = _node_asset_VTR_588
def _node_asset_BAM_589(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BAM': 1.0}
rt.NODE_REGISTRY['_node_asset_BAM_589'] = _node_asset_BAM_589
def _node_asset_HOOD_590(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'HOOD': 1.0}
rt.NODE_REGISTRY['_node_asset_HOOD_590'] = _node_asset_HOOD_590
def _node_asset_IBKR_591(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'IBKR': 1.0}
rt.NODE_REGISTRY['_node_asset_IBKR_591'] = _node_asset_IBKR_591
def _node_asset_FAS_592(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'FAS': 1.0}
rt.NODE_REGISTRY['_node_asset_FAS_592'] = _node_asset_FAS_592
def _node_asset_AAPX_593(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AAPX': 1.0}
rt.NODE_REGISTRY['_node_asset_AAPX_593'] = _node_asset_AAPX_593
def _node_asset_NVDL_594(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'NVDL': 1.0}
rt.NODE_REGISTRY['_node_asset_NVDL_594'] = _node_asset_NVDL_594
def _node_asset_BITX_595(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BITX': 1.0}
rt.NODE_REGISTRY['_node_asset_BITX_595'] = _node_asset_BITX_595
def _node_asset_TSLR_596(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TSLR': 1.0}
rt.NODE_REGISTRY['_node_asset_TSLR_596'] = _node_asset_TSLR_596
def _node_asset_FBL_597(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'FBL': 1.0}
rt.NODE_REGISTRY['_node_asset_FBL_597'] = _node_asset_FBL_597
def _node_asset_GGLL_598(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GGLL': 1.0}
rt.NODE_REGISTRY['_node_asset_GGLL_598'] = _node_asset_GGLL_598
def _node_asset_AMZZ_599(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AMZZ': 1.0}
rt.NODE_REGISTRY['_node_asset_AMZZ_599'] = _node_asset_AMZZ_599
def _node_asset_RGTI_600(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'RGTI': 1.0}
rt.NODE_REGISTRY['_node_asset_RGTI_600'] = _node_asset_RGTI_600
def _node_asset_PLTR_601(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PLTR': 1.0}
rt.NODE_REGISTRY['_node_asset_PLTR_601'] = _node_asset_PLTR_601
def _node_asset_BABA_602(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BABA': 1.0}
rt.NODE_REGISTRY['_node_asset_BABA_602'] = _node_asset_BABA_602
def _node_asset_CONL_603(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'CONL': 1.0}
rt.NODE_REGISTRY['_node_asset_CONL_603'] = _node_asset_CONL_603
def _node_filter_604(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.moving_average_return(prices['AAPX'], 15), rt.call_node('_node_asset_AAPX_593', prices)), (rt.moving_average_return(prices['NVDL'], 15), rt.call_node('_node_asset_NVDL_594', prices)), (rt.moving_average_return(prices['BITX'], 15), rt.call_node('_node_asset_BITX_595', prices)), (rt.moving_average_return(prices['TSLR'], 15), rt.call_node('_node_asset_TSLR_596', prices)), (rt.moving_average_return(prices['FBL'], 15), rt.call_node('_node_asset_FBL_597', prices)), (rt.moving_average_return(prices['GGLL'], 15), rt.call_node('_node_asset_GGLL_598', prices)), (rt.moving_average_return(prices['AMZZ'], 15), rt.call_node('_node_asset_AMZZ_599', prices)), (rt.moving_average_return(prices['RGTI'], 15), rt.call_node('_node_asset_RGTI_600', prices)), (rt.moving_average_return(prices['PLTR'], 15), rt.call_node('_node_asset_PLTR_601', prices)), (rt.moving_average_return(prices['BABA'], 15), rt.call_node('_node_asset_BABA_602', prices)), (rt.moving_average_return(prices['CONL'], 15), rt.call_node('_node_asset_CONL_603', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_604'] = _node_filter_604
def _node_wt_cash_equal_605(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_604', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_605'] = _node_wt_cash_equal_605
def _node_if_606(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['FAS'], 10) > rt.moving_average_return(prices['QQQ'], 20):
return rt.call_node('_node_asset_FAS_592', prices)
else:
return rt.call_node('_node_wt_cash_equal_605', prices)
rt.NODE_REGISTRY['_node_if_606'] = _node_if_606
def _node_wt_cash_equal_607(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_606', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_607'] = _node_wt_cash_equal_607
def _node_filter_608(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.moving_average_return(prices['V'], 20), rt.call_node('_node_asset_V_580', prices)), (rt.moving_average_return(prices['SOFI'], 20), rt.call_node('_node_asset_SOFI_581', prices)), (rt.moving_average_return(prices['MA'], 20), rt.call_node('_node_asset_MA_582', prices)), (rt.moving_average_return(prices['BX'], 20), rt.call_node('_node_asset_BX_583', prices)), (rt.moving_average_return(prices['SCHW'], 20), rt.call_node('_node_asset_SCHW_584', prices)), (rt.moving_average_return(prices['KKR'], 20), rt.call_node('_node_asset_KKR_585', prices)), (rt.moving_average_return(prices['BN'], 20), rt.call_node('_node_asset_BN_586', prices)), (rt.moving_average_return(prices['WELL'], 20), rt.call_node('_node_asset_WELL_587', prices)), (rt.moving_average_return(prices['VTR'], 20), rt.call_node('_node_asset_VTR_588', prices)), (rt.moving_average_return(prices['BAM'], 20), rt.call_node('_node_asset_BAM_589', prices)), (rt.moving_average_return(prices['HOOD'], 20), rt.call_node('_node_asset_HOOD_590', prices)), (rt.moving_average_return(prices['IBKR'], 20), rt.call_node('_node_asset_IBKR_591', prices)), (rt.moving_average_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_607', prices), prices), 20), rt.call_node('_node_wt_cash_equal_607', prices))], 'top', int('3'))
rt.NODE_REGISTRY['_node_filter_608'] = _node_filter_608
def _node_wt_cash_equal_609(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_608', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_609'] = _node_wt_cash_equal_609
def _node_asset_V_610(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'V': 1.0}
rt.NODE_REGISTRY['_node_asset_V_610'] = _node_asset_V_610
def _node_asset_SOFI_611(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOFI': 1.0}
rt.NODE_REGISTRY['_node_asset_SOFI_611'] = _node_asset_SOFI_611
def _node_asset_MA_612(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'MA': 1.0}
rt.NODE_REGISTRY['_node_asset_MA_612'] = _node_asset_MA_612
def _node_asset_BX_613(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BX': 1.0}
rt.NODE_REGISTRY['_node_asset_BX_613'] = _node_asset_BX_613
def _node_asset_SCHW_614(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SCHW': 1.0}
rt.NODE_REGISTRY['_node_asset_SCHW_614'] = _node_asset_SCHW_614
def _node_asset_KKR_615(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'KKR': 1.0}
rt.NODE_REGISTRY['_node_asset_KKR_615'] = _node_asset_KKR_615
def _node_asset_BN_616(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BN': 1.0}
rt.NODE_REGISTRY['_node_asset_BN_616'] = _node_asset_BN_616
def _node_asset_WELL_617(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'WELL': 1.0}
rt.NODE_REGISTRY['_node_asset_WELL_617'] = _node_asset_WELL_617
def _node_asset_VTR_618(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'VTR': 1.0}
rt.NODE_REGISTRY['_node_asset_VTR_618'] = _node_asset_VTR_618
def _node_asset_BAM_619(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BAM': 1.0}
rt.NODE_REGISTRY['_node_asset_BAM_619'] = _node_asset_BAM_619
def _node_asset_HOOD_620(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'HOOD': 1.0}
rt.NODE_REGISTRY['_node_asset_HOOD_620'] = _node_asset_HOOD_620
def _node_asset_IBKR_621(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'IBKR': 1.0}
rt.NODE_REGISTRY['_node_asset_IBKR_621'] = _node_asset_IBKR_621
def _node_filter_622(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['V'], 10), rt.call_node('_node_asset_V_610', prices)), (rt.relative_strength_index(prices['SOFI'], 10), rt.call_node('_node_asset_SOFI_611', prices)), (rt.relative_strength_index(prices['MA'], 10), rt.call_node('_node_asset_MA_612', prices)), (rt.relative_strength_index(prices['BX'], 10), rt.call_node('_node_asset_BX_613', prices)), (rt.relative_strength_index(prices['SCHW'], 10), rt.call_node('_node_asset_SCHW_614', prices)), (rt.relative_strength_index(prices['KKR'], 10), rt.call_node('_node_asset_KKR_615', prices)), (rt.relative_strength_index(prices['BN'], 10), rt.call_node('_node_asset_BN_616', prices)), (rt.relative_strength_index(prices['WELL'], 10), rt.call_node('_node_asset_WELL_617', prices)), (rt.relative_strength_index(prices['VTR'], 10), rt.call_node('_node_asset_VTR_618', prices)), (rt.relative_strength_index(prices['BAM'], 10), rt.call_node('_node_asset_BAM_619', prices)), (rt.relative_strength_index(prices['HOOD'], 10), rt.call_node('_node_asset_HOOD_620', prices)), (rt.relative_strength_index(prices['IBKR'], 10), rt.call_node('_node_asset_IBKR_621', prices))], 'bottom', int('3'))
rt.NODE_REGISTRY['_node_filter_622'] = _node_filter_622
def _node_wt_cash_equal_623(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_622', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_623'] = _node_wt_cash_equal_623
def _node_if_624(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['FAS'], 50) > rt.moving_average_return(prices['FAS'], 200):
return rt.call_node('_node_wt_cash_equal_609', prices)
else:
return rt.call_node('_node_wt_cash_equal_623', prices)
rt.NODE_REGISTRY['_node_if_624'] = _node_if_624
def _node_wt_cash_equal_625(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_624', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_625'] = _node_wt_cash_equal_625
def _node_asset_TMF_626(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TMF': 1.0}
rt.NODE_REGISTRY['_node_asset_TMF_626'] = _node_asset_TMF_626
def _node_asset_FAZ_627(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'FAZ': 1.0}
rt.NODE_REGISTRY['_node_asset_FAZ_627'] = _node_asset_FAZ_627
def _node_asset_AAPX_628(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AAPX': 1.0}
rt.NODE_REGISTRY['_node_asset_AAPX_628'] = _node_asset_AAPX_628
def _node_asset_NVDL_629(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'NVDL': 1.0}
rt.NODE_REGISTRY['_node_asset_NVDL_629'] = _node_asset_NVDL_629
def _node_asset_BITX_630(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BITX': 1.0}
rt.NODE_REGISTRY['_node_asset_BITX_630'] = _node_asset_BITX_630
def _node_asset_TSLR_631(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TSLR': 1.0}
rt.NODE_REGISTRY['_node_asset_TSLR_631'] = _node_asset_TSLR_631
def _node_asset_FBL_632(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'FBL': 1.0}
rt.NODE_REGISTRY['_node_asset_FBL_632'] = _node_asset_FBL_632
def _node_asset_GGLL_633(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GGLL': 1.0}
rt.NODE_REGISTRY['_node_asset_GGLL_633'] = _node_asset_GGLL_633
def _node_asset_AMZZ_634(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AMZZ': 1.0}
rt.NODE_REGISTRY['_node_asset_AMZZ_634'] = _node_asset_AMZZ_634
def _node_asset_RGTI_635(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'RGTI': 1.0}
rt.NODE_REGISTRY['_node_asset_RGTI_635'] = _node_asset_RGTI_635
def _node_asset_PLTR_636(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'PLTR': 1.0}
rt.NODE_REGISTRY['_node_asset_PLTR_636'] = _node_asset_PLTR_636
def _node_asset_BABA_637(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BABA': 1.0}
rt.NODE_REGISTRY['_node_asset_BABA_637'] = _node_asset_BABA_637
def _node_asset_CONL_638(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'CONL': 1.0}
rt.NODE_REGISTRY['_node_asset_CONL_638'] = _node_asset_CONL_638
def _node_filter_639(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.moving_average_return(prices['AAPX'], 15), rt.call_node('_node_asset_AAPX_628', prices)), (rt.moving_average_return(prices['NVDL'], 15), rt.call_node('_node_asset_NVDL_629', prices)), (rt.moving_average_return(prices['BITX'], 15), rt.call_node('_node_asset_BITX_630', prices)), (rt.moving_average_return(prices['TSLR'], 15), rt.call_node('_node_asset_TSLR_631', prices)), (rt.moving_average_return(prices['FBL'], 15), rt.call_node('_node_asset_FBL_632', prices)), (rt.moving_average_return(prices['GGLL'], 15), rt.call_node('_node_asset_GGLL_633', prices)), (rt.moving_average_return(prices['AMZZ'], 15), rt.call_node('_node_asset_AMZZ_634', prices)), (rt.moving_average_return(prices['RGTI'], 15), rt.call_node('_node_asset_RGTI_635', prices)), (rt.moving_average_return(prices['PLTR'], 15), rt.call_node('_node_asset_PLTR_636', prices)), (rt.moving_average_return(prices['BABA'], 15), rt.call_node('_node_asset_BABA_637', prices)), (rt.moving_average_return(prices['CONL'], 15), rt.call_node('_node_asset_CONL_638', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_639'] = _node_filter_639
def _node_wt_cash_equal_640(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_639', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_640'] = _node_wt_cash_equal_640
def _node_filter_641(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.moving_average_return(prices['TMF'], 15), rt.call_node('_node_asset_TMF_626', prices)), (rt.moving_average_return(prices['FAZ'], 15), rt.call_node('_node_asset_FAZ_627', prices)), (rt.moving_average_return(rt.synthetic_price_series(rt.call_node('_node_wt_cash_equal_640', prices), prices), 15), rt.call_node('_node_wt_cash_equal_640', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_641'] = _node_filter_641
def _node_wt_cash_equal_642(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_641', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_642'] = _node_wt_cash_equal_642
def _node_asset_AGQ_643(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'AGQ': 1.0}
rt.NODE_REGISTRY['_node_asset_AGQ_643'] = _node_asset_AGQ_643
def _node_asset_FAS_644(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'FAS': 1.0}
rt.NODE_REGISTRY['_node_asset_FAS_644'] = _node_asset_FAS_644
def _node_filter_645(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['AGQ'], 10), rt.call_node('_node_asset_AGQ_643', prices)), (rt.relative_strength_index(prices['FAS'], 10), rt.call_node('_node_asset_FAS_644', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_645'] = _node_filter_645
def _node_wt_cash_equal_646(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_645', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_646'] = _node_wt_cash_equal_646
def _node_if_647(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['FAS'], 10) > 31.0:
return rt.call_node('_node_wt_cash_equal_642', prices)
else:
return rt.call_node('_node_wt_cash_equal_646', prices)
rt.NODE_REGISTRY['_node_if_647'] = _node_if_647
def _node_wt_cash_equal_648(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_647', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_648'] = _node_wt_cash_equal_648
def _node_asset_FAS_649(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'FAS': 1.0}
rt.NODE_REGISTRY['_node_asset_FAS_649'] = _node_asset_FAS_649
def _node_if_650(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['FAS']) < rt.moving_average_price(prices['FAS'], 100):
return rt.call_node('_node_wt_cash_equal_648', prices)
else:
return rt.call_node('_node_asset_FAS_649', prices)
rt.NODE_REGISTRY['_node_if_650'] = _node_if_650
def _node_wt_cash_equal_651(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_650', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_651'] = _node_wt_cash_equal_651
def _node_if_652(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 200):
return rt.call_node('_node_wt_cash_equal_625', prices)
else:
return rt.call_node('_node_wt_cash_equal_651', prices)
rt.NODE_REGISTRY['_node_if_652'] = _node_if_652
def _node_wt_cash_equal_653(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_652', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_653'] = _node_wt_cash_equal_653
def _node_if_654(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['TLT'], 95) < rt.cumulative_return(prices['QQQ'], 35):
return rt.call_node('_node_asset_GDXD_579', prices)
else:
return rt.call_node('_node_wt_cash_equal_653', prices)
rt.NODE_REGISTRY['_node_if_654'] = _node_if_654
def _node_wt_cash_equal_655(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_654', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_655'] = _node_wt_cash_equal_655
def _node_if_656(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['QQQ'], 90) > rt.cumulative_return(prices['QQQ'], 70):
return rt.call_node('_node_wt_cash_equal_578', prices)
else:
return rt.call_node('_node_wt_cash_equal_655', prices)
rt.NODE_REGISTRY['_node_if_656'] = _node_if_656
def _node_wt_cash_equal_657(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_656', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_657'] = _node_wt_cash_equal_657
def _node_if_658(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['GDXU'], 10) < 30.0:
return rt.call_node('_node_asset_GDXU_333', prices)
else:
return rt.call_node('_node_wt_cash_equal_657', prices)
rt.NODE_REGISTRY['_node_if_658'] = _node_if_658
def _node_wt_cash_equal_659(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_658', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_659'] = _node_wt_cash_equal_659
def _node_if_660(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['GDXU'], 10) > 79.0:
return rt.call_node('_node_asset_GDXD_332', prices)
else:
return rt.call_node('_node_wt_cash_equal_659', prices)
rt.NODE_REGISTRY['_node_if_660'] = _node_if_660
def _node_wt_cash_equal_661(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_660', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_661'] = _node_wt_cash_equal_661
def _node_asset_SOXL_662(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_662'] = _node_asset_SOXL_662
def _node_asset_SOXL_663(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_663'] = _node_asset_SOXL_663
def _node_asset_SOXL_664(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_664'] = _node_asset_SOXL_664
def _node_asset_SOXL_665(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_665'] = _node_asset_SOXL_665
def _node_asset_SOXL_666(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_666'] = _node_asset_SOXL_666
def _node_asset_UVXY_667(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_667'] = _node_asset_UVXY_667
def _node_asset_UVXY_668(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_668'] = _node_asset_UVXY_668
def _node_wt_cash_equal_669(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_UVXY_668', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_669'] = _node_wt_cash_equal_669
def _node_asset_UVXY_670(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_670'] = _node_asset_UVXY_670
def _node_asset_UVXY_671(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_671'] = _node_asset_UVXY_671
def _node_asset_UVXY_672(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_672'] = _node_asset_UVXY_672
def _node_asset_UVXY_673(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_673'] = _node_asset_UVXY_673
def _node_asset_BIL_674(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_674'] = _node_asset_BIL_674
def _node_asset_BIL_675(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_675'] = _node_asset_BIL_675
def _node_asset_BIL_676(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_676'] = _node_asset_BIL_676
def _node_asset_BIL_677(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_677'] = _node_asset_BIL_677
def _node_asset_BIL_678(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_678'] = _node_asset_BIL_678
def _node_asset_SOXL_679(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_679'] = _node_asset_SOXL_679
def _node_asset_UVXY_680(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_680'] = _node_asset_UVXY_680
def _node_asset_TMF_681(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TMF': 1.0}
rt.NODE_REGISTRY['_node_asset_TMF_681'] = _node_asset_TMF_681
def _node_asset_SOXL_682(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_682'] = _node_asset_SOXL_682
def _node_wt_cash_equal_683(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_682', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_683'] = _node_wt_cash_equal_683
def _node_asset_SOXL_684(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_684'] = _node_asset_SOXL_684
def _node_wt_cash_equal_685(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_684', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_685'] = _node_wt_cash_equal_685
def _node_asset_SOXL_686(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_686'] = _node_asset_SOXL_686
def _node_wt_cash_equal_687(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_686', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_687'] = _node_wt_cash_equal_687
def _node_asset_SOXL_688(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_688'] = _node_asset_SOXL_688
def _node_wt_cash_equal_689(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_688', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_689'] = _node_wt_cash_equal_689
def _node_asset_UPRO_690(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UPRO': 1.0}
rt.NODE_REGISTRY['_node_asset_UPRO_690'] = _node_asset_UPRO_690
def _node_asset_TQQQ_691(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_691'] = _node_asset_TQQQ_691
def _node_wt_cash_specified_692(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('80') / float(100)), rt.call_node('_node_asset_UPRO_690', prices)), ((float(20) / float(100)), rt.call_node('_node_asset_TQQQ_691', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_692'] = _node_wt_cash_specified_692
def _node_if_693(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) < 30.0:
return rt.call_node('_node_wt_cash_equal_689', prices)
else:
return rt.call_node('_node_wt_cash_specified_692', prices)
rt.NODE_REGISTRY['_node_if_693'] = _node_if_693
def _node_wt_cash_equal_694(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_693', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_694'] = _node_wt_cash_equal_694
# region imports
from AlgorithmImports import *
# endregion
from typing import Dict, Sequence
import strategy_runtime as rt
def _node_if_695(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) < 30.0:
return rt.call_node('_node_wt_cash_equal_687', prices)
else:
return rt.call_node('_node_wt_cash_equal_694', prices)
rt.NODE_REGISTRY['_node_if_695'] = _node_if_695
def _node_wt_cash_equal_696(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_695', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_696'] = _node_wt_cash_equal_696
def _node_if_697(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 95.0:
return rt.call_node('_node_wt_cash_equal_685', prices)
else:
return rt.call_node('_node_wt_cash_equal_696', prices)
rt.NODE_REGISTRY['_node_if_697'] = _node_if_697
def _node_wt_cash_equal_698(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_697', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_698'] = _node_wt_cash_equal_698
def _node_if_699(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) > 60.0:
return rt.call_node('_node_wt_cash_equal_683', prices)
else:
return rt.call_node('_node_wt_cash_equal_698', prices)
rt.NODE_REGISTRY['_node_if_699'] = _node_if_699
def _node_wt_cash_equal_700(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_699', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_700'] = _node_wt_cash_equal_700
def _node_if_701(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -16.0:
return rt.call_node('_node_asset_TMF_681', prices)
else:
return rt.call_node('_node_wt_cash_equal_700', prices)
rt.NODE_REGISTRY['_node_if_701'] = _node_if_701
def _node_wt_cash_equal_702(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_701', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_702'] = _node_wt_cash_equal_702
def _node_if_703(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -20.0:
return rt.call_node('_node_asset_UVXY_680', prices)
else:
return rt.call_node('_node_wt_cash_equal_702', prices)
rt.NODE_REGISTRY['_node_if_703'] = _node_if_703
def _node_wt_cash_equal_704(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_703', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_704'] = _node_wt_cash_equal_704
def _node_if_705(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -25.0:
return rt.call_node('_node_asset_SOXL_679', prices)
else:
return rt.call_node('_node_wt_cash_equal_704', prices)
rt.NODE_REGISTRY['_node_if_705'] = _node_if_705
def _node_wt_cash_equal_706(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_705', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_706'] = _node_wt_cash_equal_706
def _node_if_707(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 200) > 55.0:
return rt.call_node('_node_asset_BIL_678', prices)
else:
return rt.call_node('_node_wt_cash_equal_706', prices)
rt.NODE_REGISTRY['_node_if_707'] = _node_if_707
def _node_wt_cash_equal_708(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_707', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_708'] = _node_wt_cash_equal_708
def _node_wt_cash_equal_709(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_708', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_709'] = _node_wt_cash_equal_709
def _node_if_710(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 60) > 60.0:
return rt.call_node('_node_asset_BIL_677', prices)
else:
return rt.call_node('_node_wt_cash_equal_709', prices)
rt.NODE_REGISTRY['_node_if_710'] = _node_if_710
def _node_wt_cash_equal_711(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_710', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_711'] = _node_wt_cash_equal_711
def _node_if_712(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 14) > 95.0:
return rt.call_node('_node_asset_BIL_676', prices)
else:
return rt.call_node('_node_wt_cash_equal_711', prices)
rt.NODE_REGISTRY['_node_if_712'] = _node_if_712
def _node_wt_cash_equal_713(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_712', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_713'] = _node_wt_cash_equal_713
def _node_if_714(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 60) > 65.0:
return rt.call_node('_node_asset_BIL_675', prices)
else:
return rt.call_node('_node_wt_cash_equal_713', prices)
rt.NODE_REGISTRY['_node_if_714'] = _node_if_714
def _node_wt_cash_equal_715(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_714', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_715'] = _node_wt_cash_equal_715
def _node_if_716(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 60) > 65.0:
return rt.call_node('_node_asset_BIL_674', prices)
else:
return rt.call_node('_node_wt_cash_equal_715', prices)
rt.NODE_REGISTRY['_node_if_716'] = _node_if_716
def _node_wt_cash_equal_717(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_716', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_717'] = _node_wt_cash_equal_717
def _node_if_718(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 6) > 85.0:
return rt.call_node('_node_asset_UVXY_673', prices)
else:
return rt.call_node('_node_wt_cash_equal_717', prices)
rt.NODE_REGISTRY['_node_if_718'] = _node_if_718
def _node_wt_cash_equal_719(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_718', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_719'] = _node_wt_cash_equal_719
def _node_if_720(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 5) > 90.0:
return rt.call_node('_node_asset_UVXY_672', prices)
else:
return rt.call_node('_node_wt_cash_equal_719', prices)
rt.NODE_REGISTRY['_node_if_720'] = _node_if_720
def _node_wt_cash_equal_721(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_720', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_721'] = _node_wt_cash_equal_721
def _node_if_722(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 5) > 90.0:
return rt.call_node('_node_asset_UVXY_671', prices)
else:
return rt.call_node('_node_wt_cash_equal_721', prices)
rt.NODE_REGISTRY['_node_if_722'] = _node_if_722
def _node_wt_cash_equal_723(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_722', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_723'] = _node_wt_cash_equal_723
def _node_if_724(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_670', prices)
else:
return rt.call_node('_node_wt_cash_equal_723', prices)
rt.NODE_REGISTRY['_node_if_724'] = _node_if_724
def _node_wt_cash_equal_725(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_724', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_725'] = _node_wt_cash_equal_725
def _node_if_726(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_669', prices)
else:
return rt.call_node('_node_wt_cash_equal_725', prices)
rt.NODE_REGISTRY['_node_if_726'] = _node_if_726
def _node_wt_cash_equal_727(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_726', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_727'] = _node_wt_cash_equal_727
def _node_if_728(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLP'], 10) > 75.0:
return rt.call_node('_node_asset_UVXY_667', prices)
else:
return rt.call_node('_node_wt_cash_equal_727', prices)
rt.NODE_REGISTRY['_node_if_728'] = _node_if_728
def _node_wt_cash_specified_729(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float(100) / float(100)), rt.call_node('_node_if_728', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_729'] = _node_wt_cash_specified_729
def _node_if_730(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 10) > 84.0:
return rt.call_node('_node_asset_SOXL_666', prices)
else:
return rt.call_node('_node_wt_cash_specified_729', prices)
rt.NODE_REGISTRY['_node_if_730'] = _node_if_730
def _node_wt_cash_equal_731(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_730', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_731'] = _node_wt_cash_equal_731
def _node_asset_SOXL_732(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_732'] = _node_asset_SOXL_732
def _node_asset_UVXY_733(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_733'] = _node_asset_UVXY_733
def _node_asset_BIL_734(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_734'] = _node_asset_BIL_734
def _node_asset_BIL_735(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_735'] = _node_asset_BIL_735
def _node_asset_BIL_736(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_736'] = _node_asset_BIL_736
def _node_asset_BIL_737(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_737'] = _node_asset_BIL_737
def _node_asset_BIL_738(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_738'] = _node_asset_BIL_738
def _node_asset_UVXY_739(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_739'] = _node_asset_UVXY_739
def _node_asset_SOXL_740(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_740'] = _node_asset_SOXL_740
def _node_wt_cash_equal_741(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_740', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_741'] = _node_wt_cash_equal_741
def _node_asset_BIL_742(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_742'] = _node_asset_BIL_742
def _node_asset_SOXL_743(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_743'] = _node_asset_SOXL_743
def _node_if_744(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 10) < 84.0:
return rt.call_node('_node_asset_BIL_742', prices)
else:
return rt.call_node('_node_asset_SOXL_743', prices)
rt.NODE_REGISTRY['_node_if_744'] = _node_if_744
def _node_wt_cash_equal_745(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_744', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_745'] = _node_wt_cash_equal_745
def _node_asset_SOXL_746(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_746'] = _node_asset_SOXL_746
def _node_wt_cash_equal_747(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_746', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_747'] = _node_wt_cash_equal_747
def _node_asset_SOXL_748(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_748'] = _node_asset_SOXL_748
def _node_wt_cash_equal_749(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_748', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_749'] = _node_wt_cash_equal_749
def _node_asset_SQQQ_750(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_750'] = _node_asset_SQQQ_750
def _node_wt_cash_equal_751(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SQQQ_750', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_751'] = _node_wt_cash_equal_751
def _node_asset_SOXL_752(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_752'] = _node_asset_SOXL_752
def _node_wt_cash_equal_753(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_752', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_753'] = _node_wt_cash_equal_753
def _node_if_754(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['PSQ'], 10) < 30.0:
return rt.call_node('_node_wt_cash_equal_751', prices)
else:
return rt.call_node('_node_wt_cash_equal_753', prices)
rt.NODE_REGISTRY['_node_if_754'] = _node_if_754
def _node_wt_cash_equal_755(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_754', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_755'] = _node_wt_cash_equal_755
def _node_asset_SOXL_756(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_756'] = _node_asset_SOXL_756
def _node_wt_cash_equal_757(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_756', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_757'] = _node_wt_cash_equal_757
def _node_asset_SOXL_758(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_758'] = _node_asset_SOXL_758
def _node_wt_cash_equal_759(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_758', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_759'] = _node_wt_cash_equal_759
def _node_asset_SOXL_760(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_760'] = _node_asset_SOXL_760
def _node_wt_cash_equal_761(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_SOXL_760', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_761'] = _node_wt_cash_equal_761
def _node_asset_GLD_762(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'GLD': 1.0}
rt.NODE_REGISTRY['_node_asset_GLD_762'] = _node_asset_GLD_762
def _node_if_763(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) > rt.relative_strength_index(prices['TLT'], 10):
return rt.call_node('_node_wt_cash_equal_761', prices)
else:
return rt.call_node('_node_asset_GLD_762', prices)
rt.NODE_REGISTRY['_node_if_763'] = _node_if_763
def _node_wt_cash_equal_764(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_763', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_764'] = _node_wt_cash_equal_764
def _node_asset_SQQQ_765(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_765'] = _node_asset_SQQQ_765
def _node_asset_TLT_766(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TLT': 1.0}
rt.NODE_REGISTRY['_node_asset_TLT_766'] = _node_asset_TLT_766
def _node_filter_767(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['SQQQ'], 10), rt.call_node('_node_asset_SQQQ_765', prices)), (rt.relative_strength_index(prices['TLT'], 10), rt.call_node('_node_asset_TLT_766', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_767'] = _node_filter_767
def _node_wt_cash_equal_768(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_767', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_768'] = _node_wt_cash_equal_768
def _node_asset_TMF_769(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TMF': 1.0}
rt.NODE_REGISTRY['_node_asset_TMF_769'] = _node_asset_TMF_769
def _node_asset_TQQQ_770(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_TQQQ_770'] = _node_asset_TQQQ_770
def _node_wt_cash_equal_771(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_TQQQ_770', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_771'] = _node_wt_cash_equal_771
def _node_if_772(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['TLT']) > rt.moving_average_price(prices['TLT'], 200):
return rt.call_node('_node_asset_TMF_769', prices)
else:
return rt.call_node('_node_wt_cash_equal_771', prices)
rt.NODE_REGISTRY['_node_if_772'] = _node_if_772
def _node_wt_cash_equal_773(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_772', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_773'] = _node_wt_cash_equal_773
def _node_if_774(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['PSQ'], 10) > rt.relative_strength_index(prices['TLT'], 10):
return rt.call_node('_node_wt_cash_equal_768', prices)
else:
return rt.call_node('_node_wt_cash_equal_773', prices)
rt.NODE_REGISTRY['_node_if_774'] = _node_if_774
def _node_wt_cash_equal_775(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_774', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_775'] = _node_wt_cash_equal_775
def _node_if_776(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['PSQ'], 10) > 65.0:
return rt.call_node('_node_wt_cash_equal_764', prices)
else:
return rt.call_node('_node_wt_cash_equal_775', prices)
rt.NODE_REGISTRY['_node_if_776'] = _node_if_776
def _node_wt_cash_equal_777(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_776', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_777'] = _node_wt_cash_equal_777
def _node_wt_cash_equal_778(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_777', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_778'] = _node_wt_cash_equal_778
def _node_if_779(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 30):
return rt.call_node('_node_wt_cash_equal_759', prices)
else:
return rt.call_node('_node_wt_cash_equal_778', prices)
rt.NODE_REGISTRY['_node_if_779'] = _node_if_779
def _node_wt_cash_equal_780(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_779', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_780'] = _node_wt_cash_equal_780
def _node_if_781(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) < 30.0:
return rt.call_node('_node_wt_cash_equal_757', prices)
else:
return rt.call_node('_node_wt_cash_equal_780', prices)
rt.NODE_REGISTRY['_node_if_781'] = _node_if_781
def _node_wt_cash_equal_782(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_781', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_782'] = _node_wt_cash_equal_782
def _node_if_783(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['QQQ']) > rt.moving_average_price(prices['QQQ'], 20):
return rt.call_node('_node_wt_cash_equal_755', prices)
else:
return rt.call_node('_node_wt_cash_equal_782', prices)
rt.NODE_REGISTRY['_node_if_783'] = _node_if_783
def _node_wt_cash_equal_784(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_783', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_784'] = _node_wt_cash_equal_784
def _node_if_785(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) < 30.0:
return rt.call_node('_node_wt_cash_equal_749', prices)
else:
return rt.call_node('_node_wt_cash_equal_784', prices)
rt.NODE_REGISTRY['_node_if_785'] = _node_if_785
def _node_wt_cash_equal_786(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_785', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_786'] = _node_wt_cash_equal_786
def _node_if_787(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) < 30.0:
return rt.call_node('_node_wt_cash_equal_747', prices)
else:
return rt.call_node('_node_wt_cash_equal_786', prices)
rt.NODE_REGISTRY['_node_if_787'] = _node_if_787
def _node_wt_cash_equal_788(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_787', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_788'] = _node_wt_cash_equal_788
def _node_if_789(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 10) > 74.0:
return rt.call_node('_node_wt_cash_equal_745', prices)
else:
return rt.call_node('_node_wt_cash_equal_788', prices)
rt.NODE_REGISTRY['_node_if_789'] = _node_if_789
def _node_wt_cash_equal_790(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_789', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_790'] = _node_wt_cash_equal_790
def _node_if_791(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) < 20.0:
return rt.call_node('_node_wt_cash_equal_741', prices)
else:
return rt.call_node('_node_wt_cash_equal_790', prices)
rt.NODE_REGISTRY['_node_if_791'] = _node_if_791
def _node_wt_cash_equal_792(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_791', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_792'] = _node_wt_cash_equal_792
def _node_if_793(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -24.0:
return rt.call_node('_node_asset_UVXY_739', prices)
else:
return rt.call_node('_node_wt_cash_equal_792', prices)
rt.NODE_REGISTRY['_node_if_793'] = _node_if_793
def _node_wt_cash_equal_794(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_793', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_794'] = _node_wt_cash_equal_794
def _node_if_795(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 60) > 50.0:
return rt.call_node('_node_asset_BIL_738', prices)
else:
return rt.call_node('_node_wt_cash_equal_794', prices)
rt.NODE_REGISTRY['_node_if_795'] = _node_if_795
def _node_wt_cash_equal_796(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_795', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_796'] = _node_wt_cash_equal_796
def _node_if_797(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 60) > 55.0:
return rt.call_node('_node_asset_BIL_737', prices)
else:
return rt.call_node('_node_wt_cash_equal_796', prices)
rt.NODE_REGISTRY['_node_if_797'] = _node_if_797
def _node_wt_cash_equal_798(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_797', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_798'] = _node_wt_cash_equal_798
def _node_if_799(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 6) > 75.0:
return rt.call_node('_node_asset_BIL_736', prices)
else:
return rt.call_node('_node_wt_cash_equal_798', prices)
rt.NODE_REGISTRY['_node_if_799'] = _node_if_799
def _node_wt_cash_equal_800(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_799', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_800'] = _node_wt_cash_equal_800
def _node_if_801(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQ'], 10) > 75.0:
return rt.call_node('_node_asset_BIL_735', prices)
else:
return rt.call_node('_node_wt_cash_equal_800', prices)
rt.NODE_REGISTRY['_node_if_801'] = _node_if_801
def _node_wt_cash_equal_802(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_801', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_802'] = _node_wt_cash_equal_802
def _node_if_803(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 70.0:
return rt.call_node('_node_asset_BIL_734', prices)
else:
return rt.call_node('_node_wt_cash_equal_802', prices)
rt.NODE_REGISTRY['_node_if_803'] = _node_if_803
def _node_wt_cash_equal_804(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_803', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_804'] = _node_wt_cash_equal_804
def _node_if_805(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLP'], 10) > 75.0:
return rt.call_node('_node_asset_UVXY_733', prices)
else:
return rt.call_node('_node_wt_cash_equal_804', prices)
rt.NODE_REGISTRY['_node_if_805'] = _node_if_805
def _node_wt_cash_equal_806(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_805', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_806'] = _node_wt_cash_equal_806
def _node_if_807(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 10) > 84.0:
return rt.call_node('_node_asset_SOXL_732', prices)
else:
return rt.call_node('_node_wt_cash_equal_806', prices)
rt.NODE_REGISTRY['_node_if_807'] = _node_if_807
def _node_wt_cash_equal_808(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_807', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_808'] = _node_wt_cash_equal_808
def _node_if_809(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 200):
return rt.call_node('_node_wt_cash_equal_731', prices)
else:
return rt.call_node('_node_wt_cash_equal_808', prices)
rt.NODE_REGISTRY['_node_if_809'] = _node_if_809
def _node_wt_cash_equal_810(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_809', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_810'] = _node_wt_cash_equal_810
def _node_if_811(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 5) < -57.0:
return rt.call_node('_node_asset_SOXL_665', prices)
else:
return rt.call_node('_node_wt_cash_equal_810', prices)
rt.NODE_REGISTRY['_node_if_811'] = _node_if_811
def _node_wt_cash_equal_812(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_811', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_812'] = _node_wt_cash_equal_812
def _node_if_813(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 2) < -37.0:
return rt.call_node('_node_asset_SOXL_664', prices)
else:
return rt.call_node('_node_wt_cash_equal_812', prices)
rt.NODE_REGISTRY['_node_if_813'] = _node_if_813
def _node_wt_cash_equal_814(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_813', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_814'] = _node_wt_cash_equal_814
def _node_if_815(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.cumulative_return(prices['SOXL'], 1) < -31.0:
return rt.call_node('_node_asset_SOXL_663', prices)
else:
return rt.call_node('_node_wt_cash_equal_814', prices)
rt.NODE_REGISTRY['_node_if_815'] = _node_if_815
def _node_wt_cash_equal_816(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_815', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_816'] = _node_wt_cash_equal_816
def _node_if_817(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.moving_average_return(prices['QQQ'], 10) < -2.4:
return rt.call_node('_node_asset_SOXL_662', prices)
else:
return rt.call_node('_node_wt_cash_equal_816', prices)
rt.NODE_REGISTRY['_node_if_817'] = _node_if_817
def _node_wt_cash_equal_818(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_817', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_818'] = _node_wt_cash_equal_818
def _node_wt_cash_equal_819(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_818', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_819'] = _node_wt_cash_equal_819
def _node_asset_UVXY_820(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_820'] = _node_asset_UVXY_820
def _node_asset_UVXY_821(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_821'] = _node_asset_UVXY_821
def _node_asset_UVXY_822(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_822'] = _node_asset_UVXY_822
def _node_asset_UVXY_823(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_823'] = _node_asset_UVXY_823
def _node_asset_UVXY_824(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_824'] = _node_asset_UVXY_824
def _node_asset_UVXY_825(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_825'] = _node_asset_UVXY_825
def _node_asset_UVXY_826(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_826'] = _node_asset_UVXY_826
def _node_asset_UVXY_827(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_827'] = _node_asset_UVXY_827
def _node_wt_cash_equal_828(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_asset_UVXY_827', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_828'] = _node_wt_cash_equal_828
def _node_asset_UVXY_829(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_829'] = _node_asset_UVXY_829
def _node_asset_UVXY_830(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_830'] = _node_asset_UVXY_830
def _node_asset_UVXY_831(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'UVXY': 1.0}
rt.NODE_REGISTRY['_node_asset_UVXY_831'] = _node_asset_UVXY_831
def _node_asset_VIXM_832(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'VIXM': 1.0}
rt.NODE_REGISTRY['_node_asset_VIXM_832'] = _node_asset_VIXM_832
def _node_asset_SPXL_833(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SPXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SPXL_833'] = _node_asset_SPXL_833
def _node_if_834(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 21) > 30.0:
return rt.call_node('_node_asset_VIXM_832', prices)
else:
return rt.call_node('_node_asset_SPXL_833', prices)
rt.NODE_REGISTRY['_node_if_834'] = _node_if_834
def _node_wt_cash_equal_835(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_834', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_835'] = _node_wt_cash_equal_835
def _node_wt_cash_equal_836(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_835', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_836'] = _node_wt_cash_equal_836
def _node_asset_TECL_837(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TECL': 1.0}
rt.NODE_REGISTRY['_node_asset_TECL_837'] = _node_asset_TECL_837
def _node_asset_SOXL_838(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_838'] = _node_asset_SOXL_838
def _node_asset_SPXL_839(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SPXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SPXL_839'] = _node_asset_SPXL_839
def _node_asset_TECL_840(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TECL': 1.0}
rt.NODE_REGISTRY['_node_asset_TECL_840'] = _node_asset_TECL_840
def _node_asset_SOXL_841(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SOXL': 1.0}
rt.NODE_REGISTRY['_node_asset_SOXL_841'] = _node_asset_SOXL_841
def _node_asset_SVIX_842(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SVIX': 1.0}
rt.NODE_REGISTRY['_node_asset_SVIX_842'] = _node_asset_SVIX_842
def _node_filter_843(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['TECL'], 10), rt.call_node('_node_asset_TECL_840', prices)), (rt.relative_strength_index(prices['SOXL'], 10), rt.call_node('_node_asset_SOXL_841', prices)), (rt.relative_strength_index(prices['SVIX'], 10), rt.call_node('_node_asset_SVIX_842', prices))], 'bottom', int('1'))
rt.NODE_REGISTRY['_node_filter_843'] = _node_filter_843
def _node_wt_cash_equal_844(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_843', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_844'] = _node_wt_cash_equal_844
def _node_asset_SQQQ_845(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'SQQQ': 1.0}
rt.NODE_REGISTRY['_node_asset_SQQQ_845'] = _node_asset_SQQQ_845
def _node_asset_TLT_846(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'TLT': 1.0}
rt.NODE_REGISTRY['_node_asset_TLT_846'] = _node_asset_TLT_846
def _node_filter_847(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.select_filter([(rt.relative_strength_index(prices['SQQQ'], 10), rt.call_node('_node_asset_SQQQ_845', prices)), (rt.relative_strength_index(prices['TLT'], 10), rt.call_node('_node_asset_TLT_846', prices))], 'top', int('1'))
rt.NODE_REGISTRY['_node_filter_847'] = _node_filter_847
def _node_wt_cash_equal_848(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_filter_847', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_848'] = _node_wt_cash_equal_848
def _node_if_849(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLK'], 10) > rt.relative_strength_index(prices['KMLM'], 10):
return rt.call_node('_node_wt_cash_equal_844', prices)
else:
return rt.call_node('_node_wt_cash_equal_848', prices)
rt.NODE_REGISTRY['_node_if_849'] = _node_if_849
def _node_wt_cash_equal_850(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_849', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_850'] = _node_wt_cash_equal_850
def _node_wt_cash_equal_851(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_850', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_851'] = _node_wt_cash_equal_851
def _node_wt_cash_equal_852(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_851', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_852'] = _node_wt_cash_equal_852
def _node_if_853(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPXL'], 10) < 30.0:
return rt.call_node('_node_asset_SPXL_839', prices)
else:
return rt.call_node('_node_wt_cash_equal_852', prices)
rt.NODE_REGISTRY['_node_if_853'] = _node_if_853
def _node_wt_cash_equal_854(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_853', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_854'] = _node_wt_cash_equal_854
def _node_if_855(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SOXL'], 10) < 30.0:
return rt.call_node('_node_asset_SOXL_838', prices)
else:
return rt.call_node('_node_wt_cash_equal_854', prices)
rt.NODE_REGISTRY['_node_if_855'] = _node_if_855
def _node_wt_cash_equal_856(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_855', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_856'] = _node_wt_cash_equal_856
def _node_if_857(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) < 30.0:
return rt.call_node('_node_asset_TECL_837', prices)
else:
return rt.call_node('_node_wt_cash_equal_856', prices)
rt.NODE_REGISTRY['_node_if_857'] = _node_if_857
def _node_wt_cash_equal_858(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_857', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_858'] = _node_wt_cash_equal_858
def _node_wt_cash_equal_859(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_858', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_859'] = _node_wt_cash_equal_859
def _node_if_860(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['UVXY'], 21) > 65.0:
return rt.call_node('_node_wt_cash_equal_836', prices)
else:
return rt.call_node('_node_wt_cash_equal_859', prices)
rt.NODE_REGISTRY['_node_if_860'] = _node_if_860
def _node_wt_cash_equal_861(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_860', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_861'] = _node_wt_cash_equal_861
def _node_wt_cash_equal_862(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_861', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_862'] = _node_wt_cash_equal_862
def _node_if_863(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['SPY'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_831', prices)
else:
return rt.call_node('_node_wt_cash_equal_862', prices)
rt.NODE_REGISTRY['_node_if_863'] = _node_if_863
def _node_wt_cash_equal_864(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_863', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_864'] = _node_wt_cash_equal_864
def _node_if_865(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['FAS'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_830', prices)
else:
return rt.call_node('_node_wt_cash_equal_864', prices)
rt.NODE_REGISTRY['_node_if_865'] = _node_if_865
def _node_wt_cash_equal_866(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_865', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_866'] = _node_wt_cash_equal_866
def _node_if_867(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLY'], 10) > 80.0:
return rt.call_node('_node_asset_UVXY_829', prices)
else:
return rt.call_node('_node_wt_cash_equal_866', prices)
rt.NODE_REGISTRY['_node_if_867'] = _node_if_867
def _node_wt_cash_equal_868(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_867', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_868'] = _node_wt_cash_equal_868
def _node_if_869(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TQQQ'], 10) > 79.0:
return rt.call_node('_node_wt_cash_equal_828', prices)
else:
return rt.call_node('_node_wt_cash_equal_868', prices)
rt.NODE_REGISTRY['_node_if_869'] = _node_if_869
def _node_wt_cash_equal_870(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_869', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_870'] = _node_wt_cash_equal_870
def _node_if_871(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['XLP'], 10) > 75.0:
return rt.call_node('_node_asset_UVXY_826', prices)
else:
return rt.call_node('_node_wt_cash_equal_870', prices)
rt.NODE_REGISTRY['_node_if_871'] = _node_if_871
def _node_wt_cash_equal_872(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_871', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_872'] = _node_wt_cash_equal_872
def _node_if_873(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IUSV'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_825', prices)
else:
return rt.call_node('_node_wt_cash_equal_872', prices)
rt.NODE_REGISTRY['_node_if_873'] = _node_if_873
def _node_wt_cash_equal_874(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_873', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_874'] = _node_wt_cash_equal_874
def _node_if_875(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IVW'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_824', prices)
else:
return rt.call_node('_node_wt_cash_equal_874', prices)
rt.NODE_REGISTRY['_node_if_875'] = _node_if_875
def _node_wt_cash_equal_876(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_875', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_876'] = _node_wt_cash_equal_876
def _node_if_877(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['TECL'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_823', prices)
else:
return rt.call_node('_node_wt_cash_equal_876', prices)
rt.NODE_REGISTRY['_node_if_877'] = _node_if_877
def _node_wt_cash_equal_878(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_877', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_878'] = _node_wt_cash_equal_878
def _node_if_879(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VOX'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_822', prices)
else:
return rt.call_node('_node_wt_cash_equal_878', prices)
rt.NODE_REGISTRY['_node_if_879'] = _node_if_879
def _node_wt_cash_equal_880(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_879', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_880'] = _node_wt_cash_equal_880
def _node_if_881(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['VTV'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_821', prices)
else:
return rt.call_node('_node_wt_cash_equal_880', prices)
rt.NODE_REGISTRY['_node_if_881'] = _node_if_881
def _node_wt_cash_equal_882(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_881', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_882'] = _node_wt_cash_equal_882
def _node_if_883(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['QQQE'], 10) > 79.0:
return rt.call_node('_node_asset_UVXY_820', prices)
else:
return rt.call_node('_node_wt_cash_equal_882', prices)
rt.NODE_REGISTRY['_node_if_883'] = _node_if_883
def _node_wt_cash_equal_884(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_883', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_884'] = _node_wt_cash_equal_884
def _node_wt_cash_equal_885(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_884', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_885'] = _node_wt_cash_equal_885
def _node_asset_EDC_886(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_886'] = _node_asset_EDC_886
def _node_asset_BIL_887(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_887'] = _node_asset_BIL_887
def _node_wt_cash_specified_888(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('68') / float(100)), rt.call_node('_node_asset_EDC_886', prices)), ((float(32) / float(100)), rt.call_node('_node_asset_BIL_887', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_888'] = _node_wt_cash_specified_888
def _node_asset_EDC_889(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_889'] = _node_asset_EDC_889
def _node_asset_EDZ_890(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_890'] = _node_asset_EDZ_890
def _node_if_891(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IEI'], 10) > rt.relative_strength_index(prices['IWM'], 15):
return rt.call_node('_node_asset_EDC_889', prices)
else:
return rt.call_node('_node_asset_EDZ_890', prices)
rt.NODE_REGISTRY['_node_if_891'] = _node_if_891
def _node_wt_cash_equal_892(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_891', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_892'] = _node_wt_cash_equal_892
def _node_asset_EDC_893(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_893'] = _node_asset_EDC_893
def _node_asset_EDZ_894(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_894'] = _node_asset_EDZ_894
def _node_if_895(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 15) > rt.relative_strength_index(prices['EEM'], 15):
return rt.call_node('_node_asset_EDC_893', prices)
else:
return rt.call_node('_node_asset_EDZ_894', prices)
rt.NODE_REGISTRY['_node_if_895'] = _node_if_895
def _node_wt_cash_equal_896(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_895', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_896'] = _node_wt_cash_equal_896
def _node_asset_EDC_897(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_897'] = _node_asset_EDC_897
def _node_asset_EDZ_898(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_898'] = _node_asset_EDZ_898
def _node_if_899(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 10) > rt.relative_strength_index(prices['SPY'], 10):
return rt.call_node('_node_asset_EDC_897', prices)
else:
return rt.call_node('_node_asset_EDZ_898', prices)
rt.NODE_REGISTRY['_node_if_899'] = _node_if_899
def _node_wt_cash_equal_900(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_899', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_900'] = _node_wt_cash_equal_900
def _node_combine_equal_901(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_896', prices), rt.call_node('_node_wt_cash_equal_900', prices)])
rt.NODE_REGISTRY['_node_combine_equal_901'] = _node_combine_equal_901
def _node_if_902(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['EEM']) > rt.moving_average_price(prices['EEM'], 200):
return rt.call_node('_node_wt_cash_equal_892', prices)
else:
return rt.call_node('_node_combine_equal_901', prices)
rt.NODE_REGISTRY['_node_if_902'] = _node_if_902
def _node_wt_cash_equal_903(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_902', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_903'] = _node_wt_cash_equal_903
def _node_asset_EDC_904(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_904'] = _node_asset_EDC_904
def _node_asset_EDZ_905(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_905'] = _node_asset_EDZ_905
def _node_if_906(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 10) > rt.relative_strength_index(prices['SPY'], 10):
return rt.call_node('_node_asset_EDC_904', prices)
else:
return rt.call_node('_node_asset_EDZ_905', prices)
rt.NODE_REGISTRY['_node_if_906'] = _node_if_906
def _node_wt_cash_equal_907(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_906', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_907'] = _node_wt_cash_equal_907
def _node_if_908(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SHV']) > rt.moving_average_price(prices['SHV'], 50):
return rt.call_node('_node_wt_cash_equal_903', prices)
else:
return rt.call_node('_node_wt_cash_equal_907', prices)
rt.NODE_REGISTRY['_node_if_908'] = _node_if_908
def _node_wt_cash_equal_909(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_908', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_909'] = _node_wt_cash_equal_909
def _node_if_910(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['EEM'], 10) < 25.0:
return rt.call_node('_node_wt_cash_specified_888', prices)
else:
return rt.call_node('_node_wt_cash_equal_909', prices)
rt.NODE_REGISTRY['_node_if_910'] = _node_if_910
def _node_wt_cash_equal_911(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_910', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_911'] = _node_wt_cash_equal_911
def _node_wt_cash_equal_912(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_911', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_912'] = _node_wt_cash_equal_912
def _node_asset_EDC_913(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDC': 1.0}
rt.NODE_REGISTRY['_node_asset_EDC_913'] = _node_asset_EDC_913
def _node_asset_BIL_914(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_914'] = _node_asset_BIL_914
def _node_wt_cash_specified_915(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('68') / float(100)), rt.call_node('_node_asset_EDC_913', prices)), ((float(32) / float(100)), rt.call_node('_node_asset_BIL_914', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_915'] = _node_wt_cash_specified_915
def _node_asset_EEM_916(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EEM': 1.0}
rt.NODE_REGISTRY['_node_asset_EEM_916'] = _node_asset_EEM_916
def _node_asset_EDZ_917(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_917'] = _node_asset_EDZ_917
def _node_asset_BIL_918(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_918'] = _node_asset_BIL_918
def _node_wt_cash_specified_919(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('33') / float(100)), rt.call_node('_node_asset_EDZ_917', prices)), ((float(67) / float(100)), rt.call_node('_node_asset_BIL_918', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_919'] = _node_wt_cash_specified_919
def _node_if_920(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IEI'], 10) > rt.relative_strength_index(prices['IWM'], 15):
return rt.call_node('_node_asset_EEM_916', prices)
else:
return rt.call_node('_node_wt_cash_specified_919', prices)
rt.NODE_REGISTRY['_node_if_920'] = _node_if_920
def _node_wt_cash_equal_921(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_920', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_921'] = _node_wt_cash_equal_921
def _node_asset_EEM_922(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EEM': 1.0}
rt.NODE_REGISTRY['_node_asset_EEM_922'] = _node_asset_EEM_922
# region imports
from AlgorithmImports import *
# endregion
from typing import Dict, Sequence
import strategy_runtime as rt
def _node_asset_EDZ_923(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_923'] = _node_asset_EDZ_923
def _node_asset_BIL_924(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_924'] = _node_asset_BIL_924
def _node_wt_cash_specified_925(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('33') / float(100)), rt.call_node('_node_asset_EDZ_923', prices)), ((float(67) / float(100)), rt.call_node('_node_asset_BIL_924', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_925'] = _node_wt_cash_specified_925
def _node_if_926(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 15) > rt.relative_strength_index(prices['EEM'], 15):
return rt.call_node('_node_asset_EEM_922', prices)
else:
return rt.call_node('_node_wt_cash_specified_925', prices)
rt.NODE_REGISTRY['_node_if_926'] = _node_if_926
def _node_wt_cash_equal_927(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_926', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_927'] = _node_wt_cash_equal_927
def _node_asset_EEM_928(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EEM': 1.0}
rt.NODE_REGISTRY['_node_asset_EEM_928'] = _node_asset_EEM_928
def _node_asset_EDZ_929(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_929'] = _node_asset_EDZ_929
def _node_asset_BIL_930(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_930'] = _node_asset_BIL_930
def _node_wt_cash_specified_931(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('33') / float(100)), rt.call_node('_node_asset_EDZ_929', prices)), ((float(67) / float(100)), rt.call_node('_node_asset_BIL_930', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_931'] = _node_wt_cash_specified_931
def _node_if_932(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 10) > rt.relative_strength_index(prices['SPY'], 10):
return rt.call_node('_node_asset_EEM_928', prices)
else:
return rt.call_node('_node_wt_cash_specified_931', prices)
rt.NODE_REGISTRY['_node_if_932'] = _node_if_932
def _node_wt_cash_equal_933(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_932', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_933'] = _node_wt_cash_equal_933
def _node_combine_equal_934(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_927', prices), rt.call_node('_node_wt_cash_equal_933', prices)])
rt.NODE_REGISTRY['_node_combine_equal_934'] = _node_combine_equal_934
def _node_if_935(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['EEM']) > rt.moving_average_price(prices['EEM'], 200):
return rt.call_node('_node_wt_cash_equal_921', prices)
else:
return rt.call_node('_node_combine_equal_934', prices)
rt.NODE_REGISTRY['_node_if_935'] = _node_if_935
def _node_wt_cash_equal_936(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_935', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_936'] = _node_wt_cash_equal_936
def _node_asset_EEM_937(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EEM': 1.0}
rt.NODE_REGISTRY['_node_asset_EEM_937'] = _node_asset_EEM_937
def _node_asset_EDZ_938(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'EDZ': 1.0}
rt.NODE_REGISTRY['_node_asset_EDZ_938'] = _node_asset_EDZ_938
def _node_asset_BIL_939(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return {'BIL': 1.0}
rt.NODE_REGISTRY['_node_asset_BIL_939'] = _node_asset_BIL_939
def _node_wt_cash_specified_940(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_weighted([((float('33') / float(100)), rt.call_node('_node_asset_EDZ_938', prices)), ((float(67) / float(100)), rt.call_node('_node_asset_BIL_939', prices))])
rt.NODE_REGISTRY['_node_wt_cash_specified_940'] = _node_wt_cash_specified_940
def _node_if_941(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['IGIB'], 10) > rt.relative_strength_index(prices['SPY'], 10):
return rt.call_node('_node_asset_EEM_937', prices)
else:
return rt.call_node('_node_wt_cash_specified_940', prices)
rt.NODE_REGISTRY['_node_if_941'] = _node_if_941
def _node_wt_cash_equal_942(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_941', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_942'] = _node_wt_cash_equal_942
def _node_if_943(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SHV']) > rt.moving_average_price(prices['SHV'], 50):
return rt.call_node('_node_wt_cash_equal_936', prices)
else:
return rt.call_node('_node_wt_cash_equal_942', prices)
rt.NODE_REGISTRY['_node_if_943'] = _node_if_943
def _node_wt_cash_equal_944(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_943', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_944'] = _node_wt_cash_equal_944
def _node_if_945(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.relative_strength_index(prices['EEM'], 10) < 25.0:
return rt.call_node('_node_wt_cash_specified_915', prices)
else:
return rt.call_node('_node_wt_cash_equal_944', prices)
rt.NODE_REGISTRY['_node_if_945'] = _node_if_945
def _node_wt_cash_equal_946(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_945', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_946'] = _node_wt_cash_equal_946
def _node_wt_cash_equal_947(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_946', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_947'] = _node_wt_cash_equal_947
def _node_if_948(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
if rt.current_price(prices['SPY']) > rt.moving_average_price(prices['SPY'], 200):
return rt.call_node('_node_wt_cash_equal_912', prices)
else:
return rt.call_node('_node_wt_cash_equal_947', prices)
rt.NODE_REGISTRY['_node_if_948'] = _node_if_948
def _node_wt_cash_equal_949(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_if_948', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_949'] = _node_wt_cash_equal_949
def _node_wt_cash_equal_950(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_949', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_950'] = _node_wt_cash_equal_950
def _node_wt_cash_equal_951(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_819', prices), rt.call_node('_node_wt_cash_equal_885', prices), rt.call_node('_node_wt_cash_equal_950', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_951'] = _node_wt_cash_equal_951
def _node_wt_cash_equal_952(prices: Dict[str, Sequence[float]]) -> Dict[str, float]:
return rt.combine_equal([rt.call_node('_node_wt_cash_equal_331', prices), rt.call_node('_node_wt_cash_equal_661', prices), rt.call_node('_node_wt_cash_equal_951', prices)])
rt.NODE_REGISTRY['_node_wt_cash_equal_952'] = _node_wt_cash_equal_952