Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fooeybar/oandav20

Oanda V20 functions
https://github.com/fooeybar/oandav20

currency forex fxtrade mt4 oanda oanda-api-v20 oanda-api-wrapper trading

Last synced: 4 days ago
JSON representation

Oanda V20 functions

Awesome Lists containing this project

README

        

# **OandaV20**

![Oanda](https://img.shields.io/badge/oanda%20api-v20-blue)
![npm](https://img.shields.io/npm/v/oandav20)
![license](https://img.shields.io/badge/license-MIT-green)
Made with ![linux](https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black)

## OandaV20 is a wrapper factory utilizing the [Oanda V20 API](https://developer.oanda.com/rest-live-v20/introduction/)


`npm i oandav20`

`oandav20=require('oandav20')`

`wrappers=oandav20(api,host,datetime)`


To generate an `api` token, log in to the Account Management Portal and select Manage Api Access:
- CA
- [Account Management Portal](https://fxtrade.oanda.ca/account/login)
- [Manage API Access](https://www.oanda.ca/account/tpa/personal_token)
- US
- [Account Management Portal](https://fxtrade.oanda.com/account/login)
- [Manage API Access](https://www.oanda.com/account/tpa/personal_token)

By default the host is set for live accounts, `'api-fxtrade.oanda.com'`, and can be omitted
For practice accounts, input `'api-fxpractice.oanda.com'` as the host.

Datime can either be `'RFC3339'` or `'UNIX'`; by default the datetime is set as `'RFC3339'`.
Please see the Oanda reference: [AcceptDatetimeFormat](https://developer.oanda.com/rest-live-v20/primitives-df/#AcceptDatetimeFormat).

---

- Accounts
- [getAccounts](#getaccounts)
- [getAccountsMeta](#getaccountsmeta)
- [getAccount](#getaccount)
- [getAccountSummary](#getaccountsummary)
- [getAccountInstruments](#getAccountInstruments)
- [getAccountChangesSinceTransaction](#getAccountChangesSinceTransaction)
- [setAccountConfiguration](#setAccountConfiguration)
- Instrument
- [getInstrument](#getInstrument)
- [getOrderBook](#getOrderBook)
- [getPositionBook](#getPositionBook)
- Positions
- [getPositions](#getPositions)
- [getPosition](#getPosition)
- [getOpenPositions](#getOpenPositions)
- [closePosition](#closePosition)
- Transactions
- [getTransactions](#getTransactions)
- [getTransaction](#getTransaction)
- [getTransactionsByIdRange](#getTransactionsByIdRange)
- [getTransactionsSinceId](#getTransactionsSinceId)
- Pricing
- [getInstrumentsPricing](#getInstrumentsPricing)
- Trades
- [getTrades](#getTrades)
- [getOpenTrades](#getOpenTrades)
- [getClosedTrades](#getClosedTrades)
- [getCloseWhenTradeableTrades](#getCloseWhenTradeableTrades)
- [getAllTrades](#getAllTrades)
- [getAllOpenTrades](#getAllOpenTrades)
- [getTrade](#getTrade)
- [closeTrade](#closeTrade)
- [setTradeClientExtensions](#setTradeClientExtensions)
- [setTradeOrders](#setTradeOrders)
- Orders
- [getOrders](#getOrders)
- [getPendingOrders](#getPendingOrders)
- [getFilledOrders](#getFilledOrders)
- [getTriggeredOrders](#getTriggeredOrders)
- [getCancelledOrders](#getCancelledOrders)
- [getAllPendingOrders](#getAllPendingOrders)
- [getAllOrders](#getAllOrders)
- [getOrder](#getOrder)
- [cancelOrder](#cancelOrder)
- [setOrderClientExtensions](#setOrderClientExtensions)
- [createMarketOrder](#createMarketOrder)
- [createLimitOrder](#createLimitOrder)
- [createStopOrder](#createStopOrder)
- [createMarketIfTouchedOrder](#createMarketIfTouchedOrder)
- [createTakeProfitOrder](#createTakeProfitOrder)
- [createStopLossOrder](#createStopLossOrder)
- [createGuaranteedStopLossOrder](#createGuaranteedStopLossOrder)
- [createTrailingStopLossOrder](#createTrailingStopLossOrder)
- [replaceWithMarketOrder](#replaceWithMarketOrder)
- [replaceWithLimitOrder](#replaceWithLimitOrder)
- [replaceWithStopOrder](#replaceWithStopOrder)
- [replaceWithMarketIfTouchedOrder](#replaceWithMarketIfTouchedOrder)
- [replaceWithTakeProfitOrder](#replaceWithTakeProfitOrder)
- [replaceWithStopLossOrder](#replaceWithStopLossOrder)
- [replaceWithGuaranteedStopLossOrder](#replaceWithGuaranteedStopLossOrder)
- [replaceWithTrailingStopLossOrder](#replaceWithTrailingStopLossOrder)

---

## Accounts

Oanda reference: [Account Endpoints](https://developer.oanda.com/rest-live-v20/account-ep/)

### getAccounts

- Get list of accounts
- `getAccounts(callback)`
- Callback data: array `[]`

### getAccountsMeta

- Get summary details of a list of accounts
- `getAccountsMeta(callback)`
- Callback data: array `[]`

### getAccount

- Get full details of a single account
- `getAccount(account,callback)`
- Callback data: object `{}`

### getAccountSummary

- Get summary details of a single account
- `getAccountSummary(account,callback)`
- Callback data: object `{}`

### getAccountInstruments

- Get a list of tradeable instruments
- `getAccountInstruments(account,callback,options)`
- Callback data: array `[]`

### getAccountChangesSinceTransaction

- Get changes to account since a specific transaction id
- `getAccountChangesSinceTransaction(account,transactionID,callback)`
- Callback data: object `{}`

### setAccountConfiguration

- Set the client-configurable portions on an account
- `setAccountConfiguration(account,callback,options)`
- Callback data: object `{}`

---

## Instrument

Oanda reference: [Instrument Endpoints](https://developer.oanda.com/rest-live-v20/instrument-ep/)

### getInstrument

- Get candlestick data for an instrument
- `getInstrument(instrument,callback,options)`
- Callback data: array `[]`

### getOrderBook

- Get order book data for an instrument
- `getOrderBook(instrument,callback,options)`
- Callback data: object `{}`

### getPositionBook

- Get position book data for an instrument
- `getPositionBook(instrument,callback,options)`
- Callback data: object `{}`

---

## Positions

Oanda reference: [Position Endpoints](https://developer.oanda.com/rest-live-v20/position-ep/)

### getPositions

- List positions for the lifetime of an account
- `getPositions(account,callback)`
- Callback data: array `[]`

### getPosition

- Get details of an instrument position
- `getPosition(account,instrument,callback)`
- Callback data: object `{}`

### getOpenPositions

- List positions with open trades
- `getOpenPositions(account,callback)`
- Callback data: array `[]`

### closePosition

- Fully or partially close an open position
- `closePosition(account,instrument,callback,options)`
- Callback data: object `{}`

---

## Transactions

Oanda reference: [Transaction Endpoints](https://developer.oanda.com/rest-live-v20/transaction-ep/)

### getTransactions

- Get a list of transaction pages
- `getTransactions(account,callback,options)`
- Callback data: object `{}`

### getTransaction

- Get details of a single transaction
- `getTransaction(account,transactionID,callback)`
- Callback data: object `{}`

### getTransactionsByIdRange

- Get a list of transactions by transaction id range
- `getTransactionsByIdRange(account,from,to,callback,options)`
- Callback data: array `[]`

### getTransactionsSinceId

- Get a list of transactions starting after a specified transaction id
- `getTransactionsSinceId(account,id,callback,options)`
- Callback data: array `[]`

---

## Pricing

Oanda reference: [Pricing Endpoints](https://developer.oanda.com/rest-live-v20/pricing-ep/)

### getInstrumentsPricing

- Get pricing details for a list of instruments
- `getInstrumentsPricing(account,instruments,callback,options)`
- Callback data: array `[]`

---

## Trades

Oanda reference: [Trade Endpoints](https://developer.oanda.com/rest-live-v20/trade-ep/)

### getTrades

- Get a list of trades by account
- `getTrades(account,callback,options)`
- Callback data: array `[]`

### getOpenTrades

- Get a list of open trades by account
- `getOpenTrades(account,callback,options)`
- Callback data: array `[]`

### getClosedTrades

- Get a list of closed trades by account
- `getClosedTrades(account,callback,options)`
- Callback data: array `[]`

### getCloseWhenTradeableTrades

- Get a list of Close-when-tradeable trades by account
- `getCloseWhenTradeableTrades(account,callback,options)`
- Callback data: array `[]`

### getAllTrades

- Get a list of all trades by account
- `getAllTrades(account,callback,options)`
- Callback data: array `[]`

### getAllOpenTrades

- Get a list of all open trades by account
- `getAllOpenTrades(account,callback)`
- Callback data: array `[]`

### getTrade

- Get details of a single trade
- `getTrade(account,tradeSpecifier,callback)`
- Callback data: object `{}`

### closeTrade

- Fully or partially close an open trade
- `closeTrade(account,tradeSpecifier,callback,options)`
- Callback data: object `{}`

### setTradeClientExtensions

- Set the client extensions for a trade
- `setTradeClientExtensions(account,tradeSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference:
- [Client Extensions](https://developer.oanda.com/rest-live-v20/transaction-df/#ClientExtensions)

### setTradeOrders

- Create, replace and cancel the orders for a trade
- `setTradeOrders(account,tradeSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference:
- [Take Profit Details](https://developer.oanda.com/rest-live-v20/transaction-df/#TakeProfitDetails)
- [Stop Loss Details](https://developer.oanda.com/rest-live-v20/transaction-df/#StopLossDetails)
- [Guaranteed Stop Loss Details](https://developer.oanda.com/rest-live-v20/transaction-df/#GuaranteedStopLossDetails)
- [Trailing Stop Loss Details](https://developer.oanda.com/rest-live-v20/transaction-df/#TrailingStopLossDetails)

---

## Orders

Oanda reference: [Order Endpoints](https://developer.oanda.com/rest-live-v20/order-ep/)

### getOrders

- Get a list of orders
- `getOrders(account,callback,options)`
- Callback data: array `[]`

### getPendingOrders

- Get a list of pending orders
- `getPendingOrders(account,callback,options)`
- Callback data: array `[]`

### getFilledOrders

- Get a list of filled orders
- `getFilledOrders(account,callback,options)`
- Callback data: array `[]`

### getTriggeredOrders

- Get a list of triggered orders
- `getTriggeredOrders(account,callback,options)`
- Callback data: array `[]`

### getCancelledOrders

- Get a list of cancelled orders
- `getCancelledOrders(account,callback,options)`
- Callback data: array `[]`

### getAllPendingOrders

- Get a list of all pending orders
- `getAllPendingOrders(account,callback)`
- Callback data: array `[]`

### getAllOrders

- Get a list of all orders
- `getAllOrders(account,callback,options)`
- Callback data: array `[]`

### getOrder

- Get details of a single order
- `getOrder(account,orderSpecifier,callback)`
- Callback data: object `{}`

### cancelOrder

- Cancel a pending order
- `cancelOrder(account,orderSpecifier,callback)`
- Callback data: object `{}`

### setOrderClientExtensions

- Set the client extensions for an order
- Set the client extensions for a trade when the order is filled
- `setOrderClientExtensions(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Client Extensions](https://developer.oanda.com/rest-live-v20/transaction-df/#ClientExtensions)

### createMarketOrder

- Create a market order
- `createMarketOrder(account,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#MarketOrderRequest)

### createLimitOrder

- Create a limit order
- `createLimitOrder(account,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Limit Order Request](https://developer.oanda.com/rest-live-v20/order-df/#LimitOrderRequest)

### createStopOrder

- Create a stop order
- `createStopOrder(account,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Stop Order Request](https://developer.oanda.com/rest-live-v20/order-df/#StopOrderRequest)

### createMarketIfTouchedOrder

- Create a market-if-touched order
- `createMarketIfTouchedOrder(account,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market If Touched Order Request](https://developer.oanda.com/rest-live-v20/order-df/#MarketIfTouchedOrderRequest)

### createTakeProfitOrder

- Create a take profit order
- `createTakeProfitOrder(account,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Take Profit Order Request](https://developer.oanda.com/rest-live-v20/order-df/#TakeProfitOrderRequest)

### createStopLossOrder

- Create a stop loss order
- `createStopLossOrder(account,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Stop Loss Order Request](https://developer.oanda.com/rest-live-v20/order-df/#StopLossOrderRequest)

### createGuaranteedStopLossOrder

- Create a guaranteed stop loss order
- `createGuaranteedStopLossOrder(account,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Guaranteed Stop Loss Order Request](https://developer.oanda.com/rest-live-v20/order-df/#GuaranteedStopLossOrderRequest)

### createTrailingStopLossOrder

- Create a trailing stop loss order
- `createTrailingStopLossOrder(account,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Trailing Stop Loss Order Request](https://developer.oanda.com/rest-live-v20/order-df/#TrailingStopLossOrderRequest)

### replaceWithMarketOrder

- Cancel an order and replace with a market order
- `replaceWithMarketOrder(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#MarketOrderRequest)

### replaceWithLimitOrder

- Cancel an order and replace with a limit order
- `replaceWithLimitOrder(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#LimitOrderRequest)

### replaceWithStopOrder

- Cancel an order and replace with a stop order
- `replaceWithStopOrder(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#StopOrderRequest)

### replaceWithMarketIfTouchedOrder

- Cancel an order and replace with a market-if-touched order
- `replaceWithMarketIfTouchedOrder(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#MarketIfTouchedOrderRequest)

### replaceWithTakeProfitOrder

- Cancel an order and replace with a take profit order
- `replaceWithTakeProfitOrder(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#TakeProfitOrderRequest)

### replaceWithStopLossOrder

- Cancel an order and replace with a stop loss order
- `replaceWithStopLossOrder(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#StopLossOrderRequest)

### replaceWithGuaranteedStopLossOrder

- Cancel an order and replace with a guaranteed stop loss order
- `replaceWithGuaranteedStopLossOrder(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#GuaranteedStopLossOrderRequest)

### replaceWithTrailingStopLossOrder

- Cancel an order and replace with a trailing stop loss order
- `replaceWithTrailingStopLossOrder(account,orderSpecifier,callback,options)`
- Callback data: object `{}`
- ***Do not set, modify, or delete client extensions if your account is associated with MT4***
- Oanda reference: [Market Order Request](https://developer.oanda.com/rest-live-v20/order-df/#TrailingStopLossOrderRequest)

---