Exemplo n.º 1
0
    def forward(self, tensor_price, tensor_volume):
        rocp = tsf.pct_change(tensor_price)

        tensor_volume = torch.clamp(tensor_volume, min=1)
        v_pct_change = tsf.pct_change(tensor_volume)
        v_pct_change_atan = torch.atan(v_pct_change)

        pv = rocp * v_pct_change_atan
        return pv
Exemplo n.º 2
0
 def forward(self, tensor):
     """defalt input is close"""
     returns = tsf.pct_change(tensor, period=1)
     sharp_ratio = tsf.rolling_mean_(returns,
                                     window=self._window) / tsf.rolling_std(
                                         returns, window=self._window)
     return tsf.shift(sharp_ratio, window=self._lag_window).squeeze(-1)
Exemplo n.º 3
0
 def forward(self, tensor):
     tensor_rolling_mean = tsf.rolling_mean_(
         tensor, window=self.timeperiod).squeeze(-1)
     volume_pct_change = tsf.pct_change(tensor_rolling_mean)
     return torch.atan(volume_pct_change)
Exemplo n.º 4
0
 def forward(self, tensor):
     tensor_rolling_mean = tsf.rolling_mean_(
         tensor, window=self.timeperiod).squeeze(-1)
     return tsf.pct_change(tensor_rolling_mean)
Exemplo n.º 5
0
 def forward(self, tensor):
     tensor = torch.clamp(tensor, min=1)
     pct_change = tsf.pct_change(tensor)
     return torch.atan(pct_change)
Exemplo n.º 6
0
 def forward(self, open, close):
     diff = close - open
     output = diff.div(open)
     output_ts = tsf.pct_change(output, period=self._window)
     return output_ts
Exemplo n.º 7
0
 def forward(self, open, close):
     shift_tensor = tsf.shift(close, window=1)
     diff = open - shift_tensor
     output = diff.div(shift_tensor)
     output_ts = tsf.pct_change(output, period=self._window)
     return output_ts
Exemplo n.º 8
0
 def forward(self, tensor):
     return tsf.pct_change(tensor)
Exemplo n.º 9
0
 def forward(self, tensor):
     rsi_ts = talib_func.rsi(tensor, timeperiod=self.timeperiod).squeeze(-1)
     rsi_pct_change = tsf.pct_change(rsi_ts + 100)
     return rsi_pct_change
Exemplo n.º 10
0
 def forward(self, tensor):
     return tsf.pct_change(tensor, period=self._window)
Exemplo n.º 11
0
import featurizer.functors.talib as talib
import featurizer.functions.talib_functions as talib_func
import torch
import numpy as np
import pandas as pd

# fake data
# type=tensor, shape=50x10
open = torch.tensor(np.random.uniform(low=20, high=40, size=(50, 10)))
close = torch.tensor(np.random.uniform(low=20, high=40, size=(50, 10)))
high = torch.tensor(np.random.uniform(low=30, high=50, size=(50, 10)))
low = torch.tensor(np.random.uniform(low=10, high=30, size=(50, 10)))
volume = torch.tensor(np.random.uniform(low=10000, high=50000, size=(50, 10)))
total_turnover = torch.tensor(
    np.random.uniform(low=200000, high=2000000, size=(50, 10)))
returns = tsf.pct_change(close, 1)

# ROCP
func_ROCP = talib.ROCP(timeperiod=1)
feature_ROCP = func_ROCP(close)

# VolumeROCP
func_VROCP = talib.VolumeROCP()
feature_VROCP = func_ROCP(volume)

# MAROCP
func_MAROCP = talib.MAROCP(timeperiod=5)
feature_MAROCP = func_MAROCP(close)

# MARelative
func_MA = talib.MARelative(timeperiod=5)
Exemplo n.º 12
0
 def forward(self, tensor):
     returns = tsf.pct_change(tensor, period=self._window)
     return tsf.shift(returns, window=-self._window)
Exemplo n.º 13
0
 def forward(self, tensor):
     """input is close"""
     tensor = tsf.pct_change(tensor, period=self._window)
     return tsf.shift(tensor, window=self._lag_window)