Haskell Trading engine [closed] - haskell

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
so we're doing this assignment at Uni and i have a serious craving to do the assignment in haskell. Its a simulation of a stock trading engine. Situation is that we have data coming in from a csv and we wish to parse each record and process it in a certain way dependent on which market phase its allocated to. Justification for using haskell, is that i view the trading engine as heavy functional system.
I have had haskell experience before but only minor experience, never anything this big.
We were wanting to run a thread which would import the csvs into a queue of unprocessed orders and then have the main program access this queue for processing each order. However how could i achieve this? I know in C# i would just set up the class so it could access the CSVParser class that would hold the unprocessed queue. This also means that the import thread would be continuously running through all the market phases or until it finished importing the csv file.
Any guidance on how to achieve this would be great! (not looking for a fully typed script, just what things in haskell i would need to look at)

It's not clear what you're asking for.
To start a new thread, use forkIO from Control.Concurrent.
To queue data from one thread to another, you may be interested in Chan from Control.Concurrent.Chan. Other Control.Concurrent.* abstractions are available (there's also the stm package if you find yourself needing something more heavy duty).
For parsing CSV, search the Hackage package list for “CSV”; I haven't used Haskell to parse CSV, so I can't advise on which one to use.

Related

Non-deterministic CSP programming tool? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
Hi i need a non deterministic constraint satisfaction problem tool, because i need different solutions with the same input of the problem. Someone knows about a tool with this characteristic?
I only know tools like Gecode (c++), Choco (Java) and Curry (Haskell) that i think work in deterministic way.
If what you want is to get some random solution, most CP tools have some support for using randomised heuristics. For example, the standard Gecode branchers have options for this, for example INT_VAR_RND and INT_VAL_RND for integer variables. To get a different search each time, make sure to set the seed uniquely.
Note that using random heuristics will not give you any guarantee of the distribution. For example, your problem might have only two solutions, but almost all random choices might lead to one of the solutions giving a very skewed distribution.
Are you trying to do Pareto optimization (aka multi-objective optimization) and let the user choose one of the pareto optimal solutions?
People have done this with Drools Planner (java, open source) by simply replacing the BestSolutionRecaller class. See this thread and this thread. Planner 6.0 or 6.1 will provide out-of-the-box pareto support.
Similar to what Zayenz said, you can try Minion with the flag -randomiseorder.

Real time stock market data with R [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I have developed a quite trading strategy on R and I would like to implement it with real time market data.
One solution would be to use RExcel. In that case, I would link Excel with Bloomberg to get real market data and plug Excel to R (The RBloomberg package does not work anymore). Ideally I would like to run all the computations on R and then output the results on an Excel spreadsheet to follow the strategy in live. Unfortunatly, the IT policy does not allow me to install RExcel.
The other solution would be to use IBrockers but the package does not work on my computer.
Here is my question : is there any alternative to RExcel to plug R with real time market data? I would like to have an R object that could refresh automatically as Excel cells do with Bloomberg
Thanks
There's always Google of course, which could have given you the following answers:
The manual on which packages you can try to read excel files into R. There are many alternatives to RExcel mentioned.
You also have the quantmod package that allows you to import stock information from yahoo finance directly into R, as explained in this question. It comes with a nice manual, there's a youtube video that explains some details and you have a RBloggers entry about it as well. I leave googling this as an exercise to the reader.
You can read data with Yahoo Finance API.
All you need to do is use read.csv() with the output of your request:
http://download.finance.yahoo.com/d/quotes.csv?f=snl1&s=AAPL,GOOG
The quotes are 15-minute delayed (the best you can do for free) and updated every 15 seconds.
For further use, please refer to : Yahoo Finance Managed and Yahoo Finance Tag on Stackoverflow.

How to solve memory problem [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
We have created an application which consumes too much physical memory on mouse click or screen touch. The code of the application is of thousands of lines and is developed in C++.
So far our approach is to free the memory is to minimize the application. But this approach have consequences. So we are looking for alternative way to solve the problem. This application runs on full screen mode.
You're in an difficult position - discovering this kind of problem in a late stage of development is unfortunate. It's quite likely that fundamental redesign is needed.
I infer that some particular code path, in response to a user event, is very hungry for memory. You need to understand exactly what's happening and how best to improve things. We can't help with that without far more details. But an example I've seen in the past: are you grabbing a whole load of data from some database and keeping it all in memory? Do you really need all that data all the time. can you offload more of the query to the database?
You also need to look at what "too much" memory means. Are you targeting too small a machine? Perhaps just splashing out a few tens of pounds on more memory is cheaper than spending many developer days squeezing a quart into a pint pot?
Edited in response to comment:
OK then this does sound like a leak. You should be able to identify the places where you allocate memory, presumably there should be some kind of symmetry, where there are paired frees. I would start by just identifying the allocations, something is gabbing 2MB, should be possible to find it. Then understand when that memory should be released, for example once a screen has been displayed, or when a user session ends. Then find out why it's not happening. You may need to look at your overall strategy for memory management. Smart pointers? Some kind of manager with a house keeping thread? Overall you need a clear design philosophy to resource acquisition and release. This is hard to retrofit to an existing app, so you have my sympathy.

What can't I just set everything as static? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I was just wondering why I can not just set everything as static? I think if I set something as a static then it has a better access time than other variables that haven't set as static..
But I assume there might be a problem and that is the reason why people are not doing this.. What are the problem could be? Thanks in advance..
Consider a class Person and all your friends are instances of that class. Now consider they all have names, their names are their attributes.
Now, if that name attribute was static, all friends would have the same name.
That's why we have instance variables too.
If you make everything static, then there only exists a single copy of it in the entire program. This can be a problem when you want multiple computations of the same thing to go on in parallel or if you want to track multiple copies of the same logical object at the same time.
As for the access time, one should consider correctness first and foremost, then optimize later. Additionally, optimizations should be based on actual measurements, not speculation. If you actually measure how long things are taking, that is pretty much never going to be the optimization you make.

Am I the only one who makes spelling and grammar mistakes when programming? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 13 years ago.
I don't know if I am a bad programmer because I often make mistakes when outputting information on a site, things like "thanx for subscribing to our service" instead of "Thanks for subscribing to our service".
I think this is because I usually don't concentrate on the spelling, my main focus is to get the functionality running perfectly. Please give me your opinion, do you concentrate on the spellings or the functionality?
If I'm writing a message which will be visible to users, I'll make sure it's clear and correct. If I'm writing a message which will only be visible to other developers, I'm slightly less careful - in particular, typos aren't really a problem, so long as I express myself clearly.
Fortunately my spelling/typing/grammar is reasonably good anyway, so I don't need to think too hard about this, but I think it is important for customer-facing text.
Developers often aren't very good at writing messages for users. It can be hard to put yourself in the position of someone who really has no idea about what's going on in the background: they just want to get their email (or whatever it is) working. If you're lucky, you may be able to get a technical writer to help compose appropriate text.
IMO attention must be paid to both. Cool logic and reliability are no excuse for crappy texts.
You could separate checking the resource from changing the source. When you do changes first change the code, test everything, then proofread the resources.
The CTO at my last job was dyslexic, and a completely brilliant programmer and manager. Every now and then I would go and make a spelling correction to one of his method or variable names (C# handles the refactoring pretty well) and it didn't really matter that much.
When there's user interface work it's much more important to spell things correctly coz it looks very shabby to have a misspelled UI.

Resources