Returns a collection of all opening positions. Access to the positions can be obtained by index.


SYNTAX


public Position[] GetPositions ()


RETURN


Position[] Returns array with all active position.


EXAMPLE


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using PTLRuntime.NETScript;

namespace PositionCollection_
{
    public class PositionCollection_:NETStrategy
    {
        Instrument instr;
        Account acc;
        NewOrderRequest request;
        Position lastPosByOrder, lastPos;
        Position[] poses;
        
        string ordID = "-1", posID;

        public override void Init()
        {
            instr = Instruments.Current;
            acc = Accounts.Current;

            Instruments.Subscribe(instr, QuoteTypes.Quote);
        }

        public override void OnQuote()
        {
            if (ordID == "-1")
            {
                request = new NewOrderRequest
                {
                    Instrument = instr,
                    Account = acc,
                    Side = Operation.Buy,
                    Type = OrdersType.Market,
                    Price = instr.LastQuote.Ask,
                    Amount = 1,
                    TimeInForce = TimeInForce.GTC,
                    MarketRange = 1000,
                };

                ordID = Orders.Send(request);

                if (ordID == "-1")
                {
                    Alert("Order was't open, error: " + GetLastError());
                    return;
                }
                else
                {
                    lastPosByOrder = Positions.GetPositionByOpenOrderId(ordID);
                    posID = lastPosByOrder.Id;
                    Alert("Order set on price: " + lastPosByOrder.OpenPrice);
                }
            }

            poses = Positions.GetPositions();

            Print("List of positions:");

            foreach (Position pos in poses)
            {
                Print("\t"+pos.Instrument.Name + "\t:\t" + pos.Id);
            }
        }


        public override void Complete()
        {
            Instruments.Unsubscribe(instr, QuoteTypes.Quote);
        }
    }
}