71 lines
2.1 KiB
Bash
71 lines
2.1 KiB
Bash
|
|
CSV=/opt/PolymarketBTC15mAssistant/logs/signals.csv
|
||
|
|
|
||
|
|
echo "=== File info ==="
|
||
|
|
wc -l $CSV
|
||
|
|
ls -la $CSV
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Time span ==="
|
||
|
|
head -2 $CSV | tail -1 | awk -F, '{print "first:", $1}'
|
||
|
|
tail -1 $CSV | awk -F, '{print "last :", $1}'
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Recommendation breakdown ==="
|
||
|
|
awk -F, 'NR>1{print $12}' $CSV | sort | uniq -c | sort -rn
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Max edges seen ==="
|
||
|
|
awk -F, 'NR>1 && $10+0 > maxu {maxu=$10+0} END{printf "max edge_up: %.4f\n", maxu}' $CSV
|
||
|
|
awk -F, 'NR>1 && $11+0 > maxd {maxd=$11+0} END{printf "max edge_down: %.4f\n", maxd}' $CSV
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Phase distribution ==="
|
||
|
|
awk -F, 'NR>1{
|
||
|
|
t=$3+0;
|
||
|
|
if (t >= 10) p="EARLY";
|
||
|
|
else if (t >= 5) p="MID";
|
||
|
|
else p="LATE";
|
||
|
|
print p
|
||
|
|
}' $CSV | sort | uniq -c
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Max model_up/down at each phase ==="
|
||
|
|
awk -F, 'NR>1{
|
||
|
|
mu=$6+0; md=$7+0; t=$3+0;
|
||
|
|
if (t >= 10) p="EARLY"; else if (t >= 5) p="MID"; else p="LATE";
|
||
|
|
if (mu > m[p"_u"]) m[p"_u"]=mu;
|
||
|
|
if (md > m[p"_d"]) m[p"_d"]=md;
|
||
|
|
} END{for (k in m) printf " %-6s model_up=%.3f model_down=%.3f\n", k, m[k], 1-m[k]}' $CSV
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== TREND_UP rows: would-be ENTER breakdown ==="
|
||
|
|
awk -F, 'NR>1 && $4 == "TREND_UP" && $10+0 > 0{
|
||
|
|
e=$10+0; mu=$6+0;
|
||
|
|
if (e >= 0.05 && mu >= 0.55) bucket="BOTH met (would ENTER)";
|
||
|
|
else if (e >= 0.05) bucket="edge ok, model low";
|
||
|
|
else if (mu >= 0.55) bucket="model ok, edge low";
|
||
|
|
else bucket="both low";
|
||
|
|
cnt[bucket]++
|
||
|
|
} END{for (k in cnt) printf " %-30s %d\n", k, cnt[k]}' $CSV
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== TREND_DOWN rows ==="
|
||
|
|
awk -F, 'NR>1 && $4 == "TREND_DOWN" && $11+0 > 0{
|
||
|
|
e=$11+0; md=$7+0;
|
||
|
|
if (e >= 0.05 && md >= 0.55) bucket="BOTH met (would ENTER)";
|
||
|
|
else if (e >= 0.05) bucket="edge ok, model low";
|
||
|
|
else if (md >= 0.55) bucket="model ok, edge low";
|
||
|
|
else bucket="both low";
|
||
|
|
cnt[bucket]++
|
||
|
|
} END{for (k in cnt) printf " %-30s %d\n", k, cnt[k]}' $CSV
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Recent 5 rows ==="
|
||
|
|
tail -5 $CSV
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== PM2 errors (last 20 each) ==="
|
||
|
|
echo "--- watcher ---"
|
||
|
|
tail -20 /opt/PolymarketBTC15mAssistant/logs/pm2-watcher.err.log 2>/dev/null
|
||
|
|
echo "--- bot ---"
|
||
|
|
tail -20 /opt/PolymarketBTC15mAssistant/logs/pm2-bot.err.log 2>/dev/null
|