예제 #1
0
        public static void Main(string[] args)
        {
            Randomizer     rnd = new Randomizer();
            FunctionsClass fc  = new FunctionsClass();

            fc.Func06();
        }
예제 #2
0
        protected override void OnBarUpdate()
        {
            #region Start first order
            if (CurrentBars[0] < BarsRequiredToTrade)
            {
                return;
            }
            //First position
            if (Position.MarketPosition == MarketPosition.Flat && string.IsNullOrEmpty(_status))
            {
                if (CrossAbove(SMA(Slow), SMA(Fast), 1) && FisherTransform(100)[0] > 2 && RelativeVigorIndex(100)[0] > 0.01)
                {
                    StartOrder = EnterLong(1, "StartOrder");
                    SetProfitTarget("StartOrder", CalculationMode.Pips, 35, true);
                }
            }
            #endregion

            if (Position.MarketPosition != MarketPosition.Flat)
            {
                //Bezubqtok
                if (StartOrder != null && _status.Equals("StartOrder") && FunctionsClass.Bezubqtok(Position, Close, TickSize))
                {
                    SetStopLoss("StartOrder", CalculationMode.Price, StartOrder.AverageFillPrice + 1 * TickSize, true);
                    //_status = "Collection";
                }
                #region Recover
                if (StartOrder != null && _status.Equals("StartOrder") && Low[0] < StartOrder.AverageFillPrice - 38 * TickSize)
                {
                    _status = "Recover";
                    Cover1  = EnterLong(1, "Recover1");
                }
                #endregion
                //#region CollectionOrder
                //if (CollectOrder == null && _status.Equals("Collection") && Position.AveragePrice + 20 *TickSize < High[0])
                //{
                //    CollectOrder = EnterLongLimit(0, true,2, High[0] - 8 * TickSize, "CollectionOrder");
                //    SetProfitTarget("CollectionOrder", CalculationMode.Price, CollectOrder.LimitPrice + 12*TickSize, true);
                //    //SetProfitTarget("StartOrder", CalculationMode.Price, CollectOrder.LimitPrice + 12 * TickSize, true);
                //    //SetStopLoss("CollectionOrder", CalculationMode.Pips, 9, true);
                //}
                ////Podtjagivay Collection Order
                //if (CollectOrder != null && CollectOrder.OrderState == OrderState.Working && High[0] > CollectOrder.LimitPrice + 8 * TickSize)
                //    ChangeOrder(CollectOrder, 2, High[0] - 8 * TickSize, 0);
                //    Draw.Dot(this, @"MyCustomStrategy" + CurrentBars[0].ToString(), false, 0, StartOrder.AverageFillPrice + 1 * TickSize, Brushes.Red);
                //
                //#endregion
            }



            //else if(_status.Equals("Collection") && CollectionMIT != null && High[0] > CollectionMIT.LimitPrice + 9*TickSize)
            //{
            //    //Draw.Dot(this, @"MyCustomStrategy" + CurrentBars[0].ToString(), false, 0, Close[0], Brushes.Blue);
            //    if(CollectionMIT.OrderState == OrderState.Working)
            //        ChangeOrder(CollectionMIT, 1, High[0] - 8 * TickSize, 0);

            //    else if(ProfitTarget.OrderState == OrderState.Filled && Position.Quantity == 1)
            //        CollectionMIT = EnterLongLimit(0, true, 1, High[1] - 9 * TickSize, "CollectionMIT");
            //}
            //    Draw.Dot(this, @"MyCustomStrategy" + CurrentBars[0].ToString(), false, 0, StartOrder.AverageFillPrice + 1 * TickSize, Brushes.Red);

            //if(_status.Equals("Collection") && CollectionMIT != null && CollectionMIT.OrderState == OrderState.Working && High[0] -10*TickSize > CollectionMIT.LimitPrice)
            //{
            //    Draw.Dot(this, @"MyCustomStrategy" + CurrentBars[0].ToString(), false, 0, Close[0], Brushes.Blue);
            //    ChangeOrder(CollectionMIT, 1, High[0] - 9 * TickSize,0);
            //}
            //if( LimitCollectionOrder != null && LimitCollectionOrder.OrderState == OrderState.Working && _status.Equals("LimitCollectionOrder") && High[0] - 8*TickSize > Position.AveragePrice)
            //{
            //    Draw.Dot(this, @"MyCustomStrategy" + CurrentBars[0].ToString(), false, 0, Close[0], Brushes.Blue);
            //    EnterLong();
            //}
            //if (_status.Equals("CollectionWaiting") && LimitCollectionOrder != null && High[0] - 8 * TickSize > LimitCollectionOrder.LimitPrice)
            //{
            //    Logs.SuperLogs("SUPER");
            //    //ChangeOrder(LimitCollectionOrder, 1, High[0] - 8 * TickSize, 0);
            //}
        }
예제 #3
0
 [TestMethod()] public void AddTwoTest()
 {
     FunctionsClass f = new FunctionsClass(); Assert.AreEqual(9, f.AddTwo(4, 5)); Assert.AreEqual(-1, f.AddTwo(4, -5));
 }
예제 #4
0
        public void GetValueTest()
        {
            FunctionsClass f = new FunctionsClass();

            f.Increase(10); f.Reset(); f.Increase(10); f.Increase(10); Assert.AreEqual(20, f.GetValue());
        }
예제 #5
0
        public void SumRangeTest()
        {
            FunctionsClass f = new FunctionsClass();

            int[] vals = { 1, 2, 3, 4 }; Assert.AreEqual(6, f.SumRange(vals, 1, 3));
        }
예제 #6
0
 [TestMethod()] public void AvgThreeTest()
 {
     FunctionsClass f = new FunctionsClass(); Assert.AreEqual(5, f.AvgThree(4, 5, 6)); Assert.AreEqual(3, f.AvgThree(-1, 5, 5));
 }
예제 #7
0
 [TestMethod()] public void MinTwoTest()
 {
     FunctionsClass f = new FunctionsClass(); Assert.AreEqual(4, f.MinTwo(4, 5)); Assert.AreEqual(-5, f.MinTwo(4, -5));
 }