PositionRemoved
event
Occurs when the position was closed (by user request or by trade server).
Syntax
public event Action<Position> PositionRemoved
Example
В следующем примере кода показано как можно использовать event PositionRemoved.
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;
string ordID = "-1", posID;
public override void Init()
{
instr = Instruments.Current;
acc = Accounts.Current;
Positions.PositionRemoved += OnRemovePosition;
Instruments.Subscribe(instr, QuoteTypes.Quote);
}
private void OnRemovePosition(Position pos)
{
Alert("Removed position with ID " + pos.Id);
}
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);
}
}
}
public override void Complete()
{
bool closeByAcc = Positions.CloseAllByAccount(acc);
Positions.PositionRemoved -= OnRemovePosition;
Instruments.Unsubscribe(instr, QuoteTypes.Quote);
}
}
}
Discussion
Join PTMC community to post your comments
No comments yet. Be the first.