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; }
}