NexusFi: Find Your Edge


Home Menu

 





Learning Python vs a specific platform lang like EasyLang or Amibroker AFL?


Discussion in Traders Hideout

Updated
      Top Posters
    1. looks_one Quick Summary with 1 posts (0 thanks)
    2. looks_two jokertrader with 1 posts (1 thanks)
    3. looks_3 Jasonnator with 1 posts (2 thanks)
    4. looks_4 MichaelFlowTrader with 1 posts (1 thanks)
      Best Posters
    1. looks_one teee with 2 thanks per post
    2. looks_two Jasonnator with 2 thanks per post
    3. looks_3 iq200 with 1 thanks per post
    4. looks_4 crystalball with 1 thanks per post
    1. trending_up 7,637 views
    2. thumb_up 8 thanks given
    3. group 9 followers
    1. forum 6 posts
    2. attach_file 0 attachments




 
Search this Thread

Learning Python vs a specific platform lang like EasyLang or Amibroker AFL?

  #1 (permalink)
 crystalball 
portland, oregon/ usa
 
Experience: Advanced
Platform: tos ib
Trading: es gc GBPJPY options
Posts: 16 since Sep 2016
Thanks Given: 6
Thanks Received: 11

Hey guys, I'm a busy man with no programming knowledge and I'm trying to decide if I should learn Python for backtesting and coding algos versus a platform specific language like Amibroker's AFL for their fast backtesting or Multicharts' Easylanguage.

I wanted to ask the python users here how fast is backtesting in python say compared to Amibroker or Multicharts, and if the learning curve it worth it. My half formed opinion is that learning python would serve me well in other things like machine learning or coding algos and as a nice skill to have outside of trading in other aspects of my career. How hard is getting an detailed intraday multiyear backtest and some monte carlo simulations going in python as compared to the ready made functions in Amibroker?

Thanks

Started this thread Reply With Quote
Thanked by:

Can you help answer these questions
from other members on NexusFi?
NT7 Indicator Script Troubleshooting - Camarilla Pivots
NinjaTrader
Futures True Range Report
The Elite Circle
Exit Strategy
NinjaTrader
The space time continuum and the dynamics of a financial …
Emini and Emicro Index
Better Renko Gaps
The Elite Circle
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Get funded firms 2023/2024 - Any recommendations or word …
59 thanks
Funded Trader platforms
36 thanks
NexusFi site changelog and issues/problem reporting
25 thanks
The Program
20 thanks
GFIs1 1 DAX trade per day journal
19 thanks
  #3 (permalink)
 
Jasonnator's Avatar
 Jasonnator 
Denver, Colorado United States
 
Experience: Intermediate
Platform: NT8 + Custom
Broker: NT Brokerage, Kinetick, IQFeed, Interactive Brokers
Trading: ES
Posts: 159 since Dec 2014
Thanks Given: 40
Thanks Received: 166


Hello crystalball,

I'll take a stab at answering your question. Bottom line up front, if you do not have a programming background, you will not be able to replicate the fidelity of off the shelf packages like Multicharts, NinjaTrader, or AmiBroker.

I say this specifically to address one key statement you made, "intraday multi year." Intraday means that you will be needing to deal with NBBO tick level level 1 or possibly even full order book level 2 data. These can be daunting tasks even for seasoned professional programmers.

The other aspect is multi year. I'll go with the lesser extreme example and say you're only dealing with NBBO level 1 data. Even for one instrument (ES for example), you're talking in the order of 100GB+ for a years worth of tick data. Accurate historical tick data is also very expensive for the one man show retail trader. With this amount of data, you'll need a true understanding of multithreading, asynchronous programming (enjoy race conditions), atomic programming, just to name a few. I'm not even going to touch on database approaches for storing tick level data. There are multiple threads on here addressing just that issue (NoSQL vs relational) alone. While these can be achieved in python, you'll need a full blown strongly typed language like c#, Java, c++, etc for a production pipeline to make a living with it. The caveat would be if you had a longer term strategy in which you could absorb a multi hour overnight scheduled task. Intraday, maybe an extremely proficient python developer could do it but they'd be using some advanced concepts undoubtedl(cython, offloading to c++, native memory calls, etc).

