public static List <PositionElement> Positions() { IgPositions igPositions = new IgPositions(); string positions = igPositions.Get(session); PositionsList positionsList = JsonConvert.DeserializeObject <PositionsList>(positions); List <PositionElement> positionsToReturn = new List <PositionElement>(); double total = 0.0; double profit = 0.0; Console.WriteLine($"{"Name".PadRight(40)}{"Epic".PadRight(22)}{"Size".PadLeft(6)} { "Bid".PadLeft(8) } Stop \t Value \tOpen \t Profit \tReturn\t Deal Id "); foreach (PositionElement position in positionsList.Positions.OrderBy(p => p.Market.InstrumentName)) { double value = position.Position.DealSize * position.Market.Bid; double open = position.Position.OpenLevel * position.Position.DealSize; double returnPercentage = (value - open) / open; double stopPercentage = (position.Market.Bid - position.Position.StopLevel) / position.Market.Bid; total += value; profit += value - open; Console.WriteLine($"{position.Market.InstrumentName.Truncate(38).PadRight(40)}{position.Market.Epic.PadRight(22)}{position.Position.DealSize.ToString().PadLeft(6)} {position.Market.Bid.ToString("N2").PadLeft(8)} {stopPercentage.ToString("P1")} \t {Math.Round(value, 2).ToString("N0").PadLeft(8)}\t {Math.Round(open)}\t {Math.Round(value - open, 2).ToString("N2").PadLeft(8)}\t { returnPercentage.ToString("P1")}\t {position.Position.DealId}"); positionsToReturn.Add(position); } Console.WriteLine($"Total {total.ToString("N0")} Profit {profit.ToString("N2")}"); Console.WriteLine($"Positions {positionsList.Positions.Count()}"); return(positionsToReturn); }
private static void Main() { // Use the .Net Core DI container: IServiceProvider serviceProvider = new DefaultCompositionRoot().Initialize(); // Log in: var loginCommand = new LoginCommand(Token); var loginValidator = serviceProvider.GetService <IValidator <LoginCommand> >(); if (loginValidator.Validate(loginCommand) != ErrorCode.NoError) { return; } var loginCommandHandler = serviceProvider.GetService <ICommandHandler <LoginCommand> >(); loginCommandHandler.Execute(loginCommand); // Get a list of positions: var posistionsQuery = new PositionsQuery(); var positionsValidator = serviceProvider.GetService <IValidator <PositionsQuery> >(); if (positionsValidator.Validate(posistionsQuery) != ErrorCode.NoError) { return; } var positionsReader = serviceProvider.GetService <IQueryHandler <PositionsQuery, PositionsList> >(); PositionsList positions = positionsReader.Query(posistionsQuery); }
public Security(IReadOnlyList <IDataBar> bars, string symbol, ISecurity security) { Bars = bars; Symbol = symbol; Positions = new PositionsList(this); m_security = security; }
private Security(IReadOnlyList <IDataBar> bars, string symbol, ISecurity security, Interval interval) { Bars = bars; Symbol = symbol; Positions = new PositionsList(security); m_security = security; IntervalInstance = interval; }
public void PrepareShoot(PositionsList positionList) { Camera cam = Camera.main; float height = 2f * cam.orthographicSize; float width = ((height * cam.aspect) * 0.8f); /* * * //float foward = positionList.LenghtLine/height; * //NOVO FOWARD * float foward = positionList.ListOfPositions.Count / 100f; * //Debug.Log("height: "+ height); * float curve = Mathf.Abs(positionList.WidhtLine/width); * //Debug.Log("width: " + width); * * * * //Calculo da distancia do Init pro fim * //float up = ((height / 2) - positionList.InitPoint.y) / height; * * //NOVO UP * float up = positionList.LenghtLine / (height/2); * * up = up * 1f; * //Debug.Log("GC - up: " + up); * * * //Debug.Log("right: " + positionList.VerticalMedium + "/"+width); * //Debug.Log("Screen.width " +Screen.width); * float right = positionList.VerticalMedium / width; * right = right * 1.5f; * //Debug.Log("GC - right: " + right); * */ //NOVO CODIGO float foward = positionList.ListOfPositions.Count / 100f; float up = positionList.LenghtLine / (height / 2); float right = positionList.WidhtLine / width; float curve = Mathf.Abs(positionList.VerticalMedium / width); //Debug.Log("curve: " + curve); if (!Ball) { Ball = GameObject.Find("Bola(Clone)").GetComponent <Ball>(); } Ball.PrepareShoot(foward, up, right, curve); Shoot(); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!IsPostBack) { PositionsList.SetSortingOrder( new BocListSortingOrderEntry((IBocSortableColumnDefinition)PositionsList.FixedColumns.Find("Position"), SortingDirection.Ascending)); } if (PositionsList.IsReadOnly) { PositionsList.Selection = RowSelection.Disabled; } }
public SQT UpdateSQT(string jointName) { currentJointName = jointName; if (PositionsList.ContainsKey(currentJointName)) { UpdatePosition(); UpdateRotation(); UpdateScale(); } else //如果找不到该关节,则把权重设为0,不再参与接下来的计算(除了容错以外还可用于遮罩功能). { CurentSQT.SetAllWeight(0); } return(CurentSQT); }
void UpdatePosition() { //更新每一根关节的位置. if (!PositionsList.ContainsKey(currentJointName)) { return; } List <YamlSQTData> pList = PositionsList[currentJointName]; if (FindKeyFrames(pList)) { CurentSQT.Position_Weight = 1; CurentSQT.Position = HermiteTool.GetHermitePoint_T(frameLerp, (YamlPositionData)preFrameData, (YamlPositionData)nexFrameData, aAnimator.LerpType); } else { CurentSQT.Position_Weight = 0; } }
//创建仓库场景 #region Create_Scene public void Create_Scene(ParametersList1 PL, PositionsList POL, string Path) { HighStoreShelf_Parameter HP = PL.HP; MultiHighBay_Parameter MHP = PL.MHP; RollerConveyor_Parameter RCP = PL.RCP; float TempValue1 = RCP.RCLength; float TempValue2 = RCP.RCWidth; float TempValue3 = TempValue2 - HP.Size.x; GameObject WarehouseScene = new GameObject(); WarehouseScene.name = Name;//创建场景 //存放货物 GameObject Cargos = new GameObject(); Cargos.name = "Cargos"; Cargos.transform.parent = WarehouseScene.transform; Cargos.transform.localPosition = new Vector3(0, 0, 0); //添加地面 GameObject obj = (GameObject)Resources.Load("Scene/Dimian"); GameObject dimian = Instantiate(obj); float Width = HP.Size.z + 8 * RCP.RCLength; dimian.transform.localScale = new Vector3(Width, 0.1f, Width); dimian.transform.parent = WarehouseScene.transform; dimian.transform.localPosition = new Vector3(-(Width / 2 - RCP.RCLength * 4), -0.05f, -(Width / 2 - 2 * RCP.RCLength)); //添加入口滚筒输送机 GameObject EnterRollerConveyor = new GameObject(); RollerConveyorType type = RollerConveyorType.Intact; RollerConveyor_Parameter RCP2 = new RollerConveyor_Parameter(); RCP2 = PL.RCP; RCP2.RCHigh = RCP2.RCHigh - 0.1f; RCP2.RCLength = enterRollerLength;//长度自定义 //RCP2.RCLength = PL.HP.Size.x * 2 + PL.MHP.HookupDistance + PL.MHP.TunnelWidth - RCP2.RCWidth; RollerConveyor.Create_RollerConveyor(RCP2, EnterRollerConveyor, type); EnterRollerConveyor.name = "EnterRollerConveyor"; EnterRollerConveyor.transform.parent = WarehouseScene.transform; EnterRollerConveyor.transform.Rotate(0, -90, 0); EnterRollerConveyor.transform.localPosition = new Vector3((RCP2.RCLength + TempValue3), 0, -TempValue2 / 2); //添加入口顶升移栽机 LiftTransferParameter LTP = new LiftTransferParameter(); LTP.High = PL.RCP.RCHigh - 0.1f; LTP.Width = PL.RCP.RCWidth; LTP.RollerRadius = PL.RCP.RollerRadius; LTP.GearDiameter = PL.RCP.RollerRadius * 2; GameObject enterLiftTransfer = new GameObject(); LiftTransfer1.CreateLiftTransfer(enterLiftTransfer, ref LTP); enterLiftTransfer.name = "EnterLiftTransfer"; enterLiftTransfer.transform.parent = WarehouseScene.transform; float tempEnterX = RCP2.RCLength - (PL.HP.Size.x - LTP.Width) + LTP.Width / 2;//入口顶升的X坐标 enterLiftTransfer.transform.localPosition = new Vector3(tempEnterX, 0, -TempValue2 / 2); //添加入口皮带输送机 GameObject EnterBeltConveyors = new GameObject(); EnterBeltConveyors.name = "EnterBeltConveyors"; Create_EnterBeltConveyors(PL, EnterBeltConveyors); EnterBeltConveyors.transform.parent = WarehouseScene.transform; EnterBeltConveyors.transform.localPosition = new Vector3(tempEnterX, 0, 0); //添加顶升移载机设备 GameObject LiftTransferGroup = new GameObject(); LiftTransferGroup.name = "LiftTransferGroup"; Create_LiftTransferGroup(PL, LiftTransferGroup); LiftTransferGroup.transform.parent = WarehouseScene.transform; LiftTransferGroup.transform.localPosition = new Vector3(0, 0, -TempValue2 / 2); //添加滚筒输送机(垂直于高架库方向) GameObject RollerConveyorGroup = new GameObject(); RollerConveyorGroup.name = "RollerConveyorGroup"; Create_RollerConveyorGroup(PL, RollerConveyorGroup); RollerConveyorGroup.transform.parent = WarehouseScene.transform; RollerConveyorGroup.transform.localPosition = new Vector3(0, 0, -TempValue2 / 2); //添加皮带输送机(平行于高架库方向) GameObject BeltConveyorGroup = new GameObject(); BeltConveyorGroup.name = "BeltConveyorGroup"; Create_BeltConveyorGroup(PL, BeltConveyorGroup); BeltConveyorGroup.transform.parent = WarehouseScene.transform; BeltConveyorGroup.transform.localPosition = new Vector3(0, 0, -TempValue2); //为场景添加高架库设备 GameObject HighBays1 = new GameObject(); HighBays1.name = "HighBayGroup"; HighBay2.Create_HighBays(HP, MHP, HighBays1); HighBays1.transform.parent = WarehouseScene.transform; HighBays1.transform.localPosition = new Vector3(0, 0, -(3 * TempValue1 + TempValue2)); //为场景添加堆垛机设备 GameObject PilerGroup = new GameObject(); PilerGroup.name = "PilerGroup"; Create_Pilers(PL, PilerGroup); PilerGroup.transform.parent = WarehouseScene.transform; PilerGroup.transform.localPosition = new Vector3(0, 0, -(TempValue1 + TempValue2)); //添加出口滚筒输送机 GameObject ExitRollerConveyor = new GameObject(); RollerConveyor_Parameter exitRCP = PL.RCP; exitRCP.RCLength = exitRollerLength; exitRCP.RCHigh = PL.RCP.RCHigh - 0.1f; RollerConveyor.Create_RollerConveyor(exitRCP, ExitRollerConveyor, RollerConveyorType.Intact); ExitRollerConveyor.name = "ExitRollerConveyor"; ExitRollerConveyor.transform.parent = WarehouseScene.transform; int j = (PL.MHP.Num + 1) / 2 - 1; float tempExitX = -PL.HP.Size.x - j * (PL.HP.Size.x * 2 + PL.MHP.HookupDistance + PL.MHP.TunnelWidth); ExitRollerConveyor.transform.Rotate(0, -90, 0); ExitRollerConveyor.transform.localPosition = new Vector3(tempExitX, 0, -TempValue2 / 2); //添加出口顶升移栽机 GameObject ExitLiftTransfer = new GameObject(); ExitLiftTransfer.name = "ExitLiftTransfer"; LiftTransfer1.CreateLiftTransfer(ExitLiftTransfer, ref LTP); ExitLiftTransfer.transform.parent = WarehouseScene.transform; tempExitX = tempExitX - exitRollerLength - LTP.Width / 2; ExitLiftTransfer.transform.localPosition = new Vector3(tempExitX, 0, -TempValue2 / 2); //添加出口皮带输送线 GameObject ExitBeltConveyors = new GameObject(); ExitBeltConveyors.name = "ExitBeltConveyors"; Create_ExitBeltConveyors(PL, ExitBeltConveyors); ExitBeltConveyors.transform.parent = WarehouseScene.transform; ExitBeltConveyors.transform.localPosition = new Vector3(tempExitX, 0, 0); //给场景添加Message WarehouseScene.AddComponent <ShowKeyPositionData>(); ShowKeyPositionData ShowKeyData = WarehouseScene.GetComponent <ShowKeyPositionData>(); KeyPositionsData KPD = new KeyPositionsData(); //float[] HighValues = { 1.2f, 1.1f }; //SI.HighValues = HighValues; Create_SceneInfo(ref PL, out KPD); ShowKeyData.KeyPositionsData = KPD; //Debug.Log(KPD.ConveyorLengths); //WarehouseScene.AddComponent<SceneData>(); //SceneData SD = WarehouseScene.GetComponent<SceneData>(); //Information sd = new Information(); sd.Name = "Name"; sd.Num = 2; ////WarehouseScene.GetComponent<SceneData>(). //SD.IN = sd; GameObject Cargo = new GameObject(); Cargo.name = "Cargo"; Cargo1.Create_Cargo(KPD.CargoSize, Cargo); //SD.IN.Num = 2; SD.IN.Name = "A"; //输出场景 MyClass.CreatePrefab(WarehouseScene, Path); MyClass.CreatePrefab(Cargo, path2 + Cargo.name); //根据参数预创建一个存储状态面板 //GameObject StorageStateInterface = new GameObject(); //StorageStateInterface.name = "StorageStateInterface"; BinsPanel.Ajustment(MHP.Num, HP.FloorsNum, HP.ColumnsNum); BinsPanel.Ajustment2(MHP.Num, HP.FloorsNum, HP.ColumnsNum); //GameObject.Find("ScriptsContainer").GetComponent<MyClass>().CreatePrefab(StorageStateInterface, path2 +"Simulation/" +StorageStateInterface.name); }
//输出多线路运动数据 #region Create_PositionsList public void Create_PositionsList(ref ParametersList1 PL, out PositionsList PositonsList) { HighStoreShelf_Parameter HP = PL.HP; MultiHighBay_Parameter MHP = PL.MHP; RollerConveyor_Parameter RCP = PL.RCP; float ConveryorsLength = 2 * HP.ColumnWidth; //高架库位置信息 //HighBayPositions[i,0]记录第i个高架库坐标的X值,[i,1]记录第i个高架库坐标的Y值,[i,2]记录第i个高架库坐标的Z值; float[,] HighBayPositions = new float[MHP.Num, 3]; for (int i = 0; i < MHP.Num; i++) { HighBayPositions[i, 0] = -(HP.Size.x / 2 + i * HP.Size.x + ((i + 1) / 2) * MHP.TunnelWidth + (i / 2) * MHP.HookupDistance); HighBayPositions[i, 1] = 0; HighBayPositions[i, 2] = -PL.Distance - ConveryorsLength + HP.ColumnWidth; } //输送线的数据 //ConveyorPositions[i,0]记录第i个高架库坐标的X值,[i,1]记录第i个高架库坐标的Y值,[i,2]记录第i个高架库坐标的Z值; //[i,4]记录输送线的长度, float[,] ConveyorPositions = new float[MHP.Num, 4]; for (int i = 0; i < MHP.Num; i++) { ConveyorPositions[i, 1] = 0; ConveyorPositions[i, 2] = -PL.Distance; ConveyorPositions[i, 3] = 2 * HP.ColumnWidth; switch (i % 2) { case 0: ConveyorPositions[i, 0] = -((i + 1) * HP.Size.x + (i / 2) * MHP.TunnelWidth + (i / 2) * MHP.HookupDistance); ConveyorPositions[i, 0] = ConveyorPositions[i, 0] + RCP.RCWidth / 2; break; case 1: ConveyorPositions[i, 0] = -(i * HP.Size.x + ((i + 1) / 2) * MHP.TunnelWidth + (i / 2) * MHP.HookupDistance); ConveyorPositions[i, 0] = ConveyorPositions[i, 0] - RCP.RCWidth / 2; break; } } //堆垛机的坐标数据 //PilerPositions[i,0]记录第i个高架库坐标的X值,[i,1]记录第i个高架库坐标的Y值,[i,2]记录第i个高架库坐标的Z值; float[,] PilerPositions = new float[(MHP.Num + 1) / 2, 3]; for (int i = 0; i < (MHP.Num + 1) / 2; i++) { PilerPositions[i, 0] = -(MHP.TunnelWidth / 2 + i * (MHP.TunnelWidth + MHP.HookupDistance) + (2 * i + 1) * HP.Size.x); PilerPositions[i, 1] = 0; PilerPositions[i, 2] = -PL.Distance - ConveryorsLength + 2 * HP.ColumnWidth; } //高架库仓位数据 float[,,,] StorageBinPositions = new float[HP.FloorsNum, HP.ColumnsNum, 2, 3]; float temphigh = HP.FloorsHigh[0]; for (int i = 0; i < HP.FloorsNum; i++) { for (int j = 0; j < HP.ColumnsNum; j++) { StorageBinPositions[i, j, 0, 0] = 0; StorageBinPositions[i, j, 0, 1] = temphigh; StorageBinPositions[i, j, 0, 2] = -(HP.ColumnWidth * (j + 1) + HP.ColumnWidth / 4); StorageBinPositions[i, j, 1, 0] = 0; StorageBinPositions[i, j, 1, 1] = temphigh; StorageBinPositions[i, j, 1, 2] = -(HP.ColumnWidth * (j + 1) + 3 * HP.ColumnWidth / 4); } temphigh = temphigh + HP.FloorsHigh[i + 1]; } // PositionsList POL; POL.HighBayPositions = HighBayPositions; POL.PilerPositons = PilerPositions; POL.ConveyorPositons = ConveyorPositions; POL.StorageBinPositions = StorageBinPositions; PositonsList = POL; }
public void AllowDraw() { canDraw = true; canTimer = true; positionsList = new PositionsList(); }
public async Task <List <SearchedSelectionModel> > Handle(SearchSelectionQuery request, CancellationToken cancellationToken) { List <SearchedSelectionModel> result = new List <SearchedSelectionModel>(); List <SearchedPosition> Positions = new List <SearchedPosition>(); if (request.PositionId != null) { Positions = await _mediator.Send(new SearchPositionQuery() { Id = request.PositionId }); } else { Positions = await _mediator.Send(new SearchPositionQuery() { OrganoGramId = request.OrganoGramId }); } if (request.Id != null) { SearchedSelectionModel Record = await(from Selection in _context.Selection join Person in _context.Person on Selection.PersonId equals Person.Id into Persons from PersonResult in Persons.DefaultIfEmpty() join P in Positions on Selection.PositionId equals P.Id into PositionsList from PositionResult in PositionsList.DefaultIfEmpty() where Selection.PositionId == PositionResult.Id select new SearchedSelectionModel { PersonName = PersonResult.FirstName + " " + PersonResult.LastName, SelectionId = Selection.Id, Id = Selection.Id, EffectiveDate = Selection.EffectiveDate, EventTypeId = Selection.EventTypeId, Remarks = Selection.Remarks, FinalNo = Selection.FinalNo, QadamID = Selection.QadamID, VerdictDate = Selection.VerdictDate, VerdictRegNo = Selection.VerdictRegNo, PersonId = Selection.PersonId, NodeId = Convert.ToInt32(PositionResult.Id), PositionId = Convert.ToInt32(PositionResult.Id), ParentNodeId = Convert.ToInt32(PositionResult.ParentId), OrganogramId = Convert.ToInt32(PositionResult.OrganoGramId), WorkAreaText = PositionResult.WorkAreaText, PositionTypeText = PositionResult.PositionTypeText, RankText = PositionResult.RankText, OrgUnitText = PositionResult.OrgUnitText, Sorter = PositionResult.Sorter, Code = PositionResult.Code, LocationText = PositionResult.LocationText, DepartmentID = Selection.DepartmentID, Title = PositionResult.PositionTypeText + " " + PositionResult.WorkAreaText }).SingleOrDefaultAsync(cancellationToken); result.Add(Record); } else { foreach (SearchedPosition P in Positions) { SearchedSelectionModel Record = new SearchedSelectionModel(); if (_context.Selection.Any(c => c.PositionId == P.Id)) { Record = await(from Selection in _context.Selection join Person in _context.Person on Selection.PersonId equals Person.Id into Persons from PersonResult in Persons.DefaultIfEmpty() where Selection.PositionId == P.Id select new SearchedSelectionModel { PersonName = PersonResult.FirstName + " " + PersonResult.LastName, SelectionId = Selection.Id, Id = Selection.Id, EffectiveDate = Selection.EffectiveDate, EventTypeId = Selection.EventTypeId, Remarks = Selection.Remarks, FinalNo = Selection.FinalNo, VerdictDate = Selection.VerdictDate, VerdictRegNo = Selection.VerdictRegNo, PersonId = Selection.PersonId, DepartmentID = Selection.DepartmentID }).SingleOrDefaultAsync(cancellationToken); } Record.NodeId = Convert.ToInt32(P.Id); Record.PositionId = Convert.ToInt32(P.Id); Record.ParentNodeId = Convert.ToInt32(P.ParentId); Record.OrganogramId = Convert.ToInt32(P.OrganoGramId); Record.WorkAreaText = P.WorkAreaText; Record.PositionTypeText = P.PositionTypeText; Record.RankText = P.RankText; Record.OrgUnitText = P.OrgUnitText; Record.Sorter = P.Sorter; Record.Code = P.Code; Record.RankText = P.RankText; Record.LocationText = P.LocationText; Record.Title = P.PositionTypeText + " " + P.WorkAreaText; result.Add(Record); } } return(result); }