rsi

package
v0.0.0-...-ae86ed1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2022 License: MIT Imports: 10 Imported by: 0

README

GoCryptoTrader Backtester: Rsi package

Build Status Software License GoDoc Coverage Status Go Report Card

This rsi package is part of the GoCryptoTrader codebase.

This is still in active development

You can track ideas, planned features and what's in progress on this Trello board: https://trello.com/b/ZAhMhpOy/gocryptotrader.

Join our slack to discuss all things related to GoCryptoTrader! GoCryptoTrader Slack

Rsi package overview

The RSI strategy utilises the gct-ta RSI package to analyse market signals and output buy or sell signals based on the RSI output. This strategy does not support SimultaneousSignalProcessing aka use-simultaneous-signal-processing. This strategy does support strategy customisation in the following ways:

Field Description Example
rsi-high The upper bounds of RSI that when met, will trigger a Sell signal 70
rsi-low The lower bounds of RSI that when met, will trigger a Buy signal 30
rsi-period The consecutive candle periods used in order to generate a value. All values less than this number cannot output a buy or sell signal 14
Please click GoDocs chevron above to view current GoDoc information for this package

Contribution

Please feel free to submit any pull requests or suggest any desired features to be added.

When submitting a PR, please abide by our coding guidelines:

  • Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Code must adhere to our coding style.
  • Pull requests need to be based on and opened against the master branch.

Donations

If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:

bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc

Documentation

Index

Constants

View Source
const (
	// Name is the strategy name
	Name = "rsi"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Strategy

type Strategy struct {
	base.Strategy
	// contains filtered or unexported fields
}

Strategy is an implementation of the Handler interface

func (*Strategy) Description

func (s *Strategy) Description() string

Description provides a nice overview of the strategy be it definition of terms or to highlight its purpose

func (*Strategy) Name

func (s *Strategy) Name() string

Name returns the name of the strategy

func (*Strategy) OnSignal

func (s *Strategy) OnSignal(d data.Handler, _ portfolio.Handler) (signal.Event, error)

OnSignal handles a data event and returns what action the strategy believes should occur For rsi, this means returning a buy signal when rsi is at or below a certain level, and a sell signal when it is at or above a certain level

func (*Strategy) OnSimultaneousSignals

func (s *Strategy) OnSimultaneousSignals(_ []data.Handler, _ portfolio.Handler) ([]signal.Event, error)

OnSimultaneousSignals analyses multiple data points simultaneously, allowing flexibility in allowing a strategy to only place an order for X currency if Y currency's price is Z For rsi, multi-currency signal processing is unsupported for demonstration purposes

func (*Strategy) SetCustomSettings

func (s *Strategy) SetCustomSettings(customSettings map[string]interface{}) error

SetCustomSettings allows a user to modify the RSI limits in their config

func (*Strategy) SetDefaults

func (s *Strategy) SetDefaults()

SetDefaults sets the custom settings to their default values

func (*Strategy) SupportsSimultaneousProcessing

func (s *Strategy) SupportsSimultaneousProcessing() bool

SupportsSimultaneousProcessing highlights whether the strategy can handle multiple currency calculation There is nothing actually stopping this strategy from considering multiple currencies at once but for demonstration purposes, this strategy does not

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL