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
  • Single Market Strategy
  • Multi Market Strategy
  1. Framework Documentation
  2. Strategy
  3. Methods
  4. Orders Management

EnterLong()

Generates a Buy Market order to enter a long position.

Single Market Strategy

Parameters

Name

Type

Description

label

string

Optional parameter which can be used for labeling the signal generated when an order is triggered.

The browser app doesn't show the custom labels in the UI at the moment. It will be updated in the future release.

Example

// Generates a Buy Market order to enter a long position
EnterLong();
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 (smaFast.Value > smaSlow.Value && !Position.InPosition)
            {
                // Generates a buy market order to enter a long position
                EnterLong();
            }
            else if (smaFast.Value < smaSlow.Value && Position.InPosition)
            {
                ExitLong();
            }
        });
    }
}

Multi Market Strategy

In MMS you need to specify the market on which to execute the order as the very first argument.

Parameters

Name

Type

Description

market

Market on which to execute the order.

label

string

Optional parameter which can be used for labeling the signal generated when an order is triggered.

The browser app doesn't show the custom labels in the UI at the moment. It will be updated in the future release.

Example

// Generates a Buy Market order to enter a long position on the first
// selected market
EnterLong(Markets[0]);
using Signals.DataSeries.Bars;
using Signals.Framework;

// This code represents the Crossover strategy. 

public class MyStrategy : MultiMarketsStrategy
{
    private Bars hourlyBarsFirstAsset;
    private SMA smaSlowFirstAsset;
    private SMA smaFastFirstAsset;

    private Bars hourlyBarsSecondAsset;
    private SMA smaSlowSecondAsset;
    private SMA smaFastSecondAsset;

    private Bars hourlyBars;
    private SMA smaSlow;
    private SMA smaFast;


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

    private Market firstMarket;
    private Market secondMarket;

    public override void Setup(DataMarketplace data, IndicatorsMarketplace indicators)
        {
            firstMarket = Markets[0];
            secondMarket = Markets[1];

            hourlyBarsFirstAsset = data.Bars(BarPeriodType.Hour, 1).OnMarket(firstMarket).WithOffset(25);
            smaSlowFirstAsset = indicators.SMA(slow).OnSeries(hourlyBarsFirstAsset.Close);
            smaFastFirstAsset = indicators.SMA(fast).OnSeries(hourlyBarsFirstAsset.Close);

            hourlyBarsSecondAsset = data.Bars(BarPeriodType.Hour, 1).OnMarket(secondMarket).WithOffset(25);
            smaSlowSecondAsset = indicators.SMA(slow).OnSeries(hourlyBarsSecondAsset.Close);
            smaFastSecondAsset = indicators.SMA(fast).OnSeries(hourlyBarsSecondAsset.Close);
        }

    public override void RegisterActions()
    {
        OnUpdateOf(hourlyBarsFirstAsset).Do(() =>
        {
            if (smaFastFirstAsset.Value > smaSlowFirstAsset.Value && !Position.InPosition)
            {
                EnterLong(firstMarket);
            }
            else if (smaFastFirstAsset.Value < smaSlowFirstAsset.Value && Position.InPosition && Position.Market == firstMarket)
            {
                ExitLong(firstMarket);
            }
        });

        OnUpdateOf(hourlyBarsSecondAsset).Do(() =>
        {
            if (smaFastSecondAsset.Value > smaSlowSecondAsset.Value && !Position.InPosition)
            {
                EnterLong(secondMarket);
            }
            else if (smaFastSecondAsset.Value < smaSlowSecondAsset.Value && Position.InPosition && Position.Market == secondMarket)
            {
                ExitLong(secondMarket);
            }
        });
    }
}
PreviousCancelAllPendingOrders()NextEnterLongLimit()

Last updated 5 years ago

Market