SharpTrader는 브로커가 아닌 트레이더를 위해 만들어진 트레이딩 플랫폼이며, 트레이더를 위해 코드를 작성하는 개발자에게도 열려 있습니다. 플랫폼 안에서 C#으로 자체 전략을 작성하거나, EasyFIX API를 통해 외부 소프트웨어를 실행 엔진에 연결하거나, GPU 가속 캔들스틱 차트 라이브러리를 자체 .NET 터미널에 탑재할 수 있습니다.
| C#SharpTrader 내부에서 컴파일되는 네이티브 전략 언어 | 50+브로커 FIX API 커넥터 및 주요 암호화폐 거래소 연결 | 22레퍼런스 수식과 교차 검증된 BjfChart 지표 | 2하나의 DLL에 두 가지 타깃: 레거시 앱용 net48, 신규 앱용 net8.0-windows |
각 옵션은 서로 다른 문제를 해결합니다. 코드가 위치한 곳에 맞는 방법을 선택하세요.
플랫폼 내부
코딩 모듈: C# 봇 API전략을 C# 클래스로 작성하고 SharpTrader 안에서 컴파일한 뒤, 연결된 모든 브로커나 거래소에서 실행하세요. 틱, 포지션, 주문, 지표 모두 호출 한 번으로 이용할 수 있습니다. |
플랫폼 외부
EasyFIX API어떤 언어로 작성된 것이든 자체 엔진을 그대로 유지하고 SharpTrader를 게이트웨이로 사용하세요. SharpTrader가 호가를 스트리밍하고, 브로커 및 거래소 커넥터를 통해 주문을 라우팅합니다. |
자체 터미널 내부
BjfChart 차트 라이브러리단일 DLL로 .NET 애플리케이션에 전문적인 캔들스틱 차트, 지표, 드로잉 도구, 트레이딩 패널, 호가창을 실시간 틱 피드와 함께 제공합니다. |
코딩 모듈은 SharpTrader를 자동매매 전략 개발 환경으로 바꿔 줍니다. 봇은 플랫폼의 기본 Bot 클래스를 상속하는 C# 클래스로, 초기화, 모든 수신 틱, 포지션 진입, 포지션 청산, 주문 상태 업데이트 등의 이벤트에 반응합니다. 플랫폼이 이를 컴파일하고, 입력값을 인터페이스에 표시하며, 내장된 아비트리지, 뉴스, 임펄스 전략과 나란히 실계좌 또는 데모 계좌에서 실행합니다.
| 영역 | 가능한 작업 |
|---|---|
| 시장 데이터 | ticker 객체를 통해 심볼별, 세션별 매수호가, 매도호가, 스프레드, 포인트 값을 제공합니다. 세션은 연결된 브로커 또는 거래소 계좌 하나를 의미하므로, 하나의 봇이 세션 인덱스를 사용해 여러 거래 상대방을 동시에 모니터링하고 거래할 수 있습니다. |
| 주문 및 포지션 | 시장가 체결용 sendOrder, 손절 및 이익실현용 modifyPositionByID, closePositionByID, ID 또는 코멘트 기준 조회, 그리고 진입, 청산, 대기 주문의 실시간 목록을 제공합니다. |
| 포지션 상세 정보 | 각 포지션에는 진입 및 청산 가격과 시간, 거래량, 방향, 세션, 손익, 코멘트, 손절, 이익실현, 그리고 양쪽 레그의 측정된 슬리피지와 체결 시간이 포함됩니다. 이 마지막 항목 덕분에 봇은 브로커가 실제로 어떻게 체결하는지에 맞춰 적응할 수 있습니다. |
| 지표 | 모든 타임프레임에서 사용할 수 있는 EMA, MACD 등 내장 지표 함수를 제공하며, 플랫폼 업데이트와 함께 지속적으로 확장됩니다. |
| 입력값 및 로깅 | 공개 속성 중 [PropertyInfo] 특성이 지정된 속성은 인터페이스에서 편집 가능한 입력값으로 표시됩니다. writeLog는 플랫폼 로그에 기록하고, stopBot은 코드에서 전략을 중지합니다. |
| 계좌 상태 | 리스크 규칙과 포지션 사이징을 위한 세션별 잔고와 에퀴티를 제공합니다. |
// Illustrative skeleton. Names follow the SharpTrader coding library reference. using SharpTraderBot; public class SpreadGuardBot : Bot { [PropertyInfo(0.10, "Lot size")] public double Lots { get; set; } [PropertyInfo(20, "Max spread, points")] public int MaxSpreadPoints { get; set; } string _inFlight; // one order in flight per tick public virtual void OnInit() { writeLog("SpreadGuardBot started"); } public virtual void OnTick(NewTickEventArgs args) { int session = 0; // session index = broker account string symbol = args.tick.symbol; double point = ticker.getPointValue(session, symbol); double spread = (ticker.getAsk(session, symbol) - ticker.getBid(session, symbol)) / point; if (spread > MaxSpreadPoints || _inFlight != null) return; _inFlight = sendOrder(session, symbol, Lots, OrderSide.BUY, OrderType.MARKET, 0, "spread-guard"); } }
Where, Select, Any 대신 일반 foreach 루프를 사용하세요. API에서 제공하는 가격은 브로커 포인트 단위이므로, 자체 임계값과 비교하기 전에 포인트 값을 곱하세요. 또한 중복 체결을 디버깅하고 싶지 않다면, 반환된 클라이언트 주문 ID로 확인하여 틱당 하나의 주문만 처리 중이도록 유지하세요.전체 클래스, 메서드, 이벤트 레퍼런스: SharpTrader 코딩 라이브러리 문서. 코딩 모듈은 SharpTrader Pro의 애드온입니다. 현재 번들 구성은 SharpTrader Pro 페이지에서 확인하세요.
모든 것이 플랫폼 안에 있어야 하는 것은 아닙니다. 이미 시그널 엔진, 리스크 매니저, 맞춤형 프런트엔드 또는 리서치 파이프라인을 운영 중이라면, EasyFIX를 통해 간소화된 FIX 프로토콜로 SharpTrader와 통신할 수 있습니다. SharpTrader가 실행 게이트웨이가 되어 브로커 및 거래소와의 연결을 유지하고, 사용자는 원하는 어떤 언어로든 자체 코드에서 주문을 보내고 호가와 체결 정보를 받습니다.
EasyFIX가 전달하는 정보
|
대표적인 통합 사례
|
EasyFIX는 수정된 FIX 방언입니다. 개발자에게 익숙한 메시지 모델은 유지하면서, 리테일-게이트웨이 연결에 필요 없는 번거로운 절차는 생략했습니다. 사양서, 샘플 세션, 테스트 연결은 요청 시 SharpTrader Pro 및 Lite 사용자에게 제공됩니다. 연결하려는 대상에 대한 간단한 설명과 함께 support@bjftradinggroup.com으로 문의하세요.
2026년에 당사는 SharpTrader의 차트 기능을 처음부터 다시 구축했으며, 그 엔진을 개발자용 독립 라이브러리로 제공합니다. BjfChart는 SkiaSharp 기반의 WinForms용 GPU 가속 캔들스틱 차트 컨트롤입니다. 수만 개의 바를 초당 60프레임으로 렌더링하며, net48과 net8.0-windows를 모두 대상으로 하는 단일 BjfChart.dll로 제공되므로 레거시 .NET Framework 터미널과 신규 .NET 8 애플리케이션 모두에 바로 적용할 수 있습니다.
영상: SharpTrader Charting, 새 차트 라이브러리와 수동 거래 사용법
8개의 타임프레임, 지표, 피보나치 및 추세 도구, 드래그 가능한 손절 및 이익실현 라인이 있는 주문 티켓, 멀티 브로커 차트를 SharpTrader 안에서 실시간으로 보여드립니다. YouTube에서 보기
차트 엔진
|
트레이딩 레이어
|
| 그룹 | 포함 항목 |
|---|---|
| 오버레이 지표 | SMA, EMA, WMA, VWAP, Bollinger Bands, Keltner Channels, Donchian Channels, Envelope, Parabolic SAR. |
| 하위 패널 지표 | RSI, 히스토그램 포함 MACD, Stochastic, ATR, CCI, ADX / DMI, Momentum, Rate of Change, Williams %R, Awesome Oscillator, Standard Deviation, On-Balance Volume, Money Flow Index. |
| 정확도 | 지표 계산은 독립적인 레퍼런스 구현과 교차 검증되었습니다. SMA, EMA, Bollinger, RSI, ATR, Stochastic, CCI는 1e-9까지 일치하며, MACD, ADX, DI, Williams %R, MFI, OBV는 정확성과 범위가 검증되었습니다. |
| 드로잉 도구 | 추세선, 레이, 확장선, 수평선 및 수평 레이, 수직선, 화살표, 평행 채널, 사각형, 타원, 피보나치 되돌림, 피보나치 확장, 그리고 가격 차이, 변동률, 바 개수를 표시하는 측정 도구. 모두 데이터 공간에 고정되므로 확대/축소와 이동 시에도 제자리에 유지됩니다. |
| 확장성 | IIndicator를 구현하거나 IndicatorBase를 상속하고, 캔들 목록에 맞춰 정렬된 하나 이상의 시리즈를 반환하며, 오버레이 또는 하위 패널, 선, 히스토그램 또는 점 중에서 선택한 뒤 등록하면 우클릭 메뉴와 저장된 레이아웃에 표시됩니다. |
using BjfChart;
using BjfChart.Indicators;
using BjfChart.Models;
var chart = new ChartControl { Dock = DockStyle.Fill };
form.Controls.Add(chart);
chart.SetData(myCandles); // IEnumerable<Candle>
chart.AddIndicator("ema");
chart.AddIndicator("bb");
chart.AddIndicator("macd"); // draws in its own sub-panel
chart.AddIndicator(new RsiIndicator(21)); // or by type, with custom parameters
chart.CandleInterval = TimeSpan.FromMinutes(15); // enables auto-bucketing
chart.FeedTick(DateTime.UtcNow, price, volume); // rolls a new candle at each boundary
chart.StartDrawing(DrawingKind.FibRetracement); // next drag draws a fib retracement
chart.SaveLayout(@"C:\layouts\eurusd.json");
// Trading panel wired to your execution layer
var panel = new TradingPanel { Dock = DockStyle.Right, Symbol = "EURUSD" };
panel.AttachChart(chart); // draws entry / SL / TP lines on the chart
panel.OrderSubmitted += (s, req) => myExecutionEngine.Send(req);
panel.PositionModified += (s, pos) => broker.Modify(pos); // after a drag of SL or TP
코드의 모든 기능은 차트의 우클릭 메뉴에서도 사용할 수 있습니다: 지표 추가 또는 제거, 드로잉 도구 선택, 오버레이 관리, 테마 전환, 레이아웃 저장 또는 불러오기. 라이브러리 빌드에는 Windows와 .NET SDK 8.0 이상이 필요하며, NuGet이 SkiaSharp를 자동으로 복원합니다. 시뮬레이션된 실시간 틱으로 실행되는 데모 애플리케이션이 포함되어 있습니다.
모든 개발자 문의는 플랫폼을 개발하는 팀이 직접 답변합니다. 봇 API 및 EasyFIX 관련 문의 시에는 SharpTrader 버전과 계정 유형을, BjfChart 관련 문의 시에는 .NET 타깃과 데이터 피드를 함께 알려 주세요.
| 이메일support@bjftradinggroup.com코드 샘플, 사양서, 라이선스 문의에 적합 | 전화+1 (905) 599-5507월요일~금요일, 동부 시간(토론토) 9:00~18:00 | Telegramt.me/bjftradinggroup간단한 질문 및 후속 문의 |
BJF Trading Group Inc., 3397 Mistwell Crescent, Oakville, ON, L6L 0A2, Canada. 일반 문의: 문의 페이지.
새로운 글, 리서치 논문, 제품 출시 소식을 게시하는 즉시 전해 드립니다.
특정 브로커의 특이점에 대응하는 봇, 실행 게이트웨이가 필요한 외부 엔진, 또는 금요일까지 차트가 필요한 터미널. 상세 내용을 담은 이메일 한 통이면, 다음 단계를 담은 답장 한 통을 드립니다.
BJF Trading Group Inc.는 숙련된 트레이더와 개발자를 위한 소프트웨어 도구를 개발합니다. 당사는 브로커, 금융기관 또는 투자 자문사가 아니며, 거래를 실행하거나 자금을 운용하지 않습니다. 이 페이지의 코드 샘플은 예시이며 현재 라이브러리 레퍼런스와 다를 수 있으므로, 항상 사용 중인 플랫폼 버전의 문서를 확인하세요. 외환, CFD, 암호화폐 거래는 높은 손실 위험을 수반하며 모든 투자자에게 적합하지 않습니다. 이 페이지의 어떤 내용도 금융 조언이나 수익 보장이 아닙니다.