Data Objects
Market Data
Market
public class Market
{
public EnumPriceSource PriceSource { get; set; }
public string PrimaryCurrency { get; set; }
public string SecondaryCurrency { get; set; }
public string ContractName { get; set; }
public string DisplayName { get; set; }
public string ShortName { get; set; }
public int AmountDecimals { get; set; }
public int PriceDecimals { get; set; }
public decimal MinimumTradeAmount { get; set; }
public decimal MinimumTradeVolume { get; set; }
public decimal TradeFee { get; set; }
public int SettlementDate { get; set; }
}
Orderbook
public class Orderbook
{
public DateTime Timestamp { get; set; }
public long UnixLastUpdate { get; set; }
public Market PriceMarket { get; set; }
public List<OrderbookRecord> Bid { get; set; }
public List<OrderbookRecord> Ask { get; set; }
}
Orderbook
public class OrderbookRecord
{
public decimal Price { get; set; }
public decimal Amount { get; set; }
}
PriceTick
public class PriceTick
{
public DateTime Timestamp { get; set; }
public long UnixTimestamp { get; set; }
public decimal Open { get; set; }
public decimal HighValue { get; set; }
public decimal LowValue { get; set; }
public decimal Close { get; set; }
public decimal Volume { get; set; }
public decimal CurrentBuyValue { get; set; }
public decimal CurrentSellValue { get; set; }
}
Trade
public class Trade
{
public DateTime Timestamp { get; set; }
public long UnixTimestamp { get; set; }
public EnumTradeType TradeType { get; set; }
public decimal Price { get; set; }
public decimal Amount { get; set; }
}
TradeContainer
public class TradeContainer
{
public DateTime Timestamp { get; set; }
public long UnixTimestamp { get; set; }
public List<Trade> LastTrades { get; set; }
}
Account Data
AccountInformation
public class AccountInformation
{
public string Guid { get; set; }
public string Name { get; set; }
public EnumPlatformType PlatformType { get; set; }
public EnumPriceSource ConnectedPriceSource { get; set; }
public bool IsSimulatedAccount { get; set; }
public Dictionary<string, string> AvailableOrderTemplates { get; set; }
}
Wallet
public class Wallet
{
public Dictionary<string, decimal> Coins { get; set; }
public Dictionary<string, Position> Positions { get; set; }
}
Position
public class Position
{
[JsonProperty("Position")]
public EnumFundsPosition Side { get; set; }
public decimal UsedMargin { get; set; }
public decimal Amount { get; set; }
public decimal Leverage { get; set; }
public Market PriceMarket { get; set; }
public decimal InvestmentPrice { get; set; }
public decimal ProfitLossRatio { get; set; }
public decimal ProfitLossNow { get; set; }
public decimal MarginCallPrice { get; set; }
public string AmountLabel { get; set; }
public string ProfitLabel { get; set; }
}
OrderContainer
public class OrderContainer
{
[JsonProperty("ExchangeOrderList")]
public Dictionary<string, BaseOrder> SpotOrders { get; set; }
[JsonProperty("MarginOrderList")]
public Dictionary<string, BaseOrder> MarginOrders { get; set; }
[JsonProperty("LeverageOrderList")]
public Dictionary<string, BaseOrder> LeverageOrders { get; set; }
}
BaseOrder
public class BaseOrder
{
public Market Market { get; set; }
public string OrderId { get; set; }
public EnumOrderStatus OrderStatus { get; set; }
public EnumOrderType OrderType { get; set; }
public EnumFundsMovingPosition FundsMovement { get; set; }
public decimal Price { get; set; }
public decimal Amount { get; set; }
public decimal AmountFilled { get; set; }
public DateTime AddedTime { get; set; }
public int UnixAddedTime { get; set; }
}
Trade Bot Data
Trade Bot
public class TradeBot
{
public EnumBotType BotType { get; set; }
public string GUID { get; set; }
public string Name { get; set; }
public string AccountId { get; set; }
public bool Activated { get; set; }
public decimal CurrentTradeAmount { get; set; }
public decimal CurrentFeePercentage { get; set; }
public EnumCoinsPosition CoinsPosition { get; set; }
public EnumFundsPosition FundsPosition { get; set; }
public decimal LastBuyPrice { get; set; }
public decimal LastSellPrice { get; set; }
public decimal LastLongPrice { get; set; }
public decimal LastShortPrice { get; set; }
public bool AdjustAmountDown { get; set; }
public EnumLimitOrderPriceType LimitOrderType { get; set; }
public int OpenOrderTimeout { get; set; }
public int TemplateTimeout { get; set; }
public bool GoAllIn { get; set; }
public List<string> IssuedOrders { get; set; }
public List<BaseOrder> CompletedOrders { get; set; }
public decimal ROI { get; set; }
public decimal TotalFeeCosts { get; set; }
public decimal TotalProfits { get; set; }
public decimal LastPriceUpdate { get; set; }
public decimal ContractValue { get; set; }
public string GroupName { get; set; }
public TradeBotSignals BotSignals { get; set; }
public List<string> BotLogBook { get; set; }
public Market PriceMarket { get; set; }
public decimal Leverage { get; set; }
public int UnixSettlementDate { get; set; }
public bool HighFrequencyUpdates { get; set; }
public bool UseHiddenOrders { get; set; }
public string BuyOrderTemplateId { get; set; }
public string SellOrderTemplateId { get; set; }
public string EnterPositionOrderTemplateId { get; set; }
public string ExitPositionOrderTemplateId { get; set; }
public string ProfitLabel { get; set; }
public string Notes { get; set; }
public bool Locked { get; set; }
public uint ActivatedSince { get; set; }
public uint DeactivatedSince { get; set; }
public bool ConsensusMode { get; set; }
public Dictionary<string, Safety> Safeties { get; set; }
public Dictionary<string, Indicator> Indicators { get; set; }
public Dictionary<string, Insurance> Insurances { get; set; }
}
TradeBotSignals
public class TradeBotSignals
{
public bool PriceSourceConnected { get; set; }
public bool AccountConnected { get; set; }
public bool TradeAmountOk { get; set; }
public bool OpenOrdersOk { get; set; }
public bool InBenchmark { get; set; }
public bool IsSafetySignalNow { get; set; }
public decimal MaxLongAmount { get; set; }
public decimal MaxNoPositionAmount { get; set; }
public decimal MaxShortAmount { get; set; }
public decimal MaxBuyAmount { get; set; }
public decimal MaxSellAmount { get; set; }
public int BotBuySellSignal = 50;
public int BotLongShortSignal = 50;
public DateTime LastPollMoment { get; set; }
public int UnixLastPollMoment { get; set; }
public EnumBotTradeResult BuySellResult { get; set; }
public EnumFundsPosition LongShortResult { get; set; }
}
Custom Bots
AccumulationBot
public class AccumulationBot : BaseCustomBot
{
public int AmountDecimals { get; set; }
public int PriceDecimals { get; set; }
public long NextOrderTime { get; set; }
public EnumOrderType OrderType { get; set; }
public decimal AccumulatedSoFar { get; set; }
public EnumAccumulationBotStopType StopType { get; set; }
public decimal StopTypeValue { get; set; } = 0.0M;
public int RandomOrderTimeX { get; set; } = 1;
public int RandomOrderTimeY { get; set; } = 60;
public decimal RandomOrderSizeX { get; set; } = 1;
public decimal RandomOrderSizeY { get; set; } = 60;
public bool TriggerOnPrice { get; set; }
public bool TriggerWhenHigher { get; set; }
public decimal TriggerValue { get; set; }
}
BaseCustomBot
public class BaseCustomBot
{
public EnumCustomBotType BotType { get; set; }
public bool IsBacktesting { get; set; }
public string GUID { get; set; }
public string Name { get; set; }
public string AccountId { get; set; }
public Market PriceMarket { get; set; }
public decimal Leverage { get; set; }
public EnumCoinsPosition CoinPosition { get; set; }
public EnumFundsPosition FundsPosition { get; set; }
public decimal CurrentTradeAmount { get; set; }
public decimal CorrectedTradeAmount { get; set; }
public EnumBotTradeAmount AmountType { get; set; }
public decimal LastBuyPrice { get; set; }
public decimal LastSellPrice { get; set; }
public decimal CurrentFeePercentage { get; set; }
public int SettlementDate { get; set; }
public virtual string ProfitLabel { get; set; }
public bool Activated { get; set; }
public uint ActivatedSince { get; set; }
public uint DeactivatedSince { get; set; }
public bool StatusPriceSourceOk { get; set; }
public bool StatusAccountOk { get; set; }
public bool OpenOrdersOk { get; set; }
public bool WalletOk { get; set; }
public string OpenOrderId { get; set; }
public decimal TotalFeeCosts { get; set; }
public decimal TotalProfits { get; set; }
public decimal ROI { get; set; }
public decimal LastPriceUpdate { get; set; }
public decimal ContractValue { get; set; }
public long LastUpdateTime { get; set; }
public string GroupName { get; set; }
public string Notes { get; set; }
public virtual string CustomTemplate { get; set; }
public List<string> BotLogBook { get; set; }
public List<BaseOrder> CompletedOrders { get; set; }
}
CryptoIndexBot
public class CryptoIndexBot : BaseCustomBot
{
public string BaseCoin { get; set; }
public decimal CurrentTradeAmount { get; set; }
public List<CryptoIndexBotIndex> Index { get; set; }
public decimal TotalExtraBuy { get; set; }
public decimal TotalExtraSell { get; set; }
public bool IndividualCoinGrowth { get; set; }
public bool AllocateProfits { get; set; }
public DateTime LastOrderTimestamp { get; set; }
public Dictionary<string, decimal> MappendIndexes { get; set; }
public Dictionary<string, CryptoIndexBotIndexResult> IndexResult { get; set; }
}
EmailBot
public class EmailBot : BaseCustomBot
{
public List<EmailBotAction> Actions { get; set; }
public decimal StopLoss { get; set; }
public decimal StopLossPrice { get; set; }
// On leverage this is the minimum profit
public decimal PriceChangeToBuy { get; set; }
// On leverage this is the stop loss
public decimal PriceChangeToSell { get; set; }
public decimal PriceChangeTarget { get; set; }
public decimal MaximumLossOnPosition
{
get { return PriceChangeToBuy; }
set { }
}
public decimal MinimumProfitOnPosition
{
get { return PriceChangeToBuy; }
set { }
}
}
FlashCrashBot
public class FlashCrashBot : BaseCustomBot
{
public Dictionary<int, SlotObject> Slots { get; set; }
public int BaseKey { get; set; }
public decimal TotalBuyAmount { get; set; }
public decimal TotalSellAmount { get; set; }
public decimal BasePrice { get; set; }
public bool IsStopping { get; set; }
public EnumFlashSpreadOptions PriceSpreadType { get; set; }
public decimal PriceSpread { get; set; }
public decimal PercentageBoost { get; set; }
public decimal AmountSpread { get; set; }
public int AmountDecimals { get; set; }
public int PriceDecimals { get; set; }
public EnumCurrencyType AmountType { get; set; }
public EnumFlashSpreadOptions AmountSpreadType { get; set; }
public int RefillDelay { get; set; }
public decimal MinPercentage { get; set; }
public decimal MaxPercentage { get; set; }
public bool QuickRestartPossible { get; set; }
public bool FollowTheTrend { get; set; }
public int FollowTheTrendTimeout { get; set; }
public int FollowTheTrendChannelRange { get; set; }
public int FollowTheTrendChannelOffset { get; set; }
public bool SafetyEnabled { get; set; }
public decimal SafetyTriggerLevel { get; set; }
public bool SafetyMoveInOut { get; set; }
public decimal SafetyMoveInOutTarget { get; set; }
}
InterExchangeArbitrageBot
public class InterExchangeArbitrageBot : BaseCustomBot
{
public decimal CurrentFeePercentage2 { get; set; }
public decimal CurrentTradeAmount { get; set; }
public string AccountId2 { get; set; }
public Market PriceMarket2 { get; set; }
public decimal TriggerLevel { get; set; }
public bool MainAccountIsBought { get; set; }
public PriceTick LastTick { get; set; }
public PriceTick LastTick2 { get; set; }
public int PriceDecimals1 { get; set; }
public int PriceDecimals2 { get; set; }
public string OpenOrderIDMain { get; set; }
public string OpenOrderIDSecondairy { get; set; }
public decimal TotalTradesSoFar { get; set; }
public decimal MaxTradeAmount { get; set; }
public int MaxTradesPerDay { get; set; }
}
MadHatterBot
public class MadHatterBot : BaseCustomBot
{
public int Interval { get; set; }
public decimal StopLoss { get; set; }
public decimal StopLossPrice { get; set; }
public bool DisableAfterStopLoss { get; set; }
public decimal PriceChangeToBuy { get; set; }
public decimal PriceChangeToSell { get; set; }
public decimal PriceChangeTarget { get; set; }
public Indicator Macd { get; set; }
public Indicator BBands { get; set; }
public Indicator Rsi { get; set; }
public bool UseTwoSignals { get; set; }
public EnumFundsPosition MappedBuySignal { get; set; }
public EnumFundsPosition MappedSellSignal { get; set; }
}
MarketMarkingBot
public class MarketMarkingBot : BaseCustomBot
{
public decimal TradeAmount { get; set; }
public decimal CustomFee { get; set; }
public MarketMarkingBotSlot FirstOrder { get; set; }
public MarketMarkingBotSlot SecondOrder { get; set; }
public decimal FirstOffset { get; set; }
public decimal SecondOffset { get; set; }
public bool UseSecondOrder { get; set; }
public int ResetTimeout { get; set; }
public PriceTick LastTick { get; set; }
}
OrderBot
public class OrderBot : BaseCustomBot
{
public List<OrderBotPreOrder> PreOrders { get; set; }
}
ScalperBot
public class ScalperBot : BaseCustomBot
{
public decimal MinimumTargetChange { get; set; }
public decimal MaxAllowedReverseChange { get; set; }
}
ScriptBot
public class ScriptBot : BaseCustomBot
{
public Dictionary<string, ScriptBotOrder> OpenOrders { get; set; }
public List<string> FinishedOrders { get; set; }
public List<string> CancelledOrders { get; set; }
public Dictionary<string, string> AvailableScript { get; set; }
public string ScriptId { get; set; }
public string FullScriptName { get; set; }
public List<IndicatorOption> BotSettings { get; set; }
public bool ScriptStatusOk { get; set; }
public string LocalScriptPath { get; set; }
public decimal LastLongBuyPrice { get; set; }
public decimal LastShortBuyPrice { get; set; }
public decimal LastLongSellPrice { get; set; }
public decimal LastShortSellPrice { get; set; }
}
ZoneRecoveryBot
public class ZoneRecoveryBot : BaseCustomBot
{
public decimal FactorShort { get; set; }
public decimal FactorLong { get; set; }
public decimal ZoneFactor { get; set; }
public decimal TargetPercentage { get; set; }
public decimal TradeAmount { get; set; }
public decimal MaxTradeAmount { get; set; }
public decimal TriggerLevel { get; set; }
public bool UseMarketOrders { get; set; }
public bool RoundAmount { get; set; }
public decimal BasePrice { get; set; }
public EnumFundsPosition FirstAction { get; set; }
public List<ZoneDefinition> CalculatedZones { get; set; }
public decimal TakeLongPrice { get; set; }
public decimal GoLongPrice { get; set; }
public decimal GoShortPrice { get; set; }
public decimal TakeShortPrice { get; set; }
public List<OpenRecoveryPositionDefinition> TakenPositions { get; set; }
}
Custom Bot Data Objects
CryptoIndexBotIndex
public class CryptoIndexBotIndex
{
public string Coin { get; set; }
public decimal Amount { get; set; }
public decimal StartPrice { get; set; }
public decimal ConversionRate { get; set; }
public decimal BuyThreshold { get; set; }
public decimal SellThreshold { get; set; }
public bool NeedsRebalancing { get; set; }
public bool HasOpenOrder { get; set; }
public bool IsStopLossActive { get; set; }
public decimal StopLoss { get; set; }
}
CryptoIndexBotIndexResult
public class CryptoIndexBotIndexResult
{
public string Coin { get; set; }
public decimal InWallet { get; set; }
public decimal IndexValue { get; set; }
public bool Deactivated { get; set; } = false;
public decimal TargetPercentage { get; set; }
public decimal CurrentPercentage { get; set; }
}
CryptoIndexBotIndexSaveObject
public class CryptoIndexBotIndexSaveObject
{
public string Coin { get; set; }
public decimal Amount { get; set; }
public decimal BuyThreshold { get; set; }
public decimal SellThreshold { get; set; }
public decimal StopLoss { get; set; }
}
EmailBotAction
public class EmailBotAction
{
public string Guid { get; set; }
public string ProviderGuid { get; set; }
public List<EmailBotActionMessage> Messages { get; set; }
public int TimeoutInSeconds { get; set; }
public EnumBotTradeResult SpotAction { get; set; }
public EnumFundsMovingPosition LeverageAction { get; set; }
}
EmailBotActionMessage
public class EmailBotActionMessage
{
public string Message { get; set; }
public long LastReceivedTime { get; set; }
public string TemplateGuid { get; set; }
}
FlashCrashBotSaveObject
public class FlashCrashBotSaveObject
{
public string BotName { get; set; }
public string BotGuid { get; set; }
public string AccountId { get; set; }
public decimal Fee { get; set; }
public Market PriceMarket { get; set; }
public decimal BasePrice { get; set; }
public EnumFlashSpreadOptions PriceSpreadType { get; set; }
public decimal PriceSpread { get; set; }
public decimal PercentageBoost { get; set; }
public decimal MinPercentage { get; set; }
public decimal MaxPercentage { get; set; }
public EnumCurrencyType AmountType { get; set; }
public decimal AmountSpread { get; set; }
public decimal BuyAmount { get; set; }
public decimal SellAmount { get; set; }
public int RefillDelay { get; set; }
public bool SafetyEnabled { get; set; }
public decimal SafetyTriggerLevel { get; set; }
public bool SafetyMoveInOut { get; set; }
public bool FollowTheTrend { get; set; }
public int FollowTheTrendChannelRange { get; set; }
public int FollowTheTrendChannelOffset { get; set; }
public int FollowTheTrendTimeout { get; set; }
}
Indicator
public class Indicator
{
public string GUID { get; set; }
public EnumIndicator IndicatorType { get; set; }
public string IndicatorName { get; set; }
public List<IndicatorOption> IndicatorInterface { get; set; }
public string IndicatorTypeShortName { get; set; }
public string IndicatorTypeFullName { get; set; }
public Market PriceMarket { get; set; }
public EnumPriceChartType ChartType { get; set; }
public int Timer { get; set; }
public int Deviation { get; set; }
public bool UseBuySignals { get; set; }
public bool UseSellSignals { get; set; }
public bool UseLongSignals { get; set; }
public bool UseNoPositionSignals { get; set; }
public bool UseShortSignals { get; set; }
public virtual bool ReverseSignals { get; set; }
public bool StandAlone { get; set; }
public EnumBotTradeResult BuySellResult { get; set; }
public EnumFundsPosition ShortLongResult { get; set; }
public EnumFundsPosition MappedLongSignal { get; set; }
public EnumFundsPosition MappedShortSignal { get; set; }
}
IndicatorOption
public class IndicatorOption
{
public string Title { get; set; }
public string Value { get; set; }
public List<object> Options { get; set; }
}
Insurance
public class Insurance
{
public string GUID { get; set; }
public EnumInsurances InsuranceType { get; set; }
public string InsuranceTypeShortName { get; set; }
public string InsuranceTypeFullName { get; set; }
public bool AgreeToTrade { get; set; }
public string InsuranceName { get; set; }
public List<IndicatorOption> InsuranceInterface { get; set; }
}
MarketMarkingBotSlot
public class MarketMarkingBotSlot
{
public MarketMarkingBotSlotObject BuyOrder { get; set; }
public MarketMarkingBotSlotObject SellOrder { get; set; }
public decimal Offset { get; set; }
public bool Active { get; set; }
}
MarketMarkingBotSlotObject
public class MarketMarkingBotSlotObject
{
public string OrderID { get; set; }
public decimal Price { get; set; }
public decimal TempAmount { get; set; }
public DateTime Timestamp { get; set; }
public bool Locked { get; set; }
}
OpenRecoveryPositionDefinition
public class OpenRecoveryPositionDefinition
{
public decimal Amount { get; set; }
public decimal Price { get; set; }
public decimal TargetPrice { get; set; }
public string PositionId { get; set; }
}
OrderBotPreOrder
public class OrderBotPreOrder : BaseOrder
{
public EnumOrderBotTriggerType Trigger { get; set; }
public decimal TriggerPrice { get; set; }
public string CustomTemplate { get; set; }
public string DependsOn { get; set; }
public string DependsOnNotExecuted { get; set; }
}
Safety
public class Safety
{
public string GUID { get; set; }
public EnumSafety SafetyType { get; set; }
public string SafetyName { get; set; }
public string SafetyTypeShortName { get; set; }
public string SafetyTypeFullName { get; set; }
public Market PriceMarket { get; set; }
public EnumBotTradeResult BuySellResult { get; set; }
public EnumFundsPosition ShortLongResult { get; set; }
public EnumFundsPosition MapBuySignal { get; set; }
public EnumFundsPosition MapSellSignal { get; set; }
public List<IndicatorOption> SafetyInterface { get; set; }
}
ScriptBotOrder
public class ScriptBotOrder
{
public string Guid { get; set; }
public decimal Price { get; set; }
public decimal Amount { get; set; }
public EnumOrderType OrderType { get; set; }
public EnumFundsMovingPosition FundsMovement { get; set; }
}
SlotObject
public class SlotObject
{
public string OrderID { get; set; }
public decimal Price { get; set; }
public decimal Amount { get; set; }
public bool InUse { get; set; }
public bool ActiveSlot { get; set; }
public EnumSlotType Type { get; set; }
public bool WaitingForExecuting { get; set; }
public DateTime LockTimeStamp { get; set; }
public List<string> OrderIDs { get; set; }
}
SoftwareInformation
public class SoftwareInformation
{
public bool IsBeta { get; set; }
public string VersionNumber { get; set; }
public EnumSoftwareLicence LicenceType { get; set; }
}
ZoneDefinition
public class ZoneDefinition
{
public decimal Amount { get; set; }
public decimal Price { get; set; }
public decimal TargetPrice { get; set; }
public decimal ExposureNow { get; set; }
public decimal TakenProfit { get; set; }
public decimal TakenLosses { get; set; }
public decimal Exit { get; set; }
public decimal FeeCosts { get; set; }
}
Advanced Orders Objects
AdvancedOrderBase
public class AdvancedOrderBase
{
public EnumPlatform PlatformType { get; set; }
public string Guid { get; set; }
public string Name { get; set; }
public bool Activated { get; set; }
public string AccountGuid { get; set; } = "";
public Market Market { get; set; } = new Market();
public decimal Leverage { get; set; }
public decimal Amount { get; set; }
public decimal CorrectedAmount { get; set; }
public int OrderDirection { get; set; }
public bool StartOrderOnActivation { get; set; }
public decimal StartOrderPrice { get; set; }
public string StartTemplateGuid { get; set; }
public bool IsPlacingStartOrder { get; set; }
public bool IsTracking { get; set; }
public virtual string TemplateGuid { get; set; }
public List<BaseOrder> CompletedOrders { get; set; }
}
StopTakeProfitOrder
public class StopTakeProfitOrder : AdvancedOrderBase
{
/// <summary>
/// When this price is breached, a order will be executed
/// </summary>
public decimal TriggerPrice { get; set; }
/// <summary>
/// When a order is executed, this price will be used.
/// </summary>
public decimal ExecutionPrice { get; set; }
}
TrailingStop
public class TrailingStop : AdvancedOrderBase
{
public decimal TrailingStopPercentage { get; set; }
public decimal RecordedPrice { get; set; }
}
Last updated