alphapoint

package
v0.0.0-...-5388330 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2019 License: MIT Imports: 15 Imported by: 0

README

GoCryptoTrader package Alphapoint

Build Status Software License GoDoc Coverage Status Go Report Card

This alphapoint package is part of the GoCryptoTrader codebase.

This is still in active development

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

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

Alphapoint Exchange

How to enable
  • Not currently configurable
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:

1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccountInfo

type AccountInfo struct {
	Currencies []struct {
		Name    string `json:"name"`
		Balance int    `json:"balance"`
		Hold    int    `json:"hold"`
	} `json:"currencies"`
	ProductPairs []struct {
		ProductPairName string `json:"productPairName"`
		ProductPairCode int    `json:"productPairCode"`
		TradeCount      int    `json:"tradeCount"`
		TradeVolume     int    `json:"tradeVolume"`
	} `json:"productPairs"`
	IsAccepted   bool   `json:"isAccepted"`
	RejectReason string `json:"rejectReason"`
}

AccountInfo holds your current account information like balances, trade count and volume

type Alphapoint

type Alphapoint struct {
	exchange.Base
	WebsocketConn *websocket.Conn
}

Alphapoint is the overarching type across the alphapoint package

func (*Alphapoint) AuthenticateWebsocket

func (a *Alphapoint) AuthenticateWebsocket() error

AuthenticateWebsocket sends an authentication message to the websocket

func (*Alphapoint) CancelAllExistingOrders

func (a *Alphapoint) CancelAllExistingOrders(omsid string) error

CancelAllExistingOrders cancels all open orders by symbol symbol - Instrument code (ex: “BTCUSD”)

func (*Alphapoint) CancelAllOrders

func (a *Alphapoint) CancelAllOrders(orderCancellation *exchange.OrderCancellation) (exchange.CancelAllOrdersResponse, error)

CancelAllOrders cancels all orders for a given account

func (*Alphapoint) CancelExistingOrder

func (a *Alphapoint) CancelExistingOrder(orderID int64, omsid string) (int64, error)

CancelExistingOrder cancels an order that has not been executed. symbol - Instrument code (ex: “BTCUSD”) OrderId - Order id (ex: 1000)

func (*Alphapoint) CancelOrder

func (a *Alphapoint) CancelOrder(order *exchange.OrderCancellation) error

CancelOrder cancels an order by its corresponding ID number

func (*Alphapoint) CreateAccount

func (a *Alphapoint) CreateAccount(firstName, lastName, email, phone, password string) error

CreateAccount creates a new account on alphapoint FirstName - First name LastName - Last name Email - Email address Phone - Phone number (ex: “+12223334444”) Password - Minimum 8 characters

func (*Alphapoint) CreateOrder

func (a *Alphapoint) CreateOrder(symbol, side, orderType string, quantity, price float64) (int64, error)

CreateOrder creates a market or limit order symbol - Instrument code (ex: “BTCUSD”) side - “buy” or “sell” orderType - “1” for market orders, “0” for limit orders quantity - Quantity price - Price in USD

func (*Alphapoint) GetAccountInfo

func (a *Alphapoint) GetAccountInfo() (exchange.AccountInfo, error)

GetAccountInfo retrieves balances for all enabled currencies on the Alphapoint exchange

func (*Alphapoint) GetAccountInformation

func (a *Alphapoint) GetAccountInformation() (AccountInfo, error)

GetAccountInformation returns account info

func (*Alphapoint) GetAccountTrades

func (a *Alphapoint) GetAccountTrades(currencyPair string, startIndex, count int) (Trades, error)

GetAccountTrades returns the trades executed on the account. CurrencyPair - Instrument code (ex: “BTCUSD”) StartIndex - Starting index, if less than 0 then start from the beginning Count - Returns last trade, (Default: 30)

func (*Alphapoint) GetActiveOrders

func (a *Alphapoint) GetActiveOrders(getOrdersRequest *exchange.GetOrdersRequest) ([]exchange.OrderDetail, error)

GetActiveOrders retrieves any orders that are active/open This function is not concurrency safe due to orderSide/orderType maps

func (*Alphapoint) GetDepositAddress

func (a *Alphapoint) GetDepositAddress(cryptocurrency currency.Code, _ string) (string, error)

GetDepositAddress returns a deposit address for a specified currency

func (*Alphapoint) GetDepositAddresses

func (a *Alphapoint) GetDepositAddresses() ([]DepositAddresses, error)

GetDepositAddresses generates a deposit address

func (*Alphapoint) GetExchangeHistory

func (a *Alphapoint) GetExchangeHistory(p currency.Pair, assetType string) ([]exchange.TradeHistory, error)

GetExchangeHistory returns historic trade data since exchange opening.

func (*Alphapoint) GetFeeByType

func (a *Alphapoint) GetFeeByType(feeBuilder *exchange.FeeBuilder) (float64, error)

GetFeeByType returns an estimate of fee based on type of transaction

func (*Alphapoint) GetFundingHistory

func (a *Alphapoint) GetFundingHistory() ([]exchange.FundHistory, error)

GetFundingHistory returns funding history, deposits and withdrawals

func (*Alphapoint) GetOrderFee

func (a *Alphapoint) GetOrderFee(symbol, side string, quantity, price float64) (float64, error)

GetOrderFee returns a fee associated with an order symbol - Instrument code (ex: “BTCUSD”) side - “buy” or “sell” quantity - Quantity price - Price in USD

func (*Alphapoint) GetOrderHistory

func (a *Alphapoint) GetOrderHistory(getOrdersRequest *exchange.GetOrdersRequest) ([]exchange.OrderDetail, error)

GetOrderHistory retrieves account order information Can Limit response to specific order status This function is not concurrency safe due to orderSide/orderType maps

func (*Alphapoint) GetOrderInfo

func (a *Alphapoint) GetOrderInfo(orderID string) (float64, error)

GetOrderInfo returns information on a current open order

func (*Alphapoint) GetOrderbook

func (a *Alphapoint) GetOrderbook(currencyPair string) (Orderbook, error)

GetOrderbook fetches the current orderbook for a given currency pair CurrencyPair - trade pair (ex: “BTCUSD”)

func (*Alphapoint) GetOrderbookEx

func (a *Alphapoint) GetOrderbookEx(p currency.Pair, assetType string) (orderbook.Base, error)

GetOrderbookEx returns the orderbook for a currency pair

func (*Alphapoint) GetOrders

func (a *Alphapoint) GetOrders() ([]OpenOrders, error)

GetOrders returns all current open orders

func (*Alphapoint) GetProductPairs

func (a *Alphapoint) GetProductPairs() (ProductPairs, error)

GetProductPairs gets the currency pairs currently traded on alphapoint

func (*Alphapoint) GetProducts

func (a *Alphapoint) GetProducts() (Products, error)

GetProducts gets the currency products currently supported on alphapoint

func (*Alphapoint) GetSubscriptions

func (a *Alphapoint) GetSubscriptions() ([]wshandler.WebsocketChannelSubscription, error)

GetSubscriptions returns a copied list of subscriptions

func (*Alphapoint) GetTicker

func (a *Alphapoint) GetTicker(currencyPair string) (Ticker, error)

GetTicker returns current ticker information from Alphapoint for a selected currency pair ie "BTCUSD"

func (*Alphapoint) GetTickerPrice

func (a *Alphapoint) GetTickerPrice(p currency.Pair, assetType string) (ticker.Price, error)

GetTickerPrice returns the ticker for a currency pair

func (*Alphapoint) GetTrades

func (a *Alphapoint) GetTrades(currencyPair string, startIndex, count int) (Trades, error)

GetTrades fetches past trades for the given currency pair currencyPair: ie "BTCUSD" StartIndex: specifies the index to begin from, -1 being the first trade on AlphaPoint Exchange. To begin from the most recent trade, set startIndex to 0 (default: 0) Count: specifies the number of trades to return (default: 10)

func (*Alphapoint) GetTradesByDate

func (a *Alphapoint) GetTradesByDate(currencyPair string, startDate, endDate int64) (Trades, error)

GetTradesByDate gets trades by date CurrencyPair - instrument code (ex: “BTCUSD”) StartDate - specifies the starting time in epoch time, type is long EndDate - specifies the end time in epoch time, type is long

func (*Alphapoint) GetUserInfo

func (a *Alphapoint) GetUserInfo() (UserInfo, error)

GetUserInfo returns current account user information

func (*Alphapoint) GetWebsocket

func (a *Alphapoint) GetWebsocket() (*wshandler.Websocket, error)

GetWebsocket returns a pointer to the exchange websocket

func (*Alphapoint) ModifyExistingOrder

func (a *Alphapoint) ModifyExistingOrder(symbol string, orderID, action int64) (int64, error)

ModifyExistingOrder modifies and existing Order OrderId - tracked order id number symbol - Instrument code (ex: “BTCUSD”) modifyAction - “0” or “1” “0” means "Move to top", which will modify the order price to the top of the book. A buy order will be modified to the highest bid and a sell order will be modified to the lowest ask price. “1” means "Execute now", which will convert a limit order into a market order.

func (*Alphapoint) ModifyOrder

func (a *Alphapoint) ModifyOrder(_ *exchange.ModifyOrder) (string, error)

ModifyOrder will allow of changing orderbook placement and limit to market conversion

func (*Alphapoint) SendAuthenticatedHTTPRequest

func (a *Alphapoint) SendAuthenticatedHTTPRequest(method, path string, data map[string]interface{}, result interface{}) error

SendAuthenticatedHTTPRequest sends an authenticated request

func (*Alphapoint) SendHTTPRequest

func (a *Alphapoint) SendHTTPRequest(method, path string, data map[string]interface{}, result interface{}) error

SendHTTPRequest sends an unauthenticated HTTP request

func (*Alphapoint) SetDefaults

func (a *Alphapoint) SetDefaults()

SetDefaults sets current default settings

func (*Alphapoint) SetUserInfo

func (a *Alphapoint) SetUserInfo(firstName, lastName, cell2FACountryCode, cell2FAValue string, useAuthy2FA, use2FAForWithdraw bool) (UserInfoSet, error)

SetUserInfo changes user name and/or 2FA settings userInfoKVP - An array of key value pairs FirstName - First name LastName - Last name UseAuthy2FA - “true” or “false” toggle Authy app Cell2FACountryCode - Cell country code (ex: 1), required for Authentication Cell2FAValue - Cell phone number, required for Authentication Use2FAForWithdraw - “true” or “false” set to true for using 2FA for withdrawals

func (*Alphapoint) SubmitOrder

func (a *Alphapoint) SubmitOrder(p currency.Pair, side exchange.OrderSide, orderType exchange.OrderType, amount, price float64, _ string) (exchange.SubmitOrderResponse, error)

SubmitOrder submits a new order and returns a true value when successfully submitted

func (*Alphapoint) SubscribeToWebsocketChannels

func (a *Alphapoint) SubscribeToWebsocketChannels(channels []wshandler.WebsocketChannelSubscription) error

SubscribeToWebsocketChannels appends to ChannelsToSubscribe which lets websocket.manageSubscriptions handle subscribing

func (*Alphapoint) UnsubscribeToWebsocketChannels

func (a *Alphapoint) UnsubscribeToWebsocketChannels(channels []wshandler.WebsocketChannelSubscription) error

UnsubscribeToWebsocketChannels removes from ChannelsToSubscribe which lets websocket.manageSubscriptions handle unsubscribing

func (*Alphapoint) UpdateOrderbook

func (a *Alphapoint) UpdateOrderbook(p currency.Pair, assetType string) (orderbook.Base, error)

UpdateOrderbook updates and returns the orderbook for a currency pair

func (*Alphapoint) UpdateTicker

func (a *Alphapoint) UpdateTicker(p currency.Pair, assetType string) (ticker.Price, error)

UpdateTicker updates and returns the ticker for a currency pair

func (*Alphapoint) WebsocketClient

func (a *Alphapoint) WebsocketClient()

WebsocketClient starts a new webstocket connection

func (*Alphapoint) WithdrawCoins

func (a *Alphapoint) WithdrawCoins(symbol, product, address string, amount float64) error

