コード例 #1
0
    def set_datalines(self):
        # Override stat line:
        self.stat_asset = self.data.spread = SpreadConstructor()

        # Spy on reward behaviour:
        self.reward_tracker = CumSumReward()

        self.data.std1 = btind.StdDev(self.datas[0],
                                      period=self.p.time_dim,
                                      safepow=True)
        self.data.std1.plotinfo.plot = False

        self.data.std2 = btind.StdDev(self.datas[1],
                                      period=self.p.time_dim,
                                      safepow=True)
        self.data.std2.plotinfo.plot = False

        self.data.features1 = [
            btind.EMA(self.datas[0], period=period)
            for period in self.p.features_parameters
        ]
        self.data.features2 = [
            btind.EMA(self.datas[1], period=period)
            for period in self.p.features_parameters
        ]

        initial_time_period = np.asarray(
            self.p.features_parameters).max() + self.p.time_dim
        self.data.dim_sma = btind.SimpleMovingAverage(
            self.datas[0], period=initial_time_period)
        self.data.dim_sma.plotinfo.plot = False
コード例 #2
0
 def __init__(self):
     first, second = self.datas[0], self.datas[1]
     beta = btind.SMA(first, period=self.p.period) / btind.SMA(
         second, period=self.p.period)
     spread = first - (beta * second)
     self.lines.signal = (spread - btind.SMA(spread, period=self.p.period)
                          ) / btind.StdDev(spread, period=self.p.period)
コード例 #3
0
ファイル: strategy.py プロジェクト: war3gu/btgym
    def set_datalines(self):

        self.data.spread = btind.SimpleMovingAverage(self.datas[0] - self.datas[1], period=1)
        self.data.spread.plotinfo.subplot = True
        self.data.spread.plotinfo.plotabove = True
        self.data.spread.plotinfo.plotname = list(self.p.asset_names)[0]

        # Override stat line:
        # self.stat_asset = btind.SimpleMovingAverage((self.datas[0] + self.datas[1]) / 2, period=1)
        # self.stat_asset.plotinfo.plot = False

        self.stat_asset = self.data.spread

        self.data.std = btind.StdDev(self.data.spread, period=self.p.time_dim, safepow=True)
        self.data.std.plotinfo.plot = False

        self.data.features = [
            # btind.SimpleMovingAverage(self.data.spread, period=period) for period in self.p.features_parameters
            btind.EMA(self.data.spread, period=period) for period in self.p.features_parameters
        ]
        initial_time_period = np.asarray(self.p.features_parameters).max() + self.p.time_dim
        self.data.dim_sma = btind.SimpleMovingAverage(
            self.datas[0],
            period=initial_time_period
        )
        self.data.dim_sma.plotinfo.plot = False
コード例 #4
0
ファイル: strategy.py プロジェクト: karunarora007/btgym
    def set_datalines(self):
        self.data.high = self.data.low = self.data.close = self.data.open

        self.data.std = btind.StdDev(self.data.open, period=self.p.time_dim, safepow=True)
        self.data.std.plotinfo.plot = False

        self.data.features = [
            btind.SimpleMovingAverage(self.data.open, period=period) for period in self.p.features_parameters
        ]
        initial_time_period = np.asarray(self.p.features_parameters).max() + self.p.time_dim
        self.data.dim_sma = btind.SimpleMovingAverage(
            self.datas[0],
            period=initial_time_period
        )
        self.data.dim_sma.plotinfo.plot = False
コード例 #5
0
ファイル: trend_keltner.py プロジェクト: forlink/fxsignal
    def __init__(self):
        super().__init__()
        # self.ema_short = btind.MovAv.EMA(self.data.close, period=self.p.ema_short_period)
        self.atr = btind.ATR(self.data, period=self.p.atr_period)
        self.stddev = btind.StdDev(self.data.close,
                                   period=self.p.stddev_period)
        self.highest = btind.Highest(self.data.high,
                                     period=self.p.squeeze_period,
                                     plot=False)
        self.lowest = btind.Lowest(self.data.low,
                                   period=self.p.squeeze_period,
                                   plot=False)
        self.sma = btind.MovAv.SMA(self.data.close,
                                   period=self.p.squeeze_period,
                                   plot=False)
        self.mean = ((self.highest + self.lowest) / 2.0 + self.sma) / 2.0
        self.squeeze = btind.MovAv.SMA(
            (self.data.close - self.mean) / self.data.close,
            period=self.p.squeeze_period)

        #    self.macd_fast   = btind.MovAv.EMA(self.data.close, period=self.p.macd_fast_period, plot=False)
        #    self.macd_slow   = btind.MovAv.EMA(self.data.close, period=self.p.macd_slow_period, plot=False)
        #    self.macd        = self.macd_fast - self.macd_slow
        #    self.macd_signal = btind.MovAv.EMA(self.macd, period=self.p.macd_signal_period, plot=False)
        #    self.macd_histogram = self.macd - self.macd_signal
        self.macd = btind.MACDHisto(self.data.close,
                                    period_me1=self.p.macd_fast_period,
                                    period_me2=self.p.macd_slow_period,
                                    period_signal=self.p.macd_signal_period)

        self.macd_ema = btind.MovAv.EMA(self.data.close,
                                        period=self.p.macd_ema_period)
        self.stage = self.Start
        self.main_order = None
        self.stop_order = None
        self.limit_order = None
        self.exit_order = None
        self.main_order_price = None
        self.target1_price = None
        self.size = None
        self.symbol_parameter = SymbolParameter(self.p.symbol,
                                                self.broker.get_cash(),
                                                self.p.max_loss_percent)