Exemplo n.º 1
0
        private void DecisionFunction()
        {
            CCIv  = CCI.Value();
            TCCIv = TCCI.Value();
            CCISlope.Value(out CCIDelta, out CCISpeed);

            // preprocessing
            FindTrend();
            DetectZLR();

            switch (Framework.Account.InTrade())
            {
            case 0:
            {
                if (Framework.Account.InTrade() == 0)
                {
                    if (EntryCriteriaLong())
                    {
                        Framework.Account.EnterTrade(1);
                        Framework.Account.SetTrailingStop(0.0008);
                    }
                }

                if (Framework.Account.InTrade() == 0)
                {
                    if (EntryCriteriaShort())
                    {
                        Framework.Account.EnterTrade(1);
                        Framework.Account.SetTrailingStop(0.0008);
                    }
                }
                break;
            }

            case 1:
            {
                if (ExitCriteriaLong())
                {
                    Framework.Account.ExitTrade();
                }
                break;
            }

            case -1:
            {
                if (ExitCriteriaShort())
                {
                    Framework.Account.ExitTrade();
                }
                break;
            }
            }

            double logInTrade = Framework.Account.InTrade();
            double logMargin  = Framework.Account.GetAccount().C;

            //Framework.WriteGraphLine("InTrade,Margin,C,CCI,CCIDelta,CCISpeed,TCCI,TypeOfTrade,Direction,BelowFifty,ZLR");
            Framework.WriteGraphLine(logInTrade + "," + logMargin + "," + Candle.C + "," + CCIv + "," + CCIDelta + "," + CCISpeed + "," + TCCIv + "," + TradeTypeText + "," + DirectionText + "," + BelowFiftyText + "," + ZLRText);
        }
Exemplo n.º 2
0
        public override void ReceiveCandle(sCandle pCandle, int pPeriod, string pCBTitle)
        {
            if ((pPeriod == Minutes) && (pCBTitle == "cbx"))
            {
                Candle = pCandle;
                CCI.ReceiveTick(pCandle.O, pCandle.H, pCandle.L, pCandle.C);
                TCCI.ReceiveTick(pCandle.O, pCandle.H, pCandle.L, pCandle.C);

                // need to put primed values into this indicators
                // not primed right now to decrease down time
                CCIH.Add(CCI.Value());
                TCCIH.Add(CCI.Value());
                CCISlope.ReceiveTick(CCI.Value());

                if (CCI.isPrimed() && TCCI.isPrimed())
                {
                    DecisionFunction();
                }
            }
        }