LogoLogo
Back to HaasOnline.comSwitch to Trade Platform
3.x
3.x
  • Welcome
  • Getting Started
    • Using Local API Server
    • Authentication
    • Response
      • Error Codes
  • HaasScript
    • Using HaasScript
      • HaasScript Facts
      • Charting
      • Order Handling
      • Interval
      • Input Fields
      • Positions Handling
        • Fee correction
      • Position Information
      • Memory Management
      • Optimizations
      • Signal Handling
      • Trading
    • Script Editor
      • Syntax
      • Parameters
      • Interaction
    • Visual Editor
      • Blocks
      • Parameters
      • Flow Control
      • Interaction
    • Custom Commands
    • Tutorials
      • Trade Bot Guide
        • Creating A Trade Bot
          • Visual Editor Guide
          • Script Editor Guide
          • Custom Containers
        • Customizing Indicators
        • Customizing Safeties
        • Customizing Insurances
        • Creating Easy Indicators
      • Unmanaged Trading Guide
        • Executing Orders
        • Managing Orders
        • Managing Positions
        • Managing Wallet
      • Script Editor
        • Classes
        • MadHatter BBands
        • Percentage Price Change
      • Visual Editor
        • Importing Scripts
        • SmoothRSI
        • Scalper Bot
    • Commands
      • Array Helpers
      • Charting
      • Constants
      • Custom Commands Helpers
      • Easy Indicators
      • Easy Insurances
      • Easy Safeties
      • Equations
      • Flow Control
      • Input Fields
      • Input Settings
      • Mathematical
      • Memory Helpers
      • Miscellaneous
      • Order Handling
      • Order Information
      • Position Information
      • Position Prices
      • Price Data
      • Price Market Information
      • Profit Information
      • Settings
      • Signal Helpers
      • String Helpers
      • Technical Analysis
      • Technical Analysis Helpers
      • Time Information
      • Trade Actions (Managed)
      • Trade Actions (Unmanaged)
      • Trade Bot
      • Trade Market Information
      • Wallet
  • API Endpoints
    • Software API
    • Market Data API
    • Account Data API
    • Trade Data API
    • Advanced Order API
    • Trade Bot API
    • Custom Trade Bot API
    • ENUMS
    • Data Objects
  • Examples
    • Script Bots (C#)
      • Scalper Trade Bot
      • Flash Crash Trade Bot
    • Script Indicators (C#)
      • Indicator Script
      • Technical Analysis Library
    • Pshai Scripts (C#)
      • BBands Ext
      • BBands Ext v2
      • Chaikin A/D Line
      • Calibrator
      • Pshai's RVI
    • Scripted Driver
  • Other Resources
    • YouTube
    • Guides & Tutorials
    • Questions & Answers
    • Community Projects
  • Need Help?
    • Ask on Discord
    • Submit Support Ticket
Powered by GitBook
On this page
  • Custom Scripted Driver
  • Requirements
  • Examples
  • Interface

Was this helpful?

  1. Examples

Scripted Driver

PreviousPshai's RVI

Last updated 6 years ago

Was this helpful?

Custom Scripted Driver

HaasOnline Trade Server provides the ability to create and maintain your own custom exchange driver.

Requirements

  • Only 1 driver per instance

  • Spot & Leverage supported

  • No simulated accounts supported

  • .NET Framework v4.5

  • Use RestSharp v105.2.3 for API calls.

  • Place the file in "HTS/ScriptDriver" and rename it to ExchangeDriver.cs

Examples

Interface

public interface IScriptApi
    {
        void Connect();
        void Disconnect();
        int PollingSpeed { get; }

        ScriptedExchangeType PlatformType { get; }

        bool HasTickerBatchCalls { get; }
        bool HasOrderbookBatchCalls { get; }
        bool HasLastTradesBatchCalls { get; }

        bool HasPrivateKey { get; set; }
        bool HasExtraPrivateKey { get; set; }
        string PingAddress { get; set; }

        void SetCredentials(string publicKey, string privateKey, string extra);

        event EventHandler<string> Error;

        event EventHandler<IScriptTick> PriceUpdate;
        event EventHandler<IScriptOrderbook> OrderbookUpdate;
        event EventHandler<IScriptOrderbook> OrderbookCorrection;

        event EventHandler<IScriptLastTrades> LastTradesUpdate;

        event EventHandler<Dictionary<string, decimal>> WalletUpdate;
        event EventHandler<Dictionary<string, decimal>> WalletCorrection;

        event EventHandler<List<IScriptPosition>> PositionListUpdate;
        event EventHandler<List<IScriptPosition>> PositionCorrection;

        event EventHandler<List<IScriptOrder>> OpenOrderListUpdate;
        event EventHandler<List<IScriptOrder>> OpenOrderCorrection;

        IScriptTick GetTicker(IScriptMarket market);
        List<IScriptTick> GetAllTickers();

        IScriptOrderbook GetOrderbook(IScriptMarket market);
        List<IScriptOrderbook> GetAllOrderbooks();

        IScriptLastTrades GetLastTrades(IScriptMarket market);
        List<IScriptLastTrades> GetAllLastTrades();

        Dictionary<string, decimal> GetWallet();
        IScriptMarginWallet GetMarginWallet();

        List<IScriptOrder> GetOpenOrders();
        List<IScriptPosition> GetPositions();
        List<IScriptOrder> GetTradeHistory();

        string PlaceOrder(IScriptMarket market, ScriptedOrderType direction, decimal price, decimal amount, bool isMarketOrder, string template = "", bool hiddenOrder = false);
        string PlaceOrder(IScriptMarket market, ScriptedLeverageOrderType direction, decimal price, decimal amount, decimal leverage, bool isMarketOrder, string template = "", bool isHiddenOrder = false);

        bool CancelOrder(IScriptMarket market, string orderId, bool isBuyOrder);

        decimal GetContractValue(IScriptMarket pair, decimal price);

        IScriptOrder GetOrderDetails(string orderId, IScriptMarket market, decimal price, decimal amount, bool isBuyOrder);
        ScriptedOrderStatus GetOrderStatus(string orderId, IScriptMarket scriptMarket, decimal price, decimal amount, bool isBuyOrder);
        List<IScriptMarket> GetMarkets();
        List<IScriptMarket> GetMarginMarkets();
        decimal GetMaxPositionAmount(IScriptMarket pair, decimal tickClose, Dictionary<string, decimal> wallet, decimal leverage, ScriptedLeverageSide scriptedLeverageSide);
    }

LogoGitHub - Haasonline/Haasonline.Public.ExchangeDrivers: Examples of the scripted API drivers for Haasonline TradeserverGitHub