Exemplo n.º 1
0
        public Connect(int p = 9200)
        {
            gfClient = GF.Api.Impl.GFApi.CreateClient();                        //Removed declaration stuff (type, object -- etc)
            account  = gfClient.Accounts.Get().FirstOrDefault();
            runner   = new GF.Api.Threading.GFClientRunner(gfClient);           //declared in class def
            runner.Start();
            Console.WriteLine("Runner (HB) started.");
            port = p;

            Console.WriteLine("Connecting...");
        }
Exemplo n.º 2
0
        public IEnumerable <GF.Api.Positions.IPosition> GetOpenPositions(GF.Api.Accounts.IAccount account, GF.Api.Positions.PositionChangedEventArgs e)
        {
            //Made active an ATTRIBUTE / PROPERTY -- now can be called whenever.
            //GF.Api.Positions.IPosition[] active = { };                          //Should I make this a fixed memory level ? Will Dynamic create overflow?
            int idx = 0;

            foreach (var pos in e.AsArray())
            {
                //If Matched Account, Has fills, and has Open Position PNL... Add to active.
                if (e.ContractPosition.Account.ID == account.ID & e.ContractPosition.Fills != null & e.ContractPosition.OTE != 0)
                {
                    //Console.WriteLine(pos);
                    active[idx] = pos.ContractPosition;
                }
                idx += 1;
            }
            //Real purpose -- return changed positions -- > To feed into TrailStop.

            return(active);
        }
Exemplo n.º 3
0
 /*Initially -- Try to use JUST the above code...  IF you require more detail, then integrate the below stuff (tweaked examples) */
 //Goal was to find and loop thrugh all open positions... return them as an iterable object --  upon PositionsChangedEvent
 public IEnumerable <GF.Api.Positions.IPosition> GetPositions(GF.Api.Accounts.IAccount account, GF.Api.Positions.PositionChangedEventArgs e)
 {
     return(e.ContractPosition.AsArray());
 }
Exemplo n.º 4
0
 public IEnumerable <GF.Api.Orders.IOrder> GetPositionOrders(GF.Api.Accounts.IAccount account, GF.Api.Contracts.IContract contract)
 {
     return(WorkingOrders.Where(order =>
                                order.Account.ID == account.ID &&
                                order.Contract.PositionContract.ID == contract.PositionContract.ID));
 }