autotrader/cmd/sma_crossover.go
2023-05-14 15:28:02 -05:00

59 lines
1.2 KiB
Go

package main
import (
"fmt"
auto "github.com/fivemoreminix/autotrader"
)
type SMAStrategy struct {
i int
}
func (s *SMAStrategy) Init(_trader *auto.Trader) {
fmt.Println("Init")
s.i = 0
}
func (s *SMAStrategy) Next(_trader *auto.Trader) {
fmt.Println("Next " + fmt.Sprint(s.i))
s.i++
}
func main() {
// token := os.Environ["OANDA_TOKEN"]
// accountId := os.Environ["OANDA_ACCOUNT_ID"]
// if token == "" || accountId == "" {
// fmt.Println("Please set OANDA_TOKEN and OANDA_ACCOUNT_ID environment variables")
// os.Exit(1)
// }
data, err := auto.ReadDataCSV("./EUR_USD Historical Data.csv", auto.DataCSVLayout{
LatestFirst: true,
DateFormat: "01/02/2006",
Date: "\ufeff\"Date\"",
Open: "Open",
High: "High",
Low: "Low",
Close: "Price",
Volume: "Vol.",
})
if err != nil {
panic(err)
}
auto.Backtest(auto.NewTrader(auto.TraderConfig{
// auto.NewOandaBroker(auto.OandaConfig{
// Token: "YOUR_TOKEN",
// AccountID: "101-001-14983263-001",
// DemoAccount: true,
// }),
Broker: auto.NewTestBroker(nil, auto.NewDataFrame(data), 10000, 50, 0.0002, 0),
Strategy: &SMAStrategy{},
Symbol: "EUR_USD",
Frequency: "D",
CandlesToKeep: 100,
}))
}