@bashatrader would it be wrong of me to assume your disdain for machine learning is the result of a crippling fear of the unknown?
one thing is sure with the proprietary languages, they are able to deliver trading systems with a LOT less verbosity than general purpose languages, since they have plenty of build in functions to simplify the task of trading.
Check this out... http://recode.net/2014/09/10/introd...arning-trading-firm-thats-already-profitable/
Yes it would be wrong because you are crippled from comprehending the multiple comparisons problem. Here you go again: http://en.wikipedia.org/wiki/Multiple_comparisons_problem This will cost you at the end. What you avoid to deal with will cost you a lot. I just hope you do not avoid the issue because of limited comprehension ability. Do not come back and cry "out-of-sample works".
You may actually use Cross function Code: SetBacktestMode( backtestRegular ); SetTradeDelays ( 1, 1, 1, 1 ); SetOption( "ActivateStopsImmediately", True ); SetPositionSize( 100, spsShares ); MA1 = MA( C, 50 ); MA2 = MA( C, 200 ); Buy = Cover = Cross( MA1, MA2 ); Short = Sell = Cross( MA2, MA1 ); BuyPrice = ShortPrice = Open; ApplyStop( stopTypeLoss, stopModePercent, amount = 5, exitatstop = 1, volatile = False, reentrydelay = 0 );
@eusdaiki Deep learning is definitely really cool. I don't really currently use it, but the idea of nonlinear extraction of features has always been interesting to me and I believe that convolutional deep learning may be the future of the field of classification and inherently pattern recognition. @bashatrader you told me not to come back with a reply saying "out of sample works", but I will say that nowhere in your article did it say anything to the tune of "ML fails because of multiple comparisons and we should ignore its contributions to a myriad of sciences." Im not claiming that ML is a magic bullet, in fact the only technique really exclusive to ML that we discussed on this thread, SVM, is a supervised learning technique where the user supplies the features, kernel + parameters, and labels. It's basically an iterative optimization algorithm to fit a hyperplane separator to data--it's as much a tool whose performance is dependent on human input as the moving averages mentioned on this thread. ML certainly has valid applications to quantitive trading. I'm not going to get specific, but I've worked with ML people at multiple (okay two...but I'm young!) large trading entities. Go on any quant recruiting site or large bank/prop trading firms 'careers' page and you'll see that ML is an area where many of these entities are looking to hire. Also, you never told me the other day why k-fold cross validation destroys serial correlation? Maybe if like n (number of observations) is suitably close to k it could impact serial correlation, but for trading n is going to be in the thousands or millions and k is normally between 5 and 10.
Quote by AB developer: "So although it looks like C it is way more easy than C. What is single operator in AFL (like array addition) involves many line of code in C plus memory allocation/deallocation (and keeping track on all that). SIMPLICITY OF USE plus compactness of code is the paramount design decision. That's why arrays in AFL are automatically managed, have size that automatically refers to "visible" area, so you can simply add arrays with single + operator. With general purpose C language with "normal" arrays you would need to manage memory for arrays by yourself, alignment (if size differs which elements to add), looping (you need to perform calculations on individual elements of array). (maybe you don't know but in C and there are no built-in dynamic arrays, only fixed compile-time size is supported, and dynamic array is implemented via pointers and explicit memory allocation malloc/free) As for "matrix" operations - that this does not belong to the definition of any general purpose language. There are no "matrix" operations in any popular general purpose language C/C++/Java/JScript/Basic/Pascal. In C/C++ even scalar trigonometric operations like sin( x) or string concatenation are NOT part of the language. The language itself defines: a) syntax b) basic arithmetic operators + precedence working on primitive types only (scalar integer and/or float) c) flow control (conditional execution, loops) d) structural concepts (variables/functions/procedures/structures/objects) e) some miscellaneous stuff like run-time type info, exception handling etc. And that's it. Anything more is supplied by LIBRARIES. In C there is a library for basic string manipulation (such as concatenation - strcat) or floating point. The same with any high-level stuff like matrices - this is the area which is implemented by EXTERNAL libraries (not part of the language). Libraries in AFL can be provided by: a) #include - the AFL code implementing features via functions b) AmiBroker Development Kit - allowing to write extensions (functions) as a DLL in any compiled language. c) JScript/VBScript d) any external COM object http://www.amibroker.com/guide/a_aflcom.html This covers any imaginable application and any imaginable need you may have. . . . Best regards, Tomasz Janeczko amibroker.com ""