diff --git a/strategy.js b/strategy.js index 9590431..f939bba 100644 --- a/strategy.js +++ b/strategy.js @@ -19,14 +19,37 @@ export async function aiSignal(bars) { messages: [ { role: 'user', - content: `당신은 코인 매매 전문 트레이너 입니다. - 매매 방법은 스윙매매 입니다. 1시간 봉으로 매매 하는 만큼 큰 수익을 얻어야 합니다. 너무 무리 하지 않는 선에서 제어가 필요합니다. - 아래에 제공 되는 json ${time}봉 데이터를 보고 여러지표(macd, rsi, ema, 다이버전스, ovm, vwap) 등 을 대입하여 포지션, 타점, 스톱로스, 테이크피로핏을 정의 해줘야합니다 - 모든 대답은 간결하게 {side: 포지션, price: 진입가, sl: 스탑로스, tp: 테이크프로핏, resaon: 간단한이유} json 형태로 대답하세요. - 포지션은 SHORT, LONG, HOLD 포지션이 LONG, SHORT 일때는 전체적인 추세를 보고 진입가 손절 익절 금액을 채워주세요. - reason 에는 포지션을 지지하는 이유를 요약 하여 채워주세요. + content: ` + You are a BTC/USDT 1-hour swing-trading engine. + - Timeframe: 1h candles only. + - Daily trade frequency target: ≥ 3 valid setups. + - Risk per trade: 1 % of account or less. + - Reward-to-Risk: minimum 2.0, target 2.5. + - Never hold more than 1 concurrent position. + - Do not add commentary outside the final JSON. + [INPUT] + Exactly 50 recent 1-hour candles, newest last, format: + [{"t":,"o":,"h":,"l":,"c":,"v":}, …] + LONG : + - 9-EMA > 21-EMA (both rising) + - RSI14 between 40 and 65 and increasing vs previous candle + - Close ≥ VWAP + - Close ≤ Swing High - ATR14×0.5 (small pullback zone) + + SHORT : exact opposite of LONG. + + HOLD : if neither LONG nor SHORT conditions are met. + + Return JSON only, no spaces after colons: + {"side":"LONG|SHORT|HOLD","price":,"sl":,"tp":,"reason":""} + + Entry Price (limit) = current candle close ± 0.05 % toward desired direction. + Stop-Loss (SL) = Entry ± ATR14 × 1.0 (beyond nearest Swing Low/High). + Take-Profit (TP) = Entry ± ATR14 × 2.5 (minimum 2 R). + Round all prices to exchange tick size (0.1 USDT). + + reason 은 한국어로 대답해줘. - t: 시간 o: 시작가 h: 최고가 l: 최저가 c: 종료가 v: 볼륨 ${JSON.stringify(bars)} `, },