SharpTraderはブローカーではなくトレーダーのために作られた取引プラットフォームであり、トレーダーのためにコードを書く人々にも開かれています。プラットフォーム内でC#を使って独自の戦略を作成したり、EasyFIX APIを通じて外部のソフトウェアを実行エンジンに接続したり、GPUで高速化されたローソク足チャートライブラリをご自身の.NETターミナルに組み込んだりできます。
| C#ネイティブの戦略言語、SharpTrader内でコンパイル | 50+ブローカーへのFIX APIコネクターと主要な暗号資産取引所 | 22BjfChartのインジケーター、参照用の計算式と照合済み | 21つのDLLで2つのターゲット:既存アプリ向けnet48、新規アプリ向けnet8.0-windows |
それぞれの選択肢は異なる課題を解決します。コードをどこに置くかに合わせてお選びください。
プラットフォーム内
コーディングモジュール:C# Bot API戦略をC#のクラスとして記述し、SharpTrader内でコンパイルして、接続済みの任意のブローカーや取引所で実行できます。ティック、ポジション、注文、インジケーターはすべて1回の呼び出しで利用できます。 |
プラットフォーム外
EasyFIX APIお使いの言語で書かれた独自のエンジンはそのままに、SharpTraderをゲートウェイとして利用できます。SharpTraderが気配値を配信し、ブローカーと取引所のコネクターを通じて注文をルーティングします。 |
独自のターミナル内
BjfChartチャートライブラリ1つのDLLで、.NETアプリケーションにプロ仕様のローソク足チャート、インジケーター、描画ツール、取引パネル、板情報、ライブのティックフィードを追加できます。 |
コーディングモジュールは、SharpTraderを自動売買戦略の開発環境に変えます。ボットはプラットフォームの基底クラスBotを継承したC#クラスで、初期化、受信するすべてのティック、ポジションのオープン、ポジションのクローズ、注文ステータスの更新といったイベントに反応します。プラットフォームがボットをコンパイルし、入力項目をインターフェースに表示し、内蔵のアービトラージ、ニュース、インパルス戦略と並行して、ライブ口座またはデモ口座で実行します。
| 分野 | できること |
|---|---|
| マーケットデータ | tickerオブジェクトを通じて、シンボルごと・セッションごとのBid、Ask、スプレッド、ポイント値を取得できます。セッションとは接続された1つのブローカーまたは取引所の口座のことで、1つのボットがセッションのインデックスによって複数の取引相手を同時に監視・取引できます。 |
| 注文とポジション | 成行執行のための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で管理し、1ティックにつき処理中の注文は1件に保ってください。クラス、メソッド、イベントの完全なリファレンス: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、ボリンジャーバンド、ケルトナーチャネル、ドンチャンチャネル、エンベロープ、パラボリックSAR。 |
| サブパネル・インジケーター | RSI、ヒストグラム付きMACD、ストキャスティクス、ATR、CCI、ADX / DMI、モメンタム、Rate of Change、ウィリアムズ%R、オーサム・オシレーター、標準偏差、オン・バランス・ボリューム、マネー・フロー・インデックス。 |
| 精度 | インジケーターの計算は独立した参照実装と照合されています:SMA、EMA、ボリンジャー、RSI、ATR、ストキャスティクス、CCIは1e-9の精度で一致し、MACD、ADX、DI、ウィリアムズ%R、MFI、OBVは正確性と値の範囲が検証されています。 |
| 描画ツール | トレンドライン、レイ、延長ライン、水平ラインと水平レイ、垂直ライン、矢印、平行チャネル、長方形、楕円、フィボナッチ・リトレースメント、フィボナッチ・エクステンション、そして価格差、変化率、バー数を表示する計測ツール。すべてデータ空間に固定されるため、ズームやパンをしても位置がずれません。 |
| 拡張性 | IIndicatorを実装する(またはIndicatorBaseを継承する)ことで、ローソク足のリストに対応する1つ以上の系列を返し、オーバーレイかサブパネルか、ライン、ヒストグラム、ドットかを選択し、登録すれば右クリックメニューと保存済みレイアウトに表示されます。 |
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以降が必要で、SkiaSharpはNuGetが自動的に復元します。シミュレーションのライブティックで動作するデモアプリケーションが付属しています。
開発者からのご質問はすべて、プラットフォームを開発しているチームが対応します。Bot 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。一般的なお問い合わせ:お問い合わせページ。
新しい記事、研究論文、製品リリースを公開時にお届けします。
特定のブローカーの癖に対応するボット、執行ゲートウェイが必要な外部エンジン、金曜日までにチャートが必要なターミナルなど。詳細を記載したメールを1通いただければ、次のステップを1通でご返信します。
BJF Trading Group Inc.は、経験豊富なトレーダーと開発者向けのソフトウェアツールを開発しています。当社はブローカー、金融機関、投資顧問ではなく、取引の執行や資金の運用は行いません。本ページのコードサンプルは説明用であり、現在のライブラリリファレンスと異なる場合があります。必ずお使いのプラットフォームのバージョンのドキュメントをご確認ください。FX、CFD、暗号資産の取引には高い損失リスクが伴い、すべての投資家に適しているわけではありません。本ページのいかなる内容も投資助言や利益の約束ではありません。