Signals Help Center
  • About Signals
  • Getting Started
    • Tutorials
      • Your First Strategy
        • Create a New Strategy
        • Define Variables
        • Define Setup Method
        • Define Register Actions Method
        • Backtest
        • Deploy Strategy & Start Receiving Signals
    • Dashboard
    • Strategies
      • Strategy Tools and Settings
        • Editor
        • Strategy Detail
        • Backtests
          • Backtest Detail
          • Deploying a Backtest
          • Delete a Backtest
        • Deployments
          • Deployment Detail
          • Edit About, Rules & Alternative Markets
          • Undeploy an Active Deployment
          • (Un)Publish a Deployment
          • (Un)Follow a Deployment
          • Delete a Deployment
        • Followings
          • Following Detail
          • Unfollow a Deployment
          • Delete Record of Following
      • Strategies Marketplace
        • Follow a Strategy
        • Publish Strategy
      • Strategy Details
      • Strategy Metrics
        • Initial Capital
        • Initial Capital (USDT)
        • Strategy Balance
        • Strategy Balance (USDT)
        • Total Performance
        • Total Performance (USDT)
      • Strategy Types
        • Single Market Strategy
        • Multi Market Strategy
    • Account
      • Change Plan
      • Change or Reset Password
      • Change Name, Username, or E-mail
  • Framework Documentation
    • Strategy
      • Methods
        • Setup()
          • DataMarketplace
          • IndicatorsMarketplace
        • RegisterActions()
        • Orders Management
          • CancelOrder()
          • CancelAllPendingOrders()
          • EnterLong()
          • EnterLongLimit()
          • EnterShort()
          • EnterLongStop()
          • EnterShortLimit()
          • ExitLong()
          • EnterShortStop()
          • ExitLongLimit()
          • ExitShort()
          • ExitShortLimit()
          • ExitLongStop()
          • ExitShortStop()
        • Risk Management
          • SetProfitTarget()
          • SetStopLoss()
      • Properties
        • Market
        • Markets
        • PendingOrders
        • Position
        • Time
      • Types
        • IOrder
        • PendingOrder
    • Data
    • Logs
  • Knowledge Base
    • Vocabulary
      • Base currency
      • Deployment
      • Following
      • Quote currency
      • Strategy
    • Technical Indicators
      • Oscillators
        • Average Directional Index (ADX)
        • Momentum Indicator (MOM)
        • Moving Average Convergence Divergence (MACD)
        • Relative Strength Index (RSI)
        • Stochastic RSI (STOCH RSI)
      • Volatility
        • Average True Range (ATR)
        • Bollinger Bands (BB)
      • Trend Analysis
        • Exponential Moving Average (EMA)
        • Simple Moving Average (SMA)
        • Volume-weighted Moving Average (VWMA)
        • Weighted Moving Average (WMA)
      • Volume
        • Accumulation/Distribution Line (ADL)
  • Have a question?
    • FAQ
    • Ask on the forums
    • Contact us
Powered by GitBook
On this page
  1. Framework Documentation
  2. Strategy
  3. Properties

Position

Object that reveals information about a current open position of the strategy.

Properties

Name

Type

Description

InPosition

bool

Returns true if the strategy is in position, false otherwise.

PositionType

StrategyPositionType?

If the strategy is in position, it returns StrategyPositionType enum which can be Long or Short. If it is not in position, the PositionType is null.

ExecutedPrice

double?

Returns the price of the asset at which the position was opened. If the strategy is not in an open position, it returns null.

ExecutedTime

datetime?

Time when the position was opened. If the strategy is not in an open position, it returns null.

// If strategy is in position then log position details
if (Position.InPosition)
{
    Log("Open position: " + Position.PositionType + ", " + Position.ExecutedTime + ", " + Position.ExecutedPrice);
}
using Signals.DataSeries.Bars;
using Signals.Framework;
using Signals.Indicators.SMA;

public class MyStrategy : SingleMarketStrategy
{
    private Bars hourlyBars;
    private SMA smaSlow;
    private SMA smaFast;

    private int fast = 10;
    private int slow = 25;

    public override void Setup(DataMarketplace data, IndicatorsMarketplace indicators)
    {
        hourlyBars = data.Bars(BarPeriodType.Hour, 1).WithOffset(25);
        smaSlow = indicators.SMA(slow).OnSeries(hourlyBars.Close);
        smaFast = indicators.SMA(fast).OnSeries(hourlyBars.Close);
    }

    public override void RegisterActions()
    {
        OnUpdateOf(hourlyBars).Do(() =>
        {
            // If not already in position and condition is met then enter position
            if (!Position.InPosition && smaFast.Value > smaSlow.Value)
            {
                EnterLong();
            }
            // If already in position and condition is met then exit position
            else if (smaFast.Value < smaSlow.Value && Position.InPosition)
            {
                ExitLong();
            }
        });
    }
}
PreviousPendingOrdersNextTime

Last updated 5 years ago