示例#1
0
        override protected void StrategyExecute()
        {            
            MACD macd = Indicators.MACD.Series(data.Close,
                parameters[0], parameters[1],
                parameters[2],"");

            ADX adx=new ADX(data.Bars,parameters[3],"");

            int cutlosslevel = (int)parameters[4];
            int takeprofitlevel = (int)parameters[5];
            double delta = 0, lastDelta = 0;

            for (int idx = 1; idx < macd.Values.Length; idx++)
            {
                delta = (macd.HistSeries[idx] - macd.HistSeries[idx - 1]);
                //If there is a trend
                if (adx[idx] > 25)
                {
                    if (delta > 0 && lastDelta < 0)
                        BuyAtClose(idx);
                }
                if (delta < 0 && lastDelta > 0)
                    SellAtClose(idx);

                if (is_bought && CutLossCondition(data.Close[idx], buy_price, cutlosslevel))
                    SellCutLoss(idx);

                if (is_bought && TakeProfitCondition(data.Close[idx], buy_price, takeprofitlevel))
                    SellTakeProfit(idx);
                lastDelta = delta;
            }
        }
示例#2
0
        protected override void StrategyExecute()
        {
            Indicators.ADX adx = new Indicators.ADX(data.Bars, parameters[0], "");
            int            Bar = adx.Count - 1;

            if (Bar < adx.FirstValidValue)
            {
                return;
            }
            BusinessInfo info = new BusinessInfo();

            info.SetTrend(AppTypes.MarketTrend.Unspecified,
                          AppTypes.MarketTrend.Unspecified, AppTypes.MarketTrend.Unspecified);
            info.Weight = adx[Bar];
            SelectStock(Bar, info);
        }
示例#3
0
        override protected void StrategyExecute()
        {            
            MACD macd = Indicators.MACD.Series(data.Close,
                parameters[0], parameters[1],
                parameters[2],"");

            ADX adx=new ADX(data.Bars,parameters[3],"");
            double delta = 0, lastDelta = 0;

            for (int idx = 1; idx < macd.Values.Length; idx++)
            {
                delta = (macd.HistSeries[idx] - macd.HistSeries[idx - 1]);
                //If there is a trend
                if (adx[idx] > 25)
                {
                    if (delta > 0 && lastDelta < 0)
                        BuyAtClose(idx);
                }
                if (delta < 0 && lastDelta > 0)
                    SellAtClose(idx);
                lastDelta = delta;
            }
        }