WithdrawCoins withdraws a coin to a specific address symbol - Instrument name (ex: “BTCUSD”) product - Currency name (ex: “BTC”) amount - Amount (ex: “.011”) address - Withdraw address

func (*Alphapoint) WithdrawCryptocurrencyFunds

func (a *Alphapoint) WithdrawCryptocurrencyFunds(withdrawRequest *exchange.WithdrawRequest) (string, error)

WithdrawCryptocurrencyFunds returns a withdrawal ID when a withdrawal is submitted

func (*Alphapoint) WithdrawFiatFunds

func (a *Alphapoint) WithdrawFiatFunds(withdrawRequest *exchange.WithdrawRequest) (string, error)

WithdrawFiatFunds returns a withdrawal ID when a withdrawal is submitted

func (*Alphapoint) WithdrawFiatFundsToInternationalBank

func (a *Alphapoint) WithdrawFiatFundsToInternationalBank(withdrawRequest *exchange.WithdrawRequest) (string, error)

WithdrawFiatFundsToInternationalBank returns a withdrawal ID when a withdrawal is submitted

type DepositAddresses

type DepositAddresses struct {
	Name           string `json:"name"`
	DepositAddress string `json:"depositAddress"`
}

DepositAddresses holds information about the generated deposit address for a specific currency

type OpenOrders

type OpenOrders struct {
	Instrument string  `json:"ins"`
	OpenOrders []Order `json:"openOrders"`
}

OpenOrders holds the full range of orders by instrument

type Order

type Order struct {
	ServerOrderID int     `json:"ServerOrderId"`
	AccountID     int     `json:"AccountId"`
	Price         float64 `json:"Price"`
	QtyTotal      float64 `json:"QtyTotal"`
	QtyRemaining  float64 `json:"QtyRemaining"`
	ReceiveTime   int64   `json:"ReceiveTime"`
	Side          int64   `json:"Side"`
	State         int     `json:"orderState"`
	OrderType     int     `json:"orderType"`
}

Order is a generalised order type

type OrderInfo

type OrderInfo struct {
	OpenOrders   []OpenOrders `json:"openOrdersInfo"`
	IsAccepted   bool         `json:"isAccepted"`
	DateTimeUTC  int64        `json:"dateTimeUtc"`
	RejectReason string       `json:"rejectReason"`
}

OrderInfo holds all open orders across the entire range of all instruments

type Orderbook

type Orderbook struct {
	Bids         []OrderbookEntry `json:"bids"`
	Asks         []OrderbookEntry `json:"asks"`
	IsAccepted   bool             `json:"isAccepted"`
	RejectReason string           `json:"rejectReason"`
}

Orderbook holds the total Bids and Asks on the exchange

type OrderbookEntry

type OrderbookEntry struct {
	Quantity float64 `json:"qty"`
	Price    float64 `json:"px"`
}

OrderbookEntry is a sub-type that takes has the individual quantity and price

type Product

type Product struct {
	Name          string `json:"name"`
	IsDigital     bool   `json:"isDigital"`
	ProductCode   int    `json:"productCode"`
	DecimalPlaces int    `json:"decimalPlaces"`
	FullName      string `json:"fullName"`
}

Product holds the a single currency product that is supported

type ProductPair

type ProductPair struct {
	Name                  string `json:"name"`
	Productpaircode       int    `json:"productPairCode"`
	Product1Label         string `json:"product1Label"`
	Product1Decimalplaces int    `json:"product1DecimalPlaces"`
	Product2Label         string `json:"product2Label"`
	Product2Decimalplaces int    `json:"product2DecimalPlaces"`
}

ProductPair holds the individual product pairs that are currently traded

type ProductPairs

type ProductPairs struct {
	ProductPairs []ProductPair `json:"productPairs"`
	IsAccepted   bool          `json:"isAccepted"`
	RejectReason string        `json:"rejectReason"`
}

ProductPairs holds the full range of product pairs that the exchange can trade between

type Products

type Products struct {
	Products     []Product `json:"products"`
	IsAccepted   bool      `json:"isAccepted"`
	RejectReason string    `json:"rejectReason"`
}

Products holds the full range of supported currency products

type Response