I'll close with a word of caution. There is a way to do multi year backtest much faster by cutting some corners and using 1m bar data. I'll say that you'll virtually never see anyone or any company put an automated strategy into production based on 1m bar data.

I am in the throws of doing all of the above and have an extremely talented team working for me and we're a year past our initial goal deadline. This stuff is extremely complicated to get truly right.

Best of luck,

Jason

Sent using the NexusFi mobile app

How I develop my trading tools: How to videos
Latest: Trading hours and Mid price

Free code: GitLab repository
Reply With Quote
Thanked by:
  #4 (permalink)
 
teee's Avatar
 teee 
Sydney Australia
 
Experience: Beginner
Platform: CQG,NinjaTrader
Trading: Oil, ES, Bund, Currencies
Posts: 47 since Nov 2014
Thanks Given: 134
Thanks Received: 103

Coming from almost exactly the same situation as yours myself, I suggest you start with platform specific language. Easylang and NinjaScript are the best bet. You won’t waste your effort because the skill you build in learning it will not go to waste. You will pick up Python relatively fast if you end up deciding you want to persue it further.


It’s just more time efficient and resource efficient to start off with EasyLanguage or NT especially you are a busy man.


But if you also wish to learn Python as a skillset to aid ur career, def go for it.


I personally went through the route of Excel, to CQG, to NT, to MATLAB and now Python. I made each transition because I realised their limitations but I still use most of them nowadays because on the other side, each tool/language has their own strengths.


I don’t think there is right or wrong answer here. So I suggest you to pick one and get cracking, you will quickly learn whether it suits you or not.


Sent from my iPhone using futures.io futures trading

Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #5 (permalink)
MichaelFlowTrader
Atlanta
 
Posts: 152 since Jan 2017
Thanks Given: 43
Thanks Received: 120

Opportunity cost is a major concern for me. I'm already learning Python and have done a few data manipulation and automation programs with it, nothing major just hacking around, Googling for answers and I made a few things work for my main job.

I want to eventually get into running Algo and it seems like most pro platforms that have well documented APIs have all their examples in C++. I might learn just enough C++ to I guess interop? with my main language python.

I actually want to get into machine learning and using my personal data of how/when I win/lose to create an algo that can learn from my trading and create some best practices that won't just help me with my algo but with my manual trading.

I also want to create some chartless scalp based indicators as well.

Reply With Quote
Thanked by:
  #6 (permalink)
 jokertrader 
NYC, NY
 
Experience: Intermediate
Platform: Sierra, TT
Broker: N/A
Trading: Spread Researcher and crypto degen
Posts: 654 since May 2013
Thanks Given: 545
Thanks Received: 360

Another consideration is Sierra automated trading.

It has good backtesting and automated spreadsheet trading with entry and exit rules.
There is also an optimization backtester software for a small fee.
Also Sierra has great advanced trade management techniques (moving to BE, trailing stop, splitting contracts on different exit strategies)

This combination might be an easier way to run auto trading

of course i dont have the experience .. i am just a newbie at this.. but want to throw it out there in case there is someone who does and can comment

Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #7 (permalink)
 iq200 
London, UK
 
Experience: Intermediate
Platform: Ninjatrader, Tradestation
Broker: Kinetick, InteractiveBrokers
Trading: Equities, Futures
Posts: 407 since Jun 2010
Thanks Given: 145
Thanks Received: 278

One addendum in addition to the useful information that has already been posted is that if you use python on windows, you can use the visual studio environment and mix python with other languages such as C# and C++ transparently using dot net interoperability.

Follow me on Twitter Visit my NexusFi Trade Journal Reply With Quote
Thanked by:




Last Updated on October 15, 2017


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts