Incomplete Log output after ***MAX CONSOLE OUTPUT LIMIT REACHED***

CloudQuant limits the amount of text that can be output by a script. When this limit is reached, the string "MAX CONSOLE OUTPUT LIMIT REACHED" is written to the log.

In some of my recent backtests, I have seen the console output limit reached, and there is additional output after it. This suggests the feature to limit log size output has a bug.

It is troubling that the output which follows the max output limit reached message, appears to be an incomplete line of text which my code wrote afterward;

It suggests a more complex kind of bug than just ignoring the limit and it keeps writing output.

Please feel free to reach out to me if more information is needed in troubleshooting this issue.

Log output showing the issue below.
---- 8< -----

Symbol Shares Price

buy 50 SPY @ 234.85
buy 50 SPY @ 234.84
buy 50 SPY @ 234.76
SPY Orders pending short = 0
Time: 2017-03-21 11:55:00.174000
on_arca_imbalance 15:28:33.908000 ArcaImbalanceEvent(timestamp=1490124513903000, symbol='SPY', exchange='P', type='C', total_imbalance=2887, market_imbalance=0, indicative_match_volume=265634, indicative_match_price=234.4499969482422)
on_arca_imbalance 15:28:34.908000 ArcaImbalanceEvent(timestamp=1490124514903000, symbol='SPY', exchange='P', type='C', total_imbalance=1033, market_imbalance=0, indicative_match_volume=265634, indicative_match_price=234.4600067138672)
fill: At 15:28:35.397300 SLD -50 SPY @ 234.47 : bid 234.46 to 234.47 ask


  • Title is probably somewhat misleading. There is log output after MAX CONSOLE OUTPUT LIMIT REACHED, and it is not a complete line of text which my code would have logged.

  • ptunneyptunney Posts: 246
    edited January 2018

    Thanks for the report ms. This would be a low priority bug for us as it is not impacting performance.

    There are obvious sensible reasons for the MAX CONSOLE OUTPUT LIMIT.

    I would suggest you look at the following options...

    1. Your fills are being captured in the trades, orders and executions tabs as well as in the reports if you choose to download them. I suggest you spend some time acquainting yourself with that data and reduce what you output to the log accordingly.
    2. You can add to the normal trade data in your trades.csv file by adding the capture function to your order.algo. This will add a dictionary of your choice to your trades.csv file. A dictionary can be captured at order entry and at order exit.
    3. If you must have output in your own format then I suggest you write the date to a file which will appear under the USER DATA tab

    Write File Documentation

    Set up a dictionary in on_start, call it something like self.data_collection
    self.data_collection = {'value1': 1, 'last': 0, 'prevclose': 'SPY', 'atr': 0, 'OMG': 0,'wellhello": 0}

    Add data to the dictionary before placing your order.
    On your order.algo line add "collect=" ie...
    order.algo_sell(self.symbol, algorithm="market", intent="exit", collect=self.data_collection)

    Thanks for the post.

Sign In or Register to comment.