LQ-Qwen3-VL-4B-ChartSignal
BTC 15๋ถ๋ด ์ฐจํธ ์ด๋ฏธ์ง๋ฅผ ๋ถ์ํ์ฌ ๋งค๋งค ์ ํธ์ ์์ธํ ๋ถ์ ๊ทผ๊ฑฐ๋ฅผ JSON์ผ๋ก ์ถ๋ ฅํ๋ Qwen3-VL-4B LoRA adapter.
- Base Model: Qwen/Qwen3-VL-4B-Instruct
- Tutorial: Qwen3-VL-SFT-RL-Tutorial
Quick Start
import torch
from transformers import Qwen3VLForConditionalGeneration, AutoProcessor
from peft import PeftModel
# Load model
base_model = "Qwen/Qwen3-VL-4B-Instruct"
processor = AutoProcessor.from_pretrained(base_model)
model = Qwen3VLForConditionalGeneration.from_pretrained(
base_model, torch_dtype=torch.bfloat16, device_map="auto",
)
model = PeftModel.from_pretrained(model, "LangQuant/LQ-Qwen3-VL-4B-ChartSignal")
model.eval()
# Predict
messages = [
{"role": "system", "content": [
{"type": "text", "text": "You are a professional Bitcoin futures trader. Analyze 15-minute candlestick charts to predict the direction over the next 4 hours."},
]},
{"role": "user", "content": [
{"type": "image", "image": "chart.png"},
{"type": "text", "text": "BTCUSDT 15m chart. Predict the direction for the next 4 hours (16 candles).\nRespond in JSON."},
]},
]
inputs = processor.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True,
return_dict=True, return_tensors="pt",
).to(model.device)
with torch.no_grad():
generated_ids = model.generate(**inputs, max_new_tokens=512)
trimmed = [out[len(inp):] for inp, out in zip(inputs.input_ids, generated_ids)]
print(processor.batch_decode(trimmed, skip_special_tokens=True)[0])
Example
Input:
Output:
{
"signal": "NEUTRAL",
"confidence": 75,
"stop_loss_pct": -0.5,
"take_profit_pct": 0.5,
"reasoning": {
"market_context": "The price is consolidating around a narrow range near $89,000 to $90,000, with no clear trend established over the 16 candles.",
"price_action": "Candlesticks show alternating small-bodied bullish and bearish candles without strong directional wicks, indicating indecision and sideways movement.",
"volume_oi": "Volume is low and stable, not supporting strong buying or selling pressure. Open Interest shows a slight upward trend but remains relatively flat, suggesting no significant new positions being opened to drive direction.",
"risk_assessment": "The main risk is a breakout in either direction, which could lead to a move beyond the consolidation range. However, the lack of strong momentum and volume reduces the probability of a sustained move."
},
"risk_level": "MEDIUM"
}
Evaluation (Best: checkpoint-200)
ํ ์คํธ์ 600๊ฐ (LONG 214 / SHORT 259 / NEUTRAL 127)
Accuracy: 42.7% | Macro F1: 42.4%
Confusion Matrix
| Pred LONG | Pred SHORT | Pred NEUTRAL | Recall | |
|---|---|---|---|---|
| LONG | 71 | 60 | 83 | 33.2% |
| SHORT | 55 | 102 | 102 | 39.4% |
| NEUTRAL | 16 | 28 | 83 | 65.4% |
Classification Report
| Class | Precision | Recall | F1 | Support |
|---|---|---|---|---|
| LONG | 50.0% | 33.2% | 39.9% | 214 |
| SHORT | 53.7% | 39.4% | 45.4% | 259 |
| NEUTRAL | 31.0% | 65.4% | 42.0% | 127 |
| Macro Avg | 44.9% | 46.0% | 42.4% |
F1 by Class & Checkpoint
Input
BTC/USDT 15๋ถ๋ด ์ฐจํธ ์ด๋ฏธ์ง (24์๊ฐ ๋ถ๋). ์ฐจํธ์๋ ์บ๋ค์คํฑ, ๊ฑฐ๋๋, ํ๋ฉ๋น, ๋ฏธ๊ฒฐ์ ์ฝ์ ์ด ํฌํจ๋ฉ๋๋ค.
Disclaimer
์ด ๋ชจ๋ธ์ ์ฐ๊ตฌ ๋ฐ ๊ต์ก ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์ค์ ๋งค๋งค์ ์ฌ์ฉํ์ฌ ๋ฐ์ํ๋ ์์ค์ ๋ํด ์ฑ ์์ง์ง ์์ต๋๋ค.
- Downloads last month
- 4
Model tree for LangQuant/LQ-Qwen3-VL-4B-ChartSignal
Base model
Qwen/Qwen3-VL-4B-Instruct

