Compare commits

..

No commits in common. "1450617f23505af6220ace49e94452dd20db148f" and "5b52cd031a3aaa65a24a81ab4d089be004baa3bb" have entirely different histories.

3 changed files with 4 additions and 5 deletions

View File

@ -69,7 +69,7 @@ func buildDataset(kl []Kline, lookback int, valSplit float64) (Dataset, Dataset)
if trainN < 1 {
// fallback minimo: tutto train meno 1 per val
trainN = max(1, len(X)-1)
// valN = len(X) - trainN
valN = len(X) - trainN
}
// 5) mean/std SOLO sul training (sulle feature)

View File

@ -122,10 +122,10 @@ func pickBestExpiry(a, b time.Time) time.Time {
func BuildMessageBundle(dec Decision, cfg Config) MessageBundle {
// humanAction(dec, cfg) è definita altrove (es. helpers.go)
actStr := humanAction(dec, cfg)
DaemonName := os.Getenv("BINANCE_SYMBOL")
decisionLine := fmt.Sprintf(
"%s consiglio: azione=%s expectedBps=%.3f feeBps=%.3f netBps=%.3f confOK=%v motivo=%s",
DaemonName, actStr, dec.ExpectedBps, dec.FeeBps, dec.NetBps, dec.ConfidenceOK, dec.Reason,
"consiglio: azione=%s expectedBps=%.3f feeBps=%.3f netBps=%.3f confOK=%v motivo=%s",
actStr, dec.ExpectedBps, dec.FeeBps, dec.NetBps, dec.ConfidenceOK, dec.Reason,
)
// Usa la funzione già esistente per generare le istruzioni operative

View File

@ -10,7 +10,6 @@ import (
// MessageBundle è lUNICA struct che viaggia fino a Matrix.
// Metti qui TUTTO ciò che serve per il messaggio finale.
type MessageBundle struct {
DaemonName string // nome del demone con cui sto parlando
// righe pronte (se vuote, Compose() le omette)
DecisionLine string // es. "consiglio: azione=..., motivo=..."
Instructions string // es. "ISTRUZIONI MANUALI: esegui swap ..."