sunglim / systemtrading

my first system trading application
MIT License
0 stars 0 forks source link

Crash panic: Post "https://openapi.koreainvestment.com:9443/uapi/domestic-stock/v1/trading/order-cash": EOF #43

Closed sunglim closed 11 months ago

sunglim commented 11 months ago
[Sell if average is higher] log.go:21: Getting Api order cash failed from the strategry
[Sell if average is higher] log.go:21: Error[장운영일자가 주문일과 상이합니다]
[Sell if average is higher] log.go:33:
 [quantity:3]
[Sell if average is higher] log.go:33:
 [Didn't buy a stock; name TIGER 일본니케이225 current price 18000 average 17675.0000 plus-minus 975]
[Sell if average is higher] log.go:33:
 [quantity:206]
panic: Post "https://openapi.koreainvestment.com:9443/uapi/domestic-stock/v1/trading/order-cash": EOF

goroutine 244 [running]:
sunglim.github.com/sunglim/systemtrading/pkg/koreainvestment.ApiOrderCash.Call({{0xc0000124b0, 0x6}, 0x0, {{0x7fff3faeffb9, 0x8}, {0x8f8803, 0x2}}, {{0x7fff3faefeab, 0x24}, {0x7fff3faefeeb, ...}}, ...})
        /home/limasdf/pension/pkg/koreainvestment/api_order_cash.go:94 +0x71a
sunglim.github.com/sunglim/systemtrading/order.orderCash({{0xc0000124b0, 0x6}, {0xc0000c28c0, 0x19}, {0xc0000124b9, 0x5}, {0xc0000124c0, 0xa}, {0xc0000124d0, 0x7}, ...}, ...)
        /home/limasdf/pension/order/strategy_buy_everyday_if_below_average.go:59 +0x558
sunglim.github.com/sunglim/systemtrading/order.order({0xc00035af00, 0x4, 0x4}, 0xcd6830)
        /home/limasdf/pension/order/strategy_buy_everyday_if_below_average.go:22 +0x178
reflect.Value.call({0x84ffe0?, 0x934048?, 0x7fac28734180?}, {0x8f8bd6, 0x4}, {0xc000366060, 0x2, 0x0?})
        /snap/go/10339/src/reflect/value.go:596 +0xce7
reflect.Value.Call({0x84ffe0?, 0x934048?, 0xc00023fbb8?}, {0xc000366060?, 0xc0002501e0?, 0xf0?})
        /snap/go/10339/src/reflect/value.go:380 +0xb9
github.com/go-co-op/gocron.callJobFuncWithParams({0x84ffe0?, 0x934048?}, {0xc00039a000, 0x2, 0xc000122201?})
        /home/limasdf/go/pkg/mod/github.com/go-co-op/gocron@v1.27.0/gocron.go:106 +0x1c5
github.com/go-co-op/gocron.runJob({{{0x0, 0x0}, {0x0, 0x0}}, {0x84ffe0, 0x934048}, {0xc00039a000, 0x2, 0x2}, 0x0, ...})
        /home/limasdf/go/pkg/mod/github.com/go-co-op/gocron@v1.27.0/executor.go:75 +0x65
github.com/go-co-op/gocron.(*executor).runJob(_, {{{0x0, 0x0}, {0x0, 0x0}}, {0x84ffe0, 0x934048}, {0xc00039a000, 0x2, 0x2}, ...})
        /home/limasdf/go/pkg/mod/github.com/go-co-op/gocron@v1.27.0/executor.go:160 +0x1b8
github.com/go-co-op/gocron.(*executor).run.func1()
        /home/limasdf/go/pkg/mod/github.com/go-co-op/gocron@v1.27.0/executor.go:224 +0x385
created by github.com/go-co-op/gocron.(*executor).run in goroutine 30
        /home/limasdf/go/pkg/mod/github.com/go-co-op/gocron@v1.27.0/executor.go:192 +0x19d
exit status 2
sunglim commented 11 months ago

Reference: https://stackoverflow.com/questions/28046100/golang-http-concurrent-requests-post-eof

The app runs multiple goroutine concurrently. If one connection is not completed closed, the connection could be reused. Because go by default use Connection: Keep-Alive.
However, if the server close the connection with Connection: Keep-Alive. the next request receives EOF.