SharpTrader एक ट्रेडिंग प्लेटफ़ॉर्म है जो ब्रोकरों के लिए नहीं, बल्कि ट्रेडर्स के लिए बनाया गया है, और यह उन लोगों के लिए भी खुला है जो उनके लिए कोड लिखते हैं। प्लेटफ़ॉर्म के भीतर C# में अपनी रणनीतियाँ लिखें, EasyFIX API के माध्यम से अपने बाहरी सॉफ़्टवेयर को इसके एक्ज़िक्यूशन इंजन से जोड़ें, या हमारी GPU-त्वरित कैंडलस्टिक चार्टिंग लाइब्रेरी को अपने .NET टर्मिनल में शामिल करें।
| C#नेटिव रणनीति भाषा, SharpTrader के भीतर कंपाइल होती है | 50+ब्रोकरों के लिए FIX API कनेक्टर, साथ ही प्रमुख क्रिप्टो एक्सचेंज | 22BjfChart में इंडिकेटर, संदर्भ गणित से क्रॉस-चेक किए गए | 2एक DLL में टारगेट: पुराने ऐप्स के लिए net48, नए ऐप्स के लिए net8.0-windows |
हर विकल्प एक अलग समस्या हल करता है। वह विकल्प चुनें जो आपके कोड के स्थान से मेल खाता हो।
प्लेटफ़ॉर्म के भीतर
कोडिंग मॉड्यूल: C# बॉट APIएक रणनीति को C# क्लास के रूप में लिखें, उसे SharpTrader के भीतर कंपाइल करें और किसी भी कनेक्टेड ब्रोकर या एक्सचेंज पर चलाएँ। टिक्स, पोज़िशन, ऑर्डर और इंडिकेटर सभी बस एक कॉल की दूरी पर हैं। |
प्लेटफ़ॉर्म के बाहर
EasyFIX APIकिसी भी भाषा में अपना इंजन रखें और SharpTrader को गेटवे बनने दें: यह आपको कोट्स स्ट्रीम करता है और आपके ऑर्डर अपने ब्रोकर और एक्सचेंज कनेक्टरों के माध्यम से रूट करता है। |
आपके अपने टर्मिनल में
BjfChart चार्टिंग लाइब्रेरीएक सिंगल DLL जो आपके .NET एप्लिकेशन को लाइव टिक फ़ीड के साथ प्रोफ़ेशनल कैंडलस्टिक चार्ट, इंडिकेटर, ड्रॉइंग टूल्स, एक ट्रेडिंग पैनल और एक ऑर्डर बुक देती है। |
कोडिंग मॉड्यूल SharpTrader को स्वचालित रणनीतियों के लिए एक डेवलपमेंट एनवायरनमेंट में बदल देता है। बॉट एक C# क्लास है जो प्लेटफ़ॉर्म की बेस Bot क्लास से इनहेरिट करती है और इवेंट्स पर प्रतिक्रिया देती है: इनिशियलाइज़ेशन, हर आने वाला टिक, पोज़िशन खुलना, पोज़िशन बंद होना और ऑर्डर स्टेटस अपडेट। प्लेटफ़ॉर्म इसे कंपाइल करता है, आपके इनपुट इंटरफ़ेस में दिखाता है, और इसे लाइव या डेमो खातों पर बिल्ट-इन आर्बिट्राज, न्यूज़ और इम्पल्स रणनीतियों के साथ-साथ चलाता है।
| क्षेत्र | आप क्या कर सकते हैं |
|---|---|
| मार्केट डेटा | 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 फ़्रेम प्रति सेकंड पर दसियों हज़ार बार्स रेंडर करता है, और एक सिंगल BjfChart.dll के रूप में आता है जो net48 और net8.0-windows दोनों को टारगेट करता है, इसलिए यह पुराने .NET Framework टर्मिनलों और नए .NET 8 एप्लिकेशनों दोनों में आसानी से फ़िट हो जाता है।
वीडियो: SharpTrader Charting, नई चार्टिंग लाइब्रेरी और मैनुअल ट्रेडिंग वॉकथ्रू
आठ टाइमफ़्रेम, इंडिकेटर, फ़िबोनाची और ट्रेंड टूल्स, ड्रैग करने योग्य स्टॉप-लॉस और टेक-प्रॉफ़िट लाइनों वाला ऑर्डर टिकट, और मल्टी-ब्रोकर चार्ट, 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 और क्रिप्टोकरेंसी में ट्रेडिंग में नुकसान का उच्च जोखिम होता है और यह सभी निवेशकों के लिए उपयुक्त नहीं है। इस पेज पर कुछ भी वित्तीय सलाह या लाभ का वादा नहीं है।