type Response struct {
	IsAccepted    bool    `json:"isAccepted"`
	RejectReason  string  `json:"rejectReason"`
	Fee           float64 `json:"fee"`
	FeeProduct    string  `json:"feeProduct"`
	CancelOrderID int64   `json:"cancelOrderId"`
	ServerOrderID int64   `json:"serverOrderId"`
	DateTimeUTC   float64 `json:"dateTimeUtc"`
	ModifyOrderID int64   `json:"modifyOrderId"`
	Addresses     []DepositAddresses
}

Response contains general responses from the exchange

type Ticker

type Ticker struct {
	High               float64 `json:"high"`
	Last               float64 `json:"last"`
	Bid                float64 `json:"bid"`
	Volume             float64 `json:"volume"`
	Low                float64 `json:"low"`
	Ask                float64 `json:"ask"`
	Total24HrQtyTraded float64 `json:"Total24HrQtyTraded"`
	Total24HrNumTrades float64 `json:"Total24HrNumTrades"`
	SellOrderCount     float64 `json:"sellOrderCount"`
	BuyOrderCount      float64 `json:"buyOrderCount"`
	NumOfCreateOrders  float64 `json:"numOfCreateOrders"`
	IsAccepted         bool    `json:"isAccepted"`
	RejectReason       string  `json:"rejectReason"`
}

Ticker holds ticker information

type Trade

type Trade struct {
	TID                   int64   `json:"tid"`
	Price                 float64 `json:"px"`
	Quantity              float64 `json:"qty"`
	Unixtime              int     `json:"unixtime"`
	UTCTicks              int64   `json:"utcticks"`
	IncomingOrderSide     int     `json:"incomingOrderSide"`
	IncomingServerOrderID int     `json:"incomingServerOrderId"`
	BookServerOrderID     int     `json:"bookServerOrderId"`
}

Trade is a sub-type which holds the singular trade that occurred in the past

type Trades

type Trades struct {
	IsAccepted   bool    `json:"isAccepted"`
	RejectReason string  `json:"rejectReason"`
	DateTimeUTC  int64   `json:"dateTimeUtc"`
	Instrument   string  `json:"ins"`
	StartIndex   int     `json:"startIndex"`
	Count        int     `json:"count"`
	StartDate    int64   `json:"startDate"`
	EndDate      int64   `json:"endDate"`
	Trades       []Trade `json:"trades"`
}

Trades holds trade information

type UserInfo

type UserInfo struct {
	UserInforKVPs []UserInfoKVP `json:"userInfoKVP"`
	IsAccepted    bool          `json:"isAccepted"`
	RejectReason  string        `json:"rejectReason"`
}

UserInfo holds current user information associated with the apiKey details

type UserInfoKVP

type UserInfoKVP struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

UserInfoKVP is a sub-type that holds key value pairs

type UserInfoSet

type UserInfoSet struct {
	IsAccepted        string `json:"isAccepted"`
	RejectReason      string `json:"rejectReason"`
	RequireAuthy2FA   bool   `json:"requireAuthy2FA"`
	Val2FaRequestCode string `json:"val2FaRequestCode"`
}

UserInfoSet is the returned response from set user information request

type WebsocketTicker

type WebsocketTicker struct {
	MessageType             string  `json:"messageType"`
	ProductPair             string  `json:"prodPair"`
	High                    float64 `json:"high"`
	Low                     float64 `json:"low"`
	Last                    float64 `json:"last"`
	Volume                  float64 `json:"volume"`
	Volume24Hrs             float64 `json:"volume24hrs"`
	Volume24HrsProduct2     float64 `json:"volume24hrsProduct2"`
	Total24HrQtyTraded      float64 `json:"Total24HrQtyTraded"`
	Total24HrProduct2Traded float64 `json:"Total24HrProduct2Traded"`
	Total24HrNumTrades      float64 `json:"Total24HrNumTrades"`
	Bid                     float64 `json:"bid"`
	Ask                     float64 `json:"ask"`
	BuyOrderCount           int     `json:"buyOrderCount"`
	SellOrderCount          int     `json:"sellOrderCount"`
}

WebsocketTicker holds current up to date ticker information

Jump to

Keyboard shortcuts

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