Помогите с PNL ьенеджером
~/topic/3784/pomogite-s-pnl-enedzherom/
Copyright @ StockSharp Platform LLC 2010 - 2024
2024-03-29T01:45:15Z
https://stocksharp.ru/images/logo.png
https://stocksharp.ru/posts/m/26652/
в PositionMenedger инфу по позициям сообщая так: if (this.PositionManager.Position == 0) { this.Posi...
2013-07-09T07:06:19Z
2013-07-09T07:06:19Z
casper-ss
https://stocksharp.ru/users/26936/
info@stocksharp.ru
в PositionMenedger инфу по позициям сообщая так:<br /><br /><br />if (this.PositionManager.Position == 0)<br /> { <br /> this.PositionManager.Positions = this.Trader.Positions.Where(p => p.Security == this.Security);<br /> flagSyncPnlMan = true;<br /> }
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/26651/
else if (_LinePos != null) { decimal minElem; decimal maxElem; decimal dec = _LinePos.Select(l => l....
2013-07-09T07:04:17Z
2013-07-09T07:04:17Z
casper-ss
https://stocksharp.ru/users/26936/
info@stocksharp.ru
else if (_LinePos != null)<br /> {<br /> decimal minElem;<br /> decimal maxElem;<br /><br /> decimal dec = _LinePos.Select(l => l.Volume).Sum();<br /><br /> if (_LinePos.Where(e => e.Volume > 0).Count() != 0)<br /> {<br /> minElem = _LinePos.Where(e => e.Volume > 0).Min(p => { return p.Line; });<br /> maxElem = _LinePos.Where(e => e.Volume > 0).Max(p => { return p.Line; });<br /> }<br /> else<br /> {<br /> minElem = _LinePos.Max(p => { return p.Line; });<br /> maxElem = _LinePos.Max(p => { return p.Line; });<br /> }<br /><br /> if (flagSyncPnlMan == true)<br /> {<br /> PnLManager.Reset();<br /> for (decimal i = maxElem; i >= minElem;i=i-10 )<br /> {<br /> var e = _LinePos.Find(elem =><br /> {<br /> if (elem.Line == i)<br /> {<br /> return true;<br /> }<br /> else return false;<br /> });<br /> if (e.Volume > 0)<br /> {<br /> ChangeManBuyPnL(e.Volume, e.Line);<br /> }<br /> }<br /> }<br /><br /><br /> if (dec - Position > 0)<br /> {<br /> var _clearPos = dec - Position;<br /> <br /> for (decimal i = minElem; i <= maxElem; i = i + 10)<br /> {<br /> var elem = _LinePos.Find(e =><br /> {<br /> if (e.Line == i)<br /> {<br /> return true;<br /> }<br /> else<br /> return false;<br /> });<br /><br /> if (elem.Volume >= _clearPos)<br /> {<br /> elem.Volume = elem.Volume - _clearPos;<br /> if (flagSyncPnlMan == true)<br /> {<br /> ChangeManSellPnL(_clearPos, elem.PriceOrderProfit);<br /> }<br /> _clearPos = 0;<br /> }<br /> else if (elem.Volume < _clearPos)<br /> {<br /> _clearPos = _clearPos - elem.Volume;<br /> if (flagSyncPnlMan == true)<br /> {<br /> ChangeManSellPnL(Volume, elem.PriceOrderProfit);<br /> }<br /> elem.Volume = 0;<br /> }<br /> if (_clearPos == 0)<br /> {<br /> break;<br /> }<br /> }<br /> }<br /> else if (dec - Position < 0)<br /> {<br /> decimal _clearPos = Position - dec;<br /><br /> if (_LinePos.Where(e => e.Volume > 0).Count() != 0)<br /> {<br /> minElem = _LinePos.Where(e => e.Volume > 0).Min(p => { return p.Line; });<br /> }<br /> else<br /> {<br /> minElem = _LinePos.Max(p => { return p.Line; });<br /> }<br /><br /> var elem = _LinePos.Find(e =><br /> {<br /> if (e.Line == minElem)<br /> {<br /> return true;<br /> }<br /> else<br /> return false;<br /> });<br /> elem.Volume = elem.Volume + _clearPos;<br /> if (flagSyncPnlMan == true)<br /> {<br /> ChangeManBuyPnL(_clearPos, elem.Line);<br /> }<br /> }<br /><br /><br />public void ChangeManBuyPnL(decimal vol, decimal price)<br /> { <br /> var tr = new Trade();<br /> var ord = new Order();<br /> tr.Volume = vol;<br /> tr.Price = price;<br /> tr.Security = this.Security;<br /> ord.Portfolio = this.Portfolio;<br /> ord.Security = this.Security;<br /> ord.Direction = OrderDirections.Buy;<br /> ord.Volume = vol;<br /> ord.Price = price;<br /> var mytr = _mW._trader.EntityFactory.CreateMyTrade(ord, tr); <br /> mytr.Trade.IsSystem = true;<br /> this.PnLManager.ProcessMyTrade(mytr); <br /> }<br /><br /><br />_LinePos - лист с инфой по сделкам по которым была набрана позиция, там есть инфа по цене сделки на покупку и обьему который по этой цене прошел...<br />
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/26583/
PnL Manager отвечает за отображения суммарного дохода или убытка по вашим позициям. Вам нужен Positi...
2013-07-04T12:04:41Z
2013-07-04T12:04:41Z
yar1k0v
https://stocksharp.ru/users/6437/
info@stocksharp.ru
PnL Manager отвечает за отображения суммарного дохода или убытка по вашим позициям.<br />Вам нужен PositionManager.<br />Скиньте пожалуйста ваш код по запуску и остановке стратегии, так будет проще вам помочь.
Copyright @ StockSharp Platform LLC 2010 - 2024
https://stocksharp.ru/posts/m/26517/
Обьясните пожалуйста...у меня такая ситуация: нужно в PnL менеджер стратегии сообщить информация по ...
2013-07-01T08:09:47Z
2013-07-01T08:09:47Z
casper-ss
https://stocksharp.ru/users/26936/
info@stocksharp.ru
Обьясните пожалуйста...у меня такая ситуация: нужно в PnL менеджер стратегии сообщить информация по имеющимся позам...то есть например я запускаю стратегию, и у меня имеется 50 контрактов в Long ...мне нужно что бы со стартом моя стратегия приняла эти позиции в PnL менеджер, и в будущем правильно расчитала реализованную прибыль или убыток...При старте стратегии, Pnl менеджер у меня пустой, но инфа о сделках при которых у меня была набранна данная поза у меня есть, я ее сохраняю,пытаюсь передать ее в Pnl менеджер через фабрику сущностей, создавая сделки по имеющейся информации и помещая их в Pnl менеджер, но все равно считает он потом не правильно...как сделать это правильно?подскажите пожалуйста...
Copyright @ StockSharp Platform LLC 2010 - 2024