forex software

Create and Test Forex Strategies

forex software

Skip to forum content

Forex Software

Create and Test Forex Strategies

You are not logged in. Please login or register.


Forex Software → Help and Support → Strange error. The program hangs.

Pages 1

You must login or register to post a reply

RSS topic feed

Posts: 1

Topic: Strange error. The program hangs.

I apologize in advance for my English. I've been programming for a year, but this is the first time with me. Having reduced the error search area to 2 lines, I can not find it. Here is the code.

using System;
using System.Linq;
using System.Windows;
using System.Runtime.InteropServices;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;
namespace cAlgo
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.FullAccess)]
    public class Candles : Robot
    {
        [Parameter("Depth of analise in hour", DefaultValue = 720)]
        public int depthInHour { get; set; }
        public static int historyLength = 30000;
        public struct history
        {
            public double result;
            public double price;
            public int direction;
            public DateTime date;
        }
        public struct streem
        {
            public int minNum, maxNum, countPlus, countMinus;
            public history[] historyDatas
            {
                get { return new history[historyLength]; }
            }
        }
        public struct datas
        {
            public double balance, dropdown, dropdownNew, max, maxDropdown, maxDropdownNew;
            public DateTime DateDropdown, DateDropdownNew;
            public int transactions;
            public streem transactionHistory;
        }

        public int minCandleCount = 4, maxCandleCount = 12, stepCandleCount = 1;
        public int minCandleInOption = 1, maxCandleInOption = 4, stepCandleInOption = 1;
        public double minReliability = 2.5, maxReliability = 4, stepReliability = 0.5;
        public double minVolatility = 0.0001, maxVolatility = 0.0004, stepVolatility = 0.0001;
        public int countCandleCount, countCandleInOption, countReliability, countVolatility;
        public int curCandleCount, arrCandleCount, curCandleInOption, arrCandleInOption, arrReliability, arrVolatility;
        public double curVolatility, curReliability;

        public datas[,,,] arr;
        public double price;
        public DateTime TransTime;
        public struct parameters
        {
            public int CandleCount;
            public int CandleInOption;
            public double Reliability;
            public double Volatility;
        }
        public parameters bestParameters;
        public double bestResult;
        public DateTime depth;
        public int direction = 0;
        protected override void OnStart()
        {
            Int64 t = new TimeSpan(depthInHour, 0, 0).Ticks;
            depth = new DateTime(t);

            countCandleCount = 9;
            countCandleInOption = 4;
            countReliability = 4;
            countVolatility = 4;

            arr = new datas[countCandleCount, countCandleInOption, countReliability, countVolatility];
            int k = 100;
            for (curCandleCount = minCandleCount,arrCandleCount = 0; curCandleCount <= maxCandleCount; curCandleCount += stepCandleCount,arrCandleCount++)
            {
                Print("1 ", curCandleCount);
                for (curCandleInOption = minCandleInOption,arrCandleInOption = 0; curCandleInOption <= maxCandleInOption; curCandleInOption += stepCandleInOption,arrCandleInOption++)
                {
                    Print("2 ", curCandleInOption);
                    for (curReliability = minReliability,arrReliability = 0; curReliability <= maxReliability; curReliability += stepReliability,arrReliability++)
                    {
                        Print("3 ", curReliability);
                        for (curVolatility = minVolatility,arrVolatility = 0; curVolatility <= maxVolatility; curVolatility += stepVolatility,arrVolatility++)
                        {
                            Print("4 ", curVolatility);
                            int i = MarketSeries.OpenTime.Count - k;
                            DateTime dt = MarketSeries.OpenTime[i];
                            Print(dt);
                            while (dt.AddMinutes(30).Ticks < DateTime.Now.Ticks)
                            {
                                Print(dt, " ", dt.AddMinutes(30).Ticks, " ", DateTime.Now.Ticks, " ", i, " ", MarketSeries.OpenTime.Count);
                                dt = MarketSeries.OpenTime[++i];
                            }
                        }
                    }
                }
            }
            Print("The end");
        }
        protected override void OnTick()
        {
            //OnStop();
        }

        protected override void OnStop()
        {

            // Put your deinitialization logic here
        }
        protected int Frame()
        {
            if (TimeFrame == TimeFrame.Minute15)
                return 15;
            else if (TimeFrame == TimeFrame.Minute5)
                return 5;
            else if (TimeFrame == TimeFrame.Minute4)
                return 4;
            else if (TimeFrame == TimeFrame.Minute3)
                return 3;
            else if (TimeFrame == TimeFrame.Minute2)
                return 2;
            else if (TimeFrame == TimeFrame.Minute5)
                return 1;
            else
                return 0;
        }
    }
}

After passing the first nested loop of the 4th level, the program hangs. I can not understand what's the matter. Help me please.

Posts: 1

Pages 1

You must login or register to post a reply

Forex Software → Help and Support → Strange error. The program hangs.

Similar topics in this forum