82 lines
2.2 KiB
Go
82 lines
2.2 KiB
Go
package module
|
||
|
||
import (
|
||
// "errors"
|
||
"fmt"
|
||
"github.com/phyer/core"
|
||
// "math"
|
||
"os"
|
||
"strconv"
|
||
)
|
||
|
||
type MyTickerInfo struct {
|
||
core.TickerInfo
|
||
}
|
||
|
||
func (mti *MyTickerInfo) Process(cr *core.Core) {
|
||
ti := mti.TickerInfo
|
||
go func() {
|
||
// 无需发布出去, 下面内容注释 2024-12-15
|
||
// tickerPush := os.Getenv("SIAGA_TICKERPUSH") == "true"
|
||
// if !tickerPush {
|
||
// return
|
||
// }
|
||
// err := AddToGeneralTickerChnl(ti)
|
||
// if err != nil {
|
||
// logrus.Warn("tickerPush err:", err, ti)
|
||
// }
|
||
}()
|
||
go func() {
|
||
torqueSorted := os.Getenv("SIAGA_TORQUESORTED") == "true"
|
||
if !torqueSorted {
|
||
return
|
||
}
|
||
// 这个功能貌似很有意思,以后可以考虑打开
|
||
// ti.MakePriceSorted(cr, "2m")
|
||
// ti.MakePriceSorted(cr, "4m")
|
||
// ti.MakePriceSorted(cr, "8m")
|
||
//用这个方法保证事件在每个周期只发生一次
|
||
}()
|
||
go func() {
|
||
tickerToCandle := os.Getenv("SIAGA_TICKERTOCANDLE") == "true"
|
||
if tickerToCandle {
|
||
fmt.Println("tickerToCandle: ", ti)
|
||
cd := mti.ConvertToCandle(cr, "1m")
|
||
cr.CandlesProcessChan <- cd
|
||
}
|
||
}()
|
||
|
||
go func() {
|
||
ti.SetToKey(cr)
|
||
// 流出时间让下面的函数进行比对
|
||
// time.Sleep(50 * time.Millisecond)
|
||
// snapshot 先关掉 2024-12-15
|
||
// ti.MakeSnapShot(cr)
|
||
}()
|
||
}
|
||
|
||
// TODO 当前这个版本的实现里,开盘价,最高价,最低价都不重要,主要是收盘价,用来算ma7,ma30,这个就够了,以后需要的话,再细化
|
||
func (mti *MyTickerInfo) ConvertToCandle(cr *core.Core, period string) *core.Candle {
|
||
ti := mti.TickerInfo
|
||
hn := os.Getenv("HOSTNAME")
|
||
lst := strconv.FormatFloat(ti.Last, 'f', -1, 64)
|
||
tmi := ti.Ts
|
||
tmi = tmi - tmi%60000
|
||
cd := core.Candle{
|
||
InstID: ti.InstId,
|
||
Period: period,
|
||
Data: []interface{}{
|
||
strconv.FormatInt(tmi, 10), //开始时间,Unix时间戳的毫秒数格式,如 1597026383085
|
||
"-1", //o String 开盘价格
|
||
"-1", //h String 最高价格
|
||
"-1", //l String 最低价格
|
||
lst, //c String 收盘价格
|
||
"-1", //c String 成交量
|
||
"-1", //c String 成交美元数
|
||
},
|
||
From: "tickerInfo|" + hn,
|
||
}
|
||
|
||
return &cd
|
||
}
|