mirror of
https://github.com/lukewilson2002/autotrader.git
synced 2025-06-14 16:03:51 +00:00
Error when the Oanda token or account ID is not set
This commit is contained in:
parent
5fc4a6e2d6
commit
5ee2df12b5
@ -3,6 +3,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
@ -86,7 +87,12 @@ func (s *IchimokuStrategy) Next(t *auto.Trader) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
broker := oanda.NewOandaBroker(os.Getenv("OANDA_TOKEN"), os.Getenv("OANDA_ACCOUNT_ID"), true)
|
||||
broker, err := oanda.NewOandaBroker(os.Getenv("OANDA_TOKEN"), os.Getenv("OANDA_ACCOUNT_ID"), true)
|
||||
if err != nil {
|
||||
fmt.Println("error:", err)
|
||||
return
|
||||
}
|
||||
|
||||
auto.Backtest(auto.NewTrader(auto.TraderConfig{
|
||||
Broker: auto.NewTestBroker(broker, nil, 10000, 50, 0.0002, 0),
|
||||
Strategy: &IchimokuStrategy{convPeriod: 9, basePeriod: 26, leadingPeriods: 52},
|
||||
|
@ -3,13 +3,19 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/fivemoreminix/autotrader/oanda"
|
||||
)
|
||||
|
||||
func main() {
|
||||
broker := oanda.NewOandaBroker(os.Getenv("OANDA_TOKEN"), os.Getenv("OANDA_ACCOUNT_ID"), true)
|
||||
broker, err := oanda.NewOandaBroker(os.Getenv("OANDA_TOKEN"), os.Getenv("OANDA_ACCOUNT_ID"), true)
|
||||
if err != nil {
|
||||
fmt.Println("error:", err)
|
||||
return
|
||||
}
|
||||
|
||||
candles, err := broker.Candles("EUR_USD", "D", 100)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -3,6 +3,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
auto "github.com/fivemoreminix/autotrader"
|
||||
@ -33,7 +34,11 @@ func main() {
|
||||
panic(err)
|
||||
}
|
||||
*/
|
||||
broker := oanda.NewOandaBroker(os.Getenv("OANDA_TOKEN"), os.Getenv("OANDA_ACCOUNT_ID"), true)
|
||||
broker, err := oanda.NewOandaBroker(os.Getenv("OANDA_TOKEN"), os.Getenv("OANDA_ACCOUNT_ID"), true)
|
||||
if err != nil {
|
||||
fmt.Println("error:", err)
|
||||
return
|
||||
}
|
||||
|
||||
auto.Backtest(auto.NewTrader(auto.TraderConfig{
|
||||
Broker: auto.NewTestBroker(broker /* data, */, nil, 10000, 50, 0.0002, 0),
|
||||
|
@ -16,6 +16,8 @@ const (
|
||||
TimeLayout = time.RFC3339
|
||||
)
|
||||
|
||||
var ErrInvalidCred = fmt.Errorf("invalid credentials, token or account ID is invalid")
|
||||
|
||||
var _ auto.Broker = (*OandaBroker)(nil) // Compile-time interface check.
|
||||
|
||||
type OandaBroker struct {
|
||||
@ -26,7 +28,11 @@ type OandaBroker struct {
|
||||
baseUrl string // Either oandaLiveURL or oandaPracticeURL.
|
||||
}
|
||||
|
||||
func NewOandaBroker(token, accountID string, practice bool) *OandaBroker {
|
||||
func NewOandaBroker(token, accountID string, practice bool) (*OandaBroker, error) {
|
||||
if token == "" || accountID == "" {
|
||||
return nil, ErrInvalidCred
|
||||
}
|
||||
|
||||
var baseUrl string
|
||||
if practice {
|
||||
baseUrl = oandaPracticeURL
|
||||
@ -39,7 +45,7 @@ func NewOandaBroker(token, accountID string, practice bool) *OandaBroker {
|
||||
token: token,
|
||||
accountID: accountID,
|
||||
baseUrl: baseUrl,
|
||||
}
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Price returns the ask price if wantToBuy is true and the bid price if wantToBuy is false.
|
||||
|
Loading…
x
Reference in New Issue
Block a user