mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-21 22:43:52 +00:00
strategy/supertrend: output acc. profit report to tsv file
This commit is contained in:
parent
5fdbd7bba3
commit
f7feb7e0fc
|
@ -3,6 +3,7 @@ package supertrend
|
|||
import (
|
||||
"bufio"
|
||||
"context"
|
||||
"encoding/csv"
|
||||
"fmt"
|
||||
"github.com/c9s/bbgo/pkg/risk"
|
||||
"github.com/fatih/color"
|
||||
|
@ -100,6 +101,8 @@ type Strategy struct {
|
|||
lastDayAccumulatedProfit fixedpoint.Value
|
||||
// AccumulatedProfitLastPeriodWindow Last period window of accumulated profit
|
||||
AccumulatedProfitLastPeriodWindow int `json:"accumulatedProfitLastPeriodWindow"`
|
||||
// AccumulatedProfitReportTsv outputs acc. profit report to specified tsv file
|
||||
AccumulatedProfitReportTsv string `json:"accumulatedProfitReportTsv"`
|
||||
}
|
||||
|
||||
func (s *Strategy) ID() string {
|
||||
|
@ -307,6 +310,18 @@ func (s *Strategy) PrintResult(o *os.File) {
|
|||
hiyellow(f, "Accumulated Profit %dMA: %f\n", s.AccumulatedProfitMAWindow, s.accumulatedProfitMA.Last())
|
||||
hiyellow(f, "Last %d day(s) Accumulated Profit: %f\n", s.AccumulatedProfitLastPeriodWindow, s.dailyAccumulatedProfits.Sum())
|
||||
hiyellow(f, "\n")
|
||||
|
||||
if s.AccumulatedProfitReportTsv != "" {
|
||||
tf, err := os.OpenFile(s.AccumulatedProfitReportTsv, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer tf.Close()
|
||||
csvwiter := csv.NewWriter(tf)
|
||||
csvwiter.Comma = '\t'
|
||||
defer csvwiter.Flush()
|
||||
csvwiter.Write([]string{s.Symbol, s.accumulatedProfit.String(), fmt.Sprintf("%f", s.accumulatedProfitMA.Last()), fmt.Sprintf("%f", s.dailyAccumulatedProfits.Sum())})
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Strategy) Run(ctx context.Context, orderExecutor bbgo.OrderExecutor, session *bbgo.ExchangeSession) error {
|
||||
|
|
Loading…
Reference in New Issue
Block a user