Topics
12 Apr 2016, 23:58
 2204
 2
Replies

GoldnOil750
21 Jan 2016, 12:31 ( Updated at: 21 Dec 2023, 09:20 )

Dear Spotware,

Please see the attached screen shot and you can see that cTRADER has LOGGED OUT and is not LOGGING-IN automatically.   My cBOT is suffering due to these kind of problems as there will be no Price Feed. 

This happens every time when the cTRADER is running for a long time then it will suddenly LOG-OUT and stay like this.  Hope, Spotware quickly fix this problem.

///S.Khan

 


@GoldnOil750

GoldnOil750
21 Jan 2016, 10:01

RE:

I am looking forward that this is fixed as soon as possible.

Thank you.

 

Spotware said:

Dear Trader,

1. the cTRADER ID "LOGs-OUT" :

Thank you for reporting it. We will investigate. Any additional information that would help us to reproduce your issue is highly appreciated.

2. My WorkSpace like "Daily Fx" will not LOAD after cTRADER ID has logged out and logged-IN.  cTRADER will start creating auto 'workspace 1, 2, 3 and so on".  this is very annoying.

The Workspace replication was done intentionally. Any changes performed on the Workspace will be saved separately and users have actually the chance to revert back to previous versions of their Workspaces. Deleting a Workspace is very easy and takes less than 10 seconds. But losing, accidentally overwriting a Workspace could be very annoying and it requires a lot of time on the user side trying to rebuild it.

 

 

 


@GoldnOil750

GoldnOil750
21 Jan 2016, 04:49

RE: RE:

mindbreaker said:

Hi,

use password and account number  :D:D:D (hahahaha....)

Bye.

 

 

 

didn't get the joke or whatever it was.......


@GoldnOil750

GoldnOil750
18 Jan 2016, 12:59 ( Updated at: 21 Dec 2023, 09:20 )

RE:

Spotware said:

Dear Trader,

Thank you for reporting it. We will investigate.

 

 

Sir,

please do something; now for last 7 days EURUSD weekly prices are not loading......  it is really frustrating as "GetSymbol" doesn't work in backtesting and a whole week is wasted waiting for EURUSD weekly Open prices....

have attached screenshot also.....

 

thank you

///S.Khan

 


@GoldnOil750

GoldnOil750
07 Jan 2016, 08:45 ( Updated at: 23 Aug 2022, 15:25 )

RE: RE:

Thank you !!!

 

DeletedUser said:

You might want to check the data your receiving from the different brokers matches, as in the start time of the data feed, and the period you are calculating over, this can lead to varying values.

 


@GoldnOil750

GoldnOil750
05 Jan 2016, 07:57

replacing monthly with weekly it works

Dear Spotware,

in the above issue, if we replace the monthly timeframe by weekly and daily, 15 mins so on, it works and give the ATR values.  But with TimeFrame set to "Monthly", it get stuck on EURZD and so on.

 

why is the TimeFrame "Monthly" not working on few pairs  ??

 

Thank you

///S.Khan


@GoldnOil750

GoldnOil750
24 Dec 2015, 22:38

RE:

Spotware said:

Dear Trader,

We would like to inform you that we do not provide coding assistance services. We more than glad to assist you with specific questions about cAlgo.API. You also can contact one of our Partners or post a job in Development Jobs section for further coding assistance.

If you believe that there is an issue with one of our methods/indicators, we kindly ask you to send us the simplest example showing it.

I have minimized the code.   Please see it for yourself the ATR values are wrong in the BACKTESTING when compared to the Actual Values taken from the Graph.   Run it on a  1-min chart and then compare the values of ATR with the ATR values on the CHART.   

 

//////////////////////
/////////// USE 1-MIN CHART
//////////////////////

using System;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;


