Skip to content

Commit a1006ef

Browse files
committed
Refactor code structure for improved readability and maintainability
1 parent 5232072 commit a1006ef

54 files changed

Lines changed: 13857 additions & 300 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

bin/Buddy

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,42 @@ cmd_predict() {
8181
run_py "${ROOT_DIR}/main.py" buddy --config "${CONFIG_FILE}" --granularity "${granularity}" "${inst_args[@]+"${inst_args[@]}"}" "${args[@]+"${args[@]}"}"
8282
}
8383

84+
cmd_chat() {
85+
local granularity="M5"
86+
local instrument=""
87+
local args=()
88+
89+
# Default Buddy chat to planner mode unless the user explicitly overrides it.
90+
export BUDDY_CHAT_MODE="${BUDDY_CHAT_MODE:-planner}"
91+
92+
if [[ $# -gt 0 && ! "$1" =~ ^- ]]; then
93+
instrument="$1"
94+
shift
95+
fi
96+
97+
while [[ $# -gt 0 ]]; do
98+
case "$1" in
99+
-i|--instrument) instrument="$2"; shift 2 ;;
100+
-g|--granularity) granularity="$2"; shift 2 ;;
101+
-c|--candles) args+=(--candles "$2"); shift 2 ;;
102+
-x|--execute) args+=(--execute); shift ;;
103+
--no-execute) args+=(--no-execute); shift ;;
104+
--dry-run) args+=(--dry-run); shift ;;
105+
-v|--verbose) args+=(--verbose); shift ;;
106+
--model-path) args+=(--model-path "$2"); shift 2 ;;
107+
--all-features) args+=(--all-features); shift ;;
108+
--no-all-features) args+=(--no-all-features); shift ;;
109+
*) args+=("$1"); shift ;;
110+
esac
111+
done
112+
113+
local inst_args=()
114+
if [[ -n "${instrument}" ]]; then
115+
inst_args=(--instrument "${instrument}")
116+
fi
117+
run_py "${ROOT_DIR}/main.py" buddy-chat --config "${CONFIG_FILE}" --granularity "${granularity}" "${inst_args[@]+"${inst_args[@]}"}" "${args[@]+"${args[@]}"}"
118+
}
119+
84120
cmd_train() {
85121
local granularity="H1" # Default to H1 to match config_improved_H1.yaml
86122
local args=()
@@ -184,7 +220,16 @@ cmd_monitor() {
184220
run_py "${ROOT_DIR}/main.py" monitor --config "${CONFIG_FILE}" "${args[@]+"${args[@]}"}"
185221
}
186222

187-
cmd_status() { run_py "${ROOT_DIR}/main.py" model-status --config "${CONFIG_FILE}"; }
223+
cmd_status() {
224+
local args=()
225+
while [[ $# -gt 0 ]]; do
226+
case "$1" in
227+
--decisions) args+=(--decisions); shift ;;
228+
*) args+=("$1"); shift ;;
229+
esac
230+
done
231+
run_py "${ROOT_DIR}/main.py" model-status --config "${CONFIG_FILE}" "${args[@]+"${args[@]}"}"
232+
}
188233
cmd_promote() { run_py "${ROOT_DIR}/main.py" promote-model --config "${CONFIG_FILE}"; }
189234
cmd_loop() { run_py "${ROOT_DIR}/main.py" buddy --config "${CONFIG_FILE}" --loop --candles 2000; }
190235

@@ -225,6 +270,7 @@ main() {
225270
local cmd="$1"; shift
226271
case "${cmd}" in
227272
predict|p) cmd_predict "$@" ;;
273+
chat|c|buddy-chat) cmd_chat "$@" ;;
228274
train|t) cmd_train "$@" ;;
229275
train-joint|tj) cmd_train_joint "$@" ;;
230276
retrain-all|ra) cmd_retrain_all "$@" ;;
@@ -233,7 +279,7 @@ main() {
233279
test) cmd_test "$@" ;;
234280
journal|j) cmd_journal "$@" ;;
235281
find|f) cmd_find "$@" ;;
236-
status|s) cmd_status ;;
282+
status|s) cmd_status "$@" ;;
237283
promote) cmd_promote ;;
238284
loop|l) cmd_loop ;;
239285
monitor|m) cmd_monitor "$@" ;;
@@ -242,6 +288,7 @@ Buddy v2.2.0 - FX Trading Assistant
242288
243289
COMMANDS:
244290
predict [PAIR] [-x] Run prediction (default), -x to execute trade
291+
chat [PAIR] Start Buddy conversational chat REPL
245292
train -i PAIR Train models for instrument
246293
train-joint Train all scanner pairs jointly (default: 15 pairs)
247294
retrain-all Retrain all pairs
@@ -250,7 +297,7 @@ COMMANDS:
250297
test Run test prediction
251298
journal [-u] [-d N] View/update trade journal
252299
monitor Show monitoring dashboard and alerts
253-
status Show model status
300+
status [--decisions] Show model status
254301
loop Run continuous prediction loop
255302
256303
OPTIONS:
@@ -274,6 +321,8 @@ MONITOR OPTIONS:
274321
275322
EXAMPLES:
276323
./bin/Buddy EUR_USD # Predict EUR/USD
324+
./bin/Buddy chat EUR_USD # Start Buddy chat on EUR/USD
325+
./bin/Buddy status --decisions # Show persisted trade/no-trade decisions
277326
./bin/Buddy EUR_USD -x # Predict and execute
278327
./bin/Buddy train -i EUR_USD # Train model for EUR/USD
279328
./bin/Buddy train-joint # Train all 15 scanner pairs

0 commit comments

Comments
 (0)