style: apply gofmt to api/strategy.go and store/strategy.go

This commit is contained in:
Dean
2026-03-27 21:49:34 +08:00
committed by shinchan-zhai
parent c6adc34247
commit f83f2b1c18
2 changed files with 21 additions and 22 deletions
+5 -6
View File
@@ -164,8 +164,8 @@ func (s *Server) handleCreateStrategy(c *gin.Context) {
var req struct { var req struct {
Name string `json:"name" binding:"required"` Name string `json:"name" binding:"required"`
Description string `json:"description"` Description string `json:"description"`
Lang string `json:"lang"` // "zh" or "en", used when config is omitted Lang string `json:"lang"` // "zh" or "en", used when config is omitted
Config *store.StrategyConfig `json:"config"` // optional — uses default if omitted Config *store.StrategyConfig `json:"config"` // optional — uses default if omitted
} }
if err := c.ShouldBindJSON(&req); err != nil { if err := c.ShouldBindJSON(&req); err != nil {
@@ -452,9 +452,9 @@ func (s *Server) handlePreviewPrompt(c *gin.Context) {
} }
var req struct { var req struct {
Config store.StrategyConfig `json:"config" binding:"required"` Config store.StrategyConfig `json:"config" binding:"required"`
AccountEquity float64 `json:"account_equity"` AccountEquity float64 `json:"account_equity"`
PromptVariant string `json:"prompt_variant"` PromptVariant string `json:"prompt_variant"`
} }
if err := c.ShouldBindJSON(&req); err != nil { if err := c.ShouldBindJSON(&req); err != nil {
@@ -697,4 +697,3 @@ func (s *Server) runRealAITest(userID, modelID, systemPrompt, userPrompt string)
return response, nil return response, nil
} }
+16 -16
View File
@@ -73,8 +73,8 @@ type Strategy struct {
Description string `gorm:"default:''" json:"description"` Description string `gorm:"default:''" json:"description"`
IsActive bool `gorm:"column:is_active;default:false;index" json:"is_active"` IsActive bool `gorm:"column:is_active;default:false;index" json:"is_active"`
IsDefault bool `gorm:"column:is_default;default:false" json:"is_default"` IsDefault bool `gorm:"column:is_default;default:false" json:"is_default"`
IsPublic bool `gorm:"column:is_public;default:false;index" json:"is_public"` // whether visible in strategy market IsPublic bool `gorm:"column:is_public;default:false;index" json:"is_public"` // whether visible in strategy market
ConfigVisible bool `gorm:"column:config_visible;default:true" json:"config_visible"` // whether config details are visible ConfigVisible bool `gorm:"column:config_visible;default:true" json:"config_visible"` // whether config details are visible
Config string `gorm:"not null;default:'{}'" json:"config"` Config string `gorm:"not null;default:'{}'" json:"config"`
CreatedAt time.Time `json:"created_at"` CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"` UpdatedAt time.Time `json:"updated_at"`
@@ -191,7 +191,7 @@ type IndicatorConfig struct {
EnableMACD bool `json:"enable_macd"` EnableMACD bool `json:"enable_macd"`
EnableRSI bool `json:"enable_rsi"` EnableRSI bool `json:"enable_rsi"`
EnableATR bool `json:"enable_atr"` EnableATR bool `json:"enable_atr"`
EnableBOLL bool `json:"enable_boll"` // Bollinger Bands EnableBOLL bool `json:"enable_boll"` // Bollinger Bands
EnableVolume bool `json:"enable_volume"` EnableVolume bool `json:"enable_volume"`
EnableOI bool `json:"enable_oi"` // open interest EnableOI bool `json:"enable_oi"` // open interest
EnableFundingRate bool `json:"enable_funding_rate"` // funding rate EnableFundingRate bool `json:"enable_funding_rate"` // funding rate
@@ -249,10 +249,10 @@ type KlineConfig struct {
// ExternalDataSource external data source configuration // ExternalDataSource external data source configuration
type ExternalDataSource struct { type ExternalDataSource struct {
Name string `json:"name"` // data source name Name string `json:"name"` // data source name
Type string `json:"type"` // type: "api" | "webhook" Type string `json:"type"` // type: "api" | "webhook"
URL string `json:"url"` // API URL URL string `json:"url"` // API URL
Method string `json:"method"` // HTTP method Method string `json:"method"` // HTTP method
Headers map[string]string `json:"headers,omitempty"` Headers map[string]string `json:"headers,omitempty"`
DataPath string `json:"data_path,omitempty"` // JSON data path DataPath string `json:"data_path,omitempty"` // JSON data path
RefreshSecs int `json:"refresh_secs,omitempty"` // refresh interval (seconds) RefreshSecs int `json:"refresh_secs,omitempty"` // refresh interval (seconds)
@@ -360,15 +360,15 @@ func GetDefaultStrategyConfig(lang string) StrategyConfig {
PriceRankingLimit: 10, PriceRankingLimit: 10,
}, },
RiskControl: RiskControlConfig{ RiskControl: RiskControlConfig{
MaxPositions: 3, // Max 3 coins simultaneously (CODE ENFORCED) MaxPositions: 3, // Max 3 coins simultaneously (CODE ENFORCED)
BTCETHMaxLeverage: 5, // BTC/ETH exchange leverage (AI guided) BTCETHMaxLeverage: 5, // BTC/ETH exchange leverage (AI guided)
AltcoinMaxLeverage: 5, // Altcoin exchange leverage (AI guided) AltcoinMaxLeverage: 5, // Altcoin exchange leverage (AI guided)
BTCETHMaxPositionValueRatio: 5.0, // BTC/ETH: max position = 5x equity (CODE ENFORCED) BTCETHMaxPositionValueRatio: 5.0, // BTC/ETH: max position = 5x equity (CODE ENFORCED)
AltcoinMaxPositionValueRatio: 1.0, // Altcoin: max position = 1x equity (CODE ENFORCED) AltcoinMaxPositionValueRatio: 1.0, // Altcoin: max position = 1x equity (CODE ENFORCED)
MaxMarginUsage: 0.9, // Max 90% margin usage (CODE ENFORCED) MaxMarginUsage: 0.9, // Max 90% margin usage (CODE ENFORCED)
MinPositionSize: 12, // Min 12 USDT per position (CODE ENFORCED) MinPositionSize: 12, // Min 12 USDT per position (CODE ENFORCED)
MinRiskRewardRatio: 3.0, // Min 3:1 profit/loss ratio (AI guided) MinRiskRewardRatio: 3.0, // Min 3:1 profit/loss ratio (AI guided)
MinConfidence: 75, // Min 75% confidence (AI guided) MinConfidence: 75, // Min 75% confidence (AI guided)
}, },
} }