namespace cAlgo
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]

    public class testingSymbolATRValue : Robot
    {
        ////  USER INPUT       //////
        [Parameter("<--------------> FRIDAY <-------------->")]
        public string temp50 { get; set; }

        //// GLOBAL VARIABLES ///////
        private int dummy_Count = 0;
        private int Day_of_the_Week = 0;
        private int Copy_of_DayoftheWeek = 0;

        // ATR INDICATOR INSTANCE 
        private AverageTrueRange ATR_Indicator_1;
        private AverageTrueRange ATR_Indicator_2;

        //INIDIVIDUAL ATR VALUE OF ALL PAIRS WITH DIFFERENT ATR SETTINGS
        private double Crt_ATR_Val_1;
        private double Crt_ATR_Val_2;

        /////////////////////////////////////////////////////////////////////
        ////                        ON START                           //////
        /////////////////////////////////////////////////////////////////////
        protected override void OnStart()
        {
            Print("cBOT Started");
        }
        //End METHOD On_Start

        /////////////////////////////////////////////////////////////////////
        ////                        ON_BAR                             //////      
        /////////////////////////////////////////////////////////////////////
        protected override void OnBar()
        {
            //SET THE DAY OF WEEK VALUE  MON=1, TUE=2, ........FRI=5
            Day_of_the_Week = (int)Server.Time.DayOfWeek;

            //SKIP THE FEW STARTING BARS   TIMEFRAME = 1 MINUTE
            if (dummy_Count >= 300 && dummy_Count < 301)
                Get_ATR_Values();

            dummy_Count += 1;

            //IF DAY HAS CHANGED, THEN RESET VALUES ON DAY START
            if (Copy_of_DayoftheWeek != Day_of_the_Week)
            {
                Print("");
                Print("Change of DAY triggered");
                dummy_Count = 0;
            }
            //END IF

            //MAKE A COPY OF THE DAY TO BE COMPARED, ON THE NEXT BAR
            Copy_of_DayoftheWeek = Day_of_the_Week;
        }
        //END METHOD On_Bar

        /////////////////////////////////////////////////////////////////////
        ////                        Get_ATR_Values                     //////      
        /////////////////////////////////////////////////////////////////////
        private void Get_ATR_Values()
        {
            double t_1 = 0;
            t_1 = Symbol.PipSize;

            // DAILY                    
            var temp_1 = MarketData.GetSeries(TimeFrame.Daily);
            ATR_Indicator_1 = Indicators.AverageTrueRange(temp_1, 9, MovingAverageType.Simple);
            ATR_Indicator_2 = Indicators.AverageTrueRange(temp_1, 27, MovingAverageType.Simple);

            Crt_ATR_Val_1 = Math.Round(ATR_Indicator_1.Result.LastValue / t_1, 0);
            Crt_ATR_Val_2 = Math.Round(ATR_Indicator_2.Result.LastValue / t_1, 0);

            /////////////////////////////////////////////////////////////

            Print("DAILY : ATR VALUE  = " + Crt_ATR_Val_1 + ", " + Crt_ATR_Val_2);
        }
        //END METHOD Get_ATR_Values
    }
    //END OF MAIN PUBLIC CLASS
}
//END OF MAIN cALGO ROBOT

 


@GoldnOil750

GoldnOil750
24 Dec 2015, 20:26

The Back-TESTING values are :

1. Tick DATA from Server

2. EUR-USD

3. Time Frame = 1 minute

4. Dated from : 23-Nov-2915    to     27-Nov-2015

 

Manually cross-checking the ATR values on EUR-USD DAILY CHART

1. ATTACHED :  Three ATR, (Simple) with  Period = 3, 9, 27 


@GoldnOil750

GoldnOil750
22 Dec 2015, 15:56

RE:

Paul_Hayes said:

The application programming interface (API) just exposes a set of routines to the trading platform, it is in the .NET framework that you write your logic to achieve what you need.If you feel that you need a separate process to get prices while your robot is busy doing another task then you may need to use Asynchronous Parallel programming . We now have the BeginInvokeOnMainThread method included in the cAlgo API  to make this easier to implement.

 

Thank you !


@GoldnOil750

GoldnOil750
22 Dec 2015, 09:17

RE:

Paul_Hayes said:

This may solve your problem, load your prices asynchronously at the start. you can break up the calls into work packets if you need the data quicker.

/forum/cbot-support/7593?page=1#6

 

Thank you very much !  It is much appreciated.    But I am a novice programmer cum trader and this thing is way out of my league........      

 

What I understand that OnStart you call the different cALGO.API in different threads so they can get data simultaneously...?  am I correct in my understanding ?   the OnBar and OnTIck method will be same.


@GoldnOil750

GoldnOil750
21 Dec 2015, 20:42

RE: RE:

GoldnOil750 said:

Paul_Hayes said:

How often and how quickly do you need price updates for your strategy?

If the platform is not providing you with the functionality you require I would look at alternative methods to achieve what you want. Think about either having a separate robot that does nothing but get prices every 1 minute and storing the prices in either an xml, json file, database or any other persistent method to store data and your main robot reads this data every (x) mins/secs.

You could try using an thread if you are familiar with threading, but you have to be very careful as cAlgo.API is not thread safe and the entire application could crash.

 

Hi Paul,

it is only when the cBOT starts for the First Time it takes so much time in Loading the Open Prices.  But after that, getting prices is very very fast; within a second all is done.  SO every time you update your code or our testing on different input values, it is very annoying to wait 4 to 5 mins to fetch the prices.

 

I am thinking of getting one Symbol Price and display and dump it on the first OnBar and then go for all the open prices and see if it helps.  Will keep you posted. Thank  you for your quick response ever !

///S.Khan

Hi Paul,

just updating you on the above.
 

For the 1st Time, when OnBar method is called, cBOT takes time in getting the (1)OPEN and (2) CLOSE prices of all 56 pairs, around 2 min in total for each.
For loading the (3)HIGH and (4)LOW prices, even for the 1st Time OnBar method also,  it is super fast, not a second is lost.
Even for loading the ATR values, it takes around 2 mins for all the 56 pairs. (*for the first time OnBar method is called)

so to get the whole information on the CHART, it takes max. around 6 mins.  but then the update of the value OnBar is very swift, within a second.  

OnBar is called every minute.

thank you.
///S.Khan

 

 


@GoldnOil750

GoldnOil750
21 Dec 2015, 11:06

RE:

Paul_Hayes said:

How often and how quickly do you need price updates for your strategy?

If the platform is not providing you with the functionality you require I would look at alternative methods to achieve what you want. Think about either having a separate robot that does nothing but get prices every 1 minute and storing the prices in either an xml, json file, database or any other persistent method to store data and your main robot reads this data every (x) mins/secs.

You could try using an thread if you are familiar with threading, but you have to be very careful as cAlgo.API is not thread safe and the entire application could crash.

 

Hi Paul,

it is only when the cBOT starts for the First Time it takes so much time in Loading the Open Prices.  But after that, getting prices is very very fast; within a second all is done.  SO every time you update your code or our testing on different input values, it is very annoying to wait 4 to 5 mins to fetch the prices.

 

I am thinking of getting one Symbol Price and display and dump it on the first OnBar and then go for all the open prices and see if it helps.  Will keep you posted. Thank  you for your quick response ever !

///S.Khan


@GoldnOil750

GoldnOil750
21 Dec 2015, 08:37 ( Updated at: 21 Dec 2023, 09:20 )

RE:

Paul_Hayes said:

oops i made a mistake, it took 50 seconds to get all price data and NOT 1 minute 50 seconds

 

Hi Paul,

today it is again taking more then 4 mins to upload the Open Prices.....  I have attached the screen shot.   have tried multiple time but the result is the same.....   (21Dec15)  Is there any work around method for it ??    (It is attached to a 1 min chart and OnBar...   no changes in the code.)

 


@GoldnOil750

GoldnOil750
17 Dec 2015, 14:47 ( Updated at: 21 Dec 2023, 09:20 )

RE:

Paul_Hayes said:

oops i made a mistake, it took 50 seconds to get all price data and NOT 1 minute 50 seconds

Hi Paul,

It took 1 min 52 secs to get the prices and load them on the Charts.   Which is good if you compare to what I was getting earlier;  (nearly full 4 to 5 mins).  Trust me, till one hour ago it was not going that fast but after Printing time on start and end of methods, some how it is working  fast.....  lol

Thank you for your time and effort.   but the same in mt4 I have and it takes around less then 10 seconds to display all the 58 pairs "Pips moved" from start of the day.   I think with cTrader I have to live with it.  Below is the screen shot of the time taken.

thank you !!!!

 


@GoldnOil750

GoldnOil750
17 Dec 2015, 13:30

also, one more thing i will like to add that it is slow only when the "FIRST TIME"  On_Bar function is called but on the following Bar it is super fast. 


@GoldnOil750

GoldnOil750
17 Dec 2015, 13:30

also, one more thing i will like to add that it is slow only when the "FIRST TIME"  On_Bar function is called but on the following Bar it is super fast. 


@GoldnOil750

GoldnOil750
17 Dec 2015, 13:24

RE:

Paul_Hayes said:

If you give me the complete Get_Symbol code we can do a more detailed test.

Have attached the full code for the method "Get_symbol" at the end but before that I have attached the starting cALGO code also.  (*maybe it helps).

 

using System.Globalization;
using System.IO;
using System.Threading;
using System;
using System.Linq;
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 All_Currency : Robot
    {


 

 

        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private Symbol Get_Symbol(int t_Pair, int t_value)
        {
            ///////////////////////////////////////////////////////////////////////////////////////////            
            //IF EURO PAIR SYMBOL IS REQUIRED
            if (t_Pair == 0)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURUSD");
                        break;
                    case 1:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURJPY");
                        break;
                    case 2:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURGBP");
                        break;
                    case 3:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURAUD");
                        break;
                    case 4:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURNZD");
                        break;
                    case 5:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURCHF");
                        break;
                    case 6:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURCAD");
                        break;
                }
                //END SWITCH    
            }
            //END IF
            ///////////////////////////////////////////////////////////////////////////////////////////            
            //IF GBP PAIR SYMBOL IS REQUIRED
            if (t_Pair == 1)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("GBPUSD");
                        break;
                    case 1:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("GBPJPY");
                        break;
                    case 2:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("GBPCAD");
                        break;
                    case 3:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("GBPCHF");
                        break;
                    case 4:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("GBPAUD");
                        break;
                    case 5:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("GBPNZD");
                        break;
                    case 6:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("EURGBP");
                        break;

                }
                //END SWITCH
            }
            //END IF
            ///////////////////////////////////////////////////////////////////////////////////////////            
            //IF USD PAIR SYMBOL IS REQUIRED
            if (t_Pair == 2)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("EURUSD");
                        break;
                    case 1:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("GBPUSD");
                        break;
                    case 2:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("AUDUSD");
                        break;
                    case 3:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("NZDUSD");
                        break;
                    case 4:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("USDJPY");
                        break;
                    case 5:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("USDCHF");
                        break;
                    case 6:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("USDCAD");
                        break;
                }
                //END SWITCH
            }
            //END IF
            ///////////////////////////////////////////////////////////////////////////////////////////            
            //IF JPY PAIR SYMBOL IS REQUIRED
            if (t_Pair == 3)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("GBPJPY");
                        break;
                    case 1:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("EURJPY");
                        break;
                    case 2:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("USDJPY");
                        break;
                    case 3:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("AUDJPY");
                        break;
                    case 4:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("NZDJPY");
                        break;
                    case 5:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("CHFJPY");
                        break;
                    case 6:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("CADJPY");
                        break;
                }
                //END SWITCH
            }
            //END IF
            ///////////////////////////////////////////////////////////////////////////////////////////            
            //IF CHF PAIR SYMBOL IS REQUIRED
            if (t_Pair == 4)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("USDCHF");
                        break;
                    case 1:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("EURCHF");
                        break;
                    case 2:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("GBPCHF");
                        break;
                    case 3:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("AUDCHF");
                        break;
                    case 4:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("NZDCHF");
                        break;
                    case 5:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("CADCHF");
                        break;
                    case 6:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("CHFJPY");
                        break;
                }
                //END SWITCH
            }
            //END IF
            ///////////////////////////////////////////////////////////////////////////////////////////            
            //IF CAD PAIR SYMBOL IS REQUIRED
            if (t_Pair == 5)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("USDCAD");
                        break;
                    case 1:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("EURCAD");
                        break;
                    case 2:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("GBPCAD");
                        break;
                    case 3:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("AUDCAD");
                        break;
                    case 4:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("NZDCAD");
                        break;
                    case 5:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("CADJPY");
                        break;
                    case 6:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("CADCHF");
                        break;

                }
                //END SWITCH
            }
            //END IF    
            ///////////////////////////////////////////////////////////////////////////////////////////
            //IF AUD PAIR SYMBOL IS REQUIRED
            if (t_Pair == 6)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("AUDUSD");
                        break;
                    case 1:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("AUDJPY");
                        break;
                    case 2:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("AUDNZD");
                        break;
                    case 3:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("AUDCAD");
                        break;
                    case 4:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("AUDCHF");
                        break;
                    case 5:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("EURAUD");
                        break;
                    case 6:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("GBPAUD");
                        break;

                }
                //END SWITCH
            }
            //END IF    
            ///////////////////////////////////////////////////////////////////////////////////////////
            //IF NZD PAIR SYMBOL IS REQUIRED
            if (t_Pair == 7)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("NZDJPY");
                        break;
                    case 1:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("NZDUSD");
                        break;
                    case 2:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("NZDCHF");
                        break;
                    case 3:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("NZDCAD");
                        break;
                    case 4:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("AUDNZD");
                        break;
                    case 5:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("EURNZD");
                        break;
                    case 6:
                        Base_Currency = 2;
                        return MarketData.GetSymbol("GBPNZD");
                        break;

                }
                //END SWITCH
            }
            //END IF        
            ///////////////////////////////////////////////////////////////////////////////////////////

            return Symbol;
        }
        //END FUCTION

 

 


@GoldnOil750

GoldnOil750
17 Dec 2015, 12:45

RE:

Paul_Hayes said:

can you show me the code for the Get_Symbol(i, j); method 

I have posted the method....    simply takes two variables, and return the Symbol and set the global variable value of "Base_Currency"....


 

 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////                                                GET EURO SYMBOL                                               ///////////////////////////////
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private Symbol Get_Symbol(int t_Pair, int t_value)
        {
            ///////////////////////////////////////////////////////////////////////////////////////////            
            //IF EURO PAIR SYMBOL IS REQUIRED
            if (t_Pair == 0)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURUSD");
                        break;
                    case 1:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURJPY");
                        break;
                    case 2:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURGBP");
                        break;
                    case 3:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURAUD");
                        break;
                    case 4:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURNZD");
                        break;
                    case 5:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURCHF");
                        break;
                    case 6:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("EURCAD");
                        break;
                }
                //END SWITCH    
            }
            //END IF
            ///////////////////////////////////////////////////////////////////////////////////////////            
            //IF GBP PAIR SYMBOL IS REQUIRED
            if (t_Pair == 1)
            {
                switch (t_value)
                {
                    case 0:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("GBPUSD");
                        break;
                    case 1:
                        Base_Currency = 1;
                        return MarketData.GetSymbol("GBPJPY");
                        break;

 


@GoldnOil750

GoldnOil750
16 Dec 2015, 22:03

RE:

Paul_Hayes said:

I bet your time-frame is 5 minutes, put a print hello in your method before the for-next statements, so before any processing starts.

You should see the hello displayed in the log file after 5 minutes and this should give you a clue as to what your problem is.

 

 

 

No, i am using the 1-min chart and the problem is on first time to load the values; around good 5 mins.  then once loaded it goes very smooth.  Like in mt4 it gets the data very fast, like within 10 seconds but in cTRADER it is super slow and not to mention you cannot backtest on multiple symbol at the same time.  People are asking for this for the last 2 years.

 

anyways, u know of any other API which can help in loading the open prices faster ?  my code is pasted on the top post.


@GoldnOil750

GoldnOil750
15 Dec 2015, 10:19

RE:

Spotware said:

Dear Trader,

We would like to inform you that we do not provide coding assistance services. We more than glad to assist you with specific questions about cAlgo.API. You can contact one of our Partners or post a job in Development Jobs section for further coding assistance.

 

Hi,

But can u help identify any other API which can help get the Market Prices a little faster.  Like every time when I run the above code it takes 5 mins to just load the price from server.

 

can you help in identifying any other API ??  will explore it myself.  will be much appreciated. thank you.

 

///S.Khan


@GoldnOil750