public OpenPosition GetOpenPositionForSymbol(string symbol) { log.Updatelog(string.Format("Execute get open position for {0}", symbol)); var xdoc = feed.GetOpenPositionForSymbol(symbol); var oPositions = xdoc.Descendants("Position") .Select(x => new OpenPosition { Symbol = x.Attribute("Symbol").Value, Market = "Others", //x.Attribute("Market").Value, Volume = Int32.Parse(x.Attribute("Volume").Value), Side = x.Attribute("Side").Value, }) .ToList(); var o = oPositions.FirstOrDefault(x => x.Symbol == symbol); if (o == null) { var emptyPostion = new OpenPosition { Symbol = symbol, Volume = 0, Side = "None", Market = "None" }; return(emptyPostion); } return(o); }
public List <OpenPosition> GetAllOpenPosition() { //log.Updatelog("Execute get all position"); var xdoc = feed.GetAllOpenPosition(); var oPositions = new List <OpenPosition>(); foreach (var item in xdoc.Descendants("Position")) { if (item != null) { var newop = new OpenPosition { Symbol = item.Attribute("Symbol").Value, Market = "Others", //item.Attribute("Market").Value, Volume = Int32.Parse(item.Attribute("Volume").Value), Side = item.Attribute("Side").Value, }; oPositions.Add(newop); } } //.Select(x => new OpenPosition //{ // Symbol = x.Attribute("Symbol")==null? .Value, // Market = x.Attribute("Market").Value, // Volume = Int32.Parse(x.Attribute("Volume").Value), // Side = x.Attribute("Side").Value, //}) //.ToList(); return(oPositions); }
private int GetRemainingShareForExit(OpenPosition openPos, int shareSize, int initial) { var partialOut = (initial - Math.Abs(openPos.Volume)); var result = shareSize - partialOut; return(result); }
// Basic: Set Action (Entry or Exit) public IFSymbol SetFActionType(FActionType t) { FActionType = t; if (t == FActionType.Exit) { initopenPos = api.GetOpenPositionForSymbol(Symbol); } return(this); }
public int GetRemainingShareFromOpenPos(OpenPosition openPos, int shareSize) { var inPositionShare = openPos == null ? 0 : Math.Abs(openPos.Volume); return(RemainingShare(inPositionShare, shareSize)); }
private int GetRemainingShareFromOpenPos(OpenPosition curOpenPos) { var inPositionShare = curOpenPos == null ? 0 : Math.Abs(curOpenPos.Volume); return(RemainingShare(inPositionShare, ShareSize)); }
private int GetRemainingShareForExit(OpenPosition curOpenPos) { return(ShareSize - (InitialCurrentPostionShare - Math.Abs(curOpenPos.Volume))); }