Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Is NT8 really 64-bit native?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Is NT8 really 64-bit native?

    I am using Windows 10 Pro 64-bit version and NT8 is installed under the Program Files (x86) folder automatically, a place Windows installs 32-bit applications. It's quite natural to assume there is something that Windows classifies NT8 as a 32-bit application.

    Over the years in my journey to investigate some serious memory issues that happens only to NT8, I carried out some experiments to find out if NT8 is actually native 64bit. I was not able to reach a solid conclusion but given some typical behaviors NT8 exhibits, I cannot help but to make an assumption that NT8, even though running in 64 bit mode (possibly under WOW64), is actually 32bit rooted and there is a high possibility that some 32bit legacy codes were not fully converted to 64bit.

    Here below are some of my observations:
    1. when I deliberately run up 32-bit version, there is a dialogue box to suggest me to use the 64-bit version
    2. after running up the 64 bit version, I don't see the tag (32 bit) under Task Manager
    3. I have applied all tricks to optimize the system but when memory usage comes into play, the 64bit version actually behaves like a 32bit application. It's my gut feeling that there is a 32bit bottleneck

    Could anyone share his view on why the NT8 application is installed to "Program Files (x86)" rather than the normal "Program Files"?
    Is it possible that NT8 is calling to some 32-bit DLL? or
    Is it because DLL written in C# are much slower than in c++ ? or simply
    Is NT8 fully 64-bit native?

    #2
    You can find whether NT8 executes compiled NinjaScript code in 32bit or 64bit mode by inserting the following code within State == State.Configure:
    Code:
                else if (State == State.Configure)
                {
    
                    if (IntPtr.Size == 4)
                    {
                        Print("32-bit");
                    }
                    else if (IntPtr.Size == 8)
                    {
                        Print("64-bit");
                    }
    Of course, that doesn't show whether all aspects of NT8 are fully 64-bit native.
    Last edited by caveat_lector; 04-26-2020, 07:37 AM.

    Comment


      #3
      I would guess that all things NT8 64 bit are NOT all 64-bit native. I have been assured by several high level programmers that the things that are Int32 items do not harm the 64-bit environment... like NT8 losing its own thread on something as simple as our linear reg trigger lines. sent this one in for platform support to look at and see if they can explain.
      We have run our exact same trigger code on NT7 for 10 years without trouble.

      this took down our software NT8 latest ver with a lost thread -- once we rebooted have never seen this error again.(yet) the common message when NT8 loses something You are accessing an index with a value that is invalid since it is out-of-range. I.E. accessing a series [barsAgo] with a value of 5 when there are only 4 bars on the chart. Of course the code is correct and would send to ninja to look at.
      Hoping for a fix in next update ..

      2020-04-24 08:15:41:203|1|2|Using HDS (hds-us-nt-002.ninjatrader.com/31655)
      2020-04-24 08:20:14:194|3|16|ERROR: class:T3_TriggerLines topic:Bar dbg:99005 CurrentBar1 msg:System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
      at System.Windows.Threading.Dispatcher.VerifyAccess()
      at System.Windows.Freezable.WritePreamble()
      at System.Windows.Freezable.Freeze(Boolean isChecking)
      at NinjaTrader.NinjaScript.BrushSeries.Set(Int32 index, Brush value)
      at NinjaTrader.NinjaScript.BrushSeries.set_Item(Int32 barsAgo, Brush value)
      at NinjaTrader.NinjaScript.Indicators.T3_TriggerLines .BarUpdate()
      at NinjaTrader.NinjaScript.Indicators.FinalNT8Indicat or.OnBarUpdate() stack: at System.Windows.Threading.Dispatcher.VerifyAccess()
      at System.Windows.Freezable.WritePreamble()
      at System.Windows.Freezable.Freeze(Boolean isChecking)
      at NinjaTrader.NinjaScript.BrushSeries.Set(Int32 index, Brush value)
      at NinjaTrader.NinjaScript.BrushSeries.set_Item(Int32 barsAgo, Brush value)
      at NinjaTrader.NinjaScript.Indicators.T3_TriggerLines .BarUpdate()
      at NinjaTrader.NinjaScript.Indicators.FinalNT8Indicat or.OnBarUpdate()
      2020-04-24 08:20:14:195|3|4|Indicator ' T3 TriggerLines': Error on calling 'OnBarUpdate' method on bar 1: The calling thread cannot access this object because a different thread owns it.
      2020-04-24 08:20:14:196|3|16|ERROR: class:T3TriggerLinesSyn topic:Bar dbg:107 CurrentBar1 msg:System.ArgumentOutOfRangeException: 'barsAgo' needed to be between 0 and -1 but was 0
      Parameter name: barsAgo
      at NinjaTrader.NinjaScript.Series`1.get_Item(Int32 barsAgo)
      at NinjaTrader.NinjaScript.Indicators.T3TriggerLinesS yn.BarUpdate()
      at NinjaTrader.NinjaScript.Indicators.FinalNT8Indicat or.OnBarUpdate() stack: at NinjaTrader.NinjaScript.Series`1.get_Item(Int32 barsAgo)
      at NinjaTrader.NinjaScript.Indicators.T3TriggerLinesS yn.BarUpdate()
      at NinjaTrader.NinjaScript.Indicators.FinalNT8Indicat or.OnBarUpdate()
      2020-04-24 08:20:14:196|3|4|Indicator ' T3 TriggerLinesSyn': Error on calling 'OnBarUpdate' method on bar 1: You are accessing an index with a value that is invalid since it is out-of-range. I.E. accessing a series [barsAgo] with a value of 5 when there are only 4 bars on the chart.

      Comment


        #4
        Hi John,
        Thanks again for your input! You know, I have seen a lot of these

        System.ArgumentOutOfRangeException: 'barsAgo' needed to be between 0 and -1 but was 0
        System.ArgumentOutOfRangeException: 'barsAgo' needed to be between 0 and 0 but was 1
        System.ArgumentOutOfRangeException: 'barsAgo' needed to be between 0 and 1 but was 2

        in products from different vendors. I used to think it was a bug in the vendor's code as the programmer doesn't count from 0. I even thought those different vendors might hire the same team of programmers. Well, having said this, my feeling still tells me, something's wrong in the Ninjatrader application code. Two of my vendors have already turned down my persisted request for a full investigation and I always wonder why no other users raise up the question. "Losing thread" explains what I have observed on my side. I witnessed after the each recalculation, the memory usage piles up and this is more than a simple memory leak! In a simple memory leak, the calculation can finish with results but in ninjatrader, the system only quits with "Not enough quota xxx" or takes the user to an infinite wait until it is killed manually. My system has a lot of memory waiting to be used and I even manually free up memory. No cure at all... I hope you will get better support from ninjatrader and find an ultimate solution. For me, I am tired of the "email us the log and trace" and would never heard anything further except "it's the 3rd party's problem" or "you may have too many panels open", "you may have loaded too many data..." etc.

        Back to the 64 bit topic, I have a DLL list that Ninjatrader 64-bit uses. In there, all DLL NT8 (latest 64 bit version) loads to memory are from C:\WINDOWS\System32\, a location stores only 32-bit DLLs.
        If NT8 had just converted from NT7 last month, it's acceptable. Somehow, NT8 has already been in the market for a period of time and has gone through different iterations, it is very hard to convince a user that it is still not fully 64-bit native. I hope I am wrong...

        Comment


          #5
          Timko , I will get a reply Monday & will forward code for the trigger lines which is VERY simple dll calls. If they chose they can replicate it but I doubt they take that one. I am pretty sure they know they are losing threads in NT8. The Difficulty as you know (having now tried now 200 times to replicate it and it doesn't happen, less so the harder I try to make it happen) . So they will say it's my fault and check my code. I honestly think this losing thread error is has always been random and shows up on any indicator at any time for any reason making it difficult to track down. Vendors can't be responsible for Ninja losing threads as this is happening outside of our jurisdiction. This is one of the last big hurdles they need to get over before seeing stability on a wide scale. Will report back if we get anywhere with support.

          Comment


            #6
            Hello timko,

            Yes, NinjaTrader has to install both 32-bit binaries and 64-bit binaries. You will find these in the bin (32-bit) and bin64 (64-bit) folders. This is why it installs to the Program Files (x86) folder.

            The 64-bit icon used to start NinjaTrader will start NinjaTrader in 64-bit mode. You can confirm this in Help > About.
            Last edited by NinjaTrader_ChelseaB; 04-26-2020, 09:04 PM.
            Chelsea B.NinjaTrader Customer Service

            Comment


              #7
              Thanks Chelsea!
              But what raised my eyebrows is that, on running the 64-bit version, I see that all DLLs loaded to memory are from the 32-bit folder C:\WINDOWS\System32\
              Please correct me if I am wrong...

              Comment


                #8
                #timko #novaknexgen
                Re: "The calling thread cannot access this object because a different thread owns it." - this caught my eye.
                I wonder if the following might be of interest to you (if I understand your comments, you are suggesting problems in 8 core platform, didn't happen in 7 etc).
                I receive these errors every day. I posted here on the Forum, it was taken 'offline'.

                The errors are, according to Support, generated by something drawing on a chart.
                I run NO third party indicators that draw anything.
                I have Trendlines (was a Ninja add-on, now part of core platform) modified by vendor Edge - but the modification is not to do with how it draws the lines at all, and Edge/Integrity Traders seems a very experienced and diligent programmer.
                I have Repeater, which is a Ninja-coded add-on.
                Other than that, I had TickRefresh and ChartLagTime, since removed.

                Ninja online response was we are very keen to track down any core platform issues, and then took it offline.
                Where the response then was you've got third party indicators and add-ons, take them all off and look out for what isn't being drawn when you get the error. I never see anything not being drawn when the errors appear, but it may be on a chart not in view (Tabs) and drawn on the next tick update.
                To which I responded the third party add-ons don't draw anything, and the only add-on that does is a Ninja one. You have daily repeatable errors - if you want to find the cause, you debug your own software as you say you are keen to do. It does not matter to me, as it does not cause me any issues. If it doesn't 'matter' hence Ninja aren't minded to that's fine too. And heck I wouldn't expect an empty Windows Event Viewer.

                But it does seem it matters to you guys if it affects your software/business, which is what prompted me to post....

                So now just Repeater.

                The above errors are generated at the Open, sometimes the Close, and I am pretty sure relate to Instrument time series i.e. I use 1m, 2m, 5m, 15, Data Series and the errors are consistently at 09:31:02, 09:32:05, 09:35:01 etc. that sort of thing - I'm sure you get the gist....
                Repeater 'draws' the Open e.g. I have colour time Regions.
                But I also have core platform Session Breaks, which draw dotted gridlines, so I'm not pointing the finger. Also seems to point away from modifications to Trendlines - trendlines draw all the time, not just at the Open. But neither am I taking Repeater off a lot of charts to eliminate it. Ninja's job.

                I'd hazard a layman's guess that the errors are connected to the volatility that takes place at the Open.
                I'd hazard a guess that it could be to do with Repeater drawing on a fast tick chart - because I added it to some fast tick charts I didn't have it already on and the number of instances of error message at the Open increased. I might take it off all fast tick charts as that is only 8 instances hence manageable and see if the messages go away.

                Anyhoo, just an FYI if it helps to know in your pursuit. "The Difficulty as you know (having now tried now 200 times to replicate it and it doesn't happen, less so the harder I try to make it happen)" Every single day without fail, same time, same place. Replication not a problem. But Ninja can't be a*sed and want me to do it for them. They have my Workspace.

                Kind regards,
                Last edited by brucerobinson; 04-28-2020, 12:21 AM.

                Comment


                  #9
                  Hello timko,

                  NinjaTrader 8 64-bit is a 64-bit application build.

                  If you are referring to the referenced System dlls, the paths to these are not hard coded.

                  From my understanding the windows operating system should do the work to provide the correct versions of the System dlls for the mode of the application running.

                  Below are public links to educational sites I found from a google search that may offer some information.

                  I would like to know when do we need to place a file under C:\Windows\System32 or C:\Windows\SysWOW64, on a 64-bits windows system. I had two DLL's, one for 32-bit, one for 64-bit. Logically, I tho...






                  brucerobinson,

                  Our support does try to get to the bottom of things, but we have to identify if this is an issue with the platform, a specific indicator that is distributed with NinjaTrader, or if the issue is with code in an addon.

                  Unfortunately, this means that we do need our clients to reduce and test to identify what is needed to reproduce. With this we can decide if a bug report should be sent to our development, if our NinjaScript team needs to correct the code of a script that is distributed with NinjaTrader, or if the code in a 3rd party addon needs to be corrected by the original author.

                  We do note in the help guide that importing 3rd party addons may have an adverse impact on NinjaTrader.



                  If you are finding that the imported Repeater indicator is able to reproduce the behavior when tested in a new blank workspace with all other workspaces closed on a new chart with no other indicators, then this script should be further debugged.

                  May I confirm that you are able to reproduce this behavior with the Repeater indicator in a new workspace with all other workspaces closed?

                  Are you referring to the Repeater indicator found from the User App Share linked below?

                  Multi functional repeater of up to 10 X and/or Y Highlight regions daily or day of week. User interface expands for up to 10 events. Each event configurable as a time region, price region, fixed rectangle or dynamic rectangle (adjusts on price), select a day of the week or daily. Here is a quick video […]




                  novaknexgen,

                  If there a bug in the platform you are able to isolate as being caused by NinjaTrader when using supported code documented in the help guide and you are wanting a correction, we will need an exported sample with just the few lines of required code to reproduce the behavior.

                  This would need to be a very simple demonstration script with no custom logic.

                  With this we would create a report with our developers and provide you with a tracking ID.
                  Chelsea B.NinjaTrader Customer Service

                  Comment


                    #10
                    Chelsea , thank you we have a ticket in and they sent us some information on threading
                    With NinjaTrader being multithreaded, these errors can come up if you are trying to modify an element that exists on the UI thread from a data processing thread.
                    For instances like that, we would suggest using a dispatcher so the modification is made by the proper thread. The snippet from the Help Guide article below can be used to modify elements on the UI thread from code processing in a data processing thread like OnBarUpdate.


                    We are currently going through our code to see if there is anything that is relevant for our situation. Thank you for the follow up.

                    Comment


                      #11
                      #ChelseaB thanks for the response.
                      "Unfortunately, this means that we do need our clients to reduce and test to identify what is needed to reproduce."
                      That is NinjaTrader's choice to put that onus on your clients. I understand that that is so. I choose not to (any longer).
                      "We do note in the help guide that importing 3rd party addons may have an adverse impact on NinjaTrader."
                      Which is why, from the outset of migrating to NT8, I have avoided 3rd-party add-ons.
                      The only third-party add-ons I have used have been to overcome core platform inadequacies NinjaTrader refuses to resolve - TickRefresh because hard-coded 250ms is not fit for purpose and a retrograde step c/w NT7 at 100ms (as per my post, I have taken this off to be back to bare core platform and it is awful without it, exacerbated in today's volatile markets), there is a thread going back since the introduction of 8 requesting re-instatement of user-selection supported by many users and Ninja refuses so you get a third-party add-on which I don't want to use but have no option or go back to NT7; ChartLagTime - again well documented lagging with no third-party code. I am happy to say I no longer experience this since R20 as the core platform code has been improved. But again this need for a third-party add-on was to highlight/make visible core platform deficiency, and that alone.
                      The only 3rd-party add-ons used, both necessary to identify and/or overcome core platform deficiencies, not the cause of problems and now removed.
                      TickRefresh will have to be re-instated to make the platform fit-for-purpose, as a workaround. As many experienced users have reported and agreed, 250ms is not fit for purpose.

                      "Are you referring to the Repeater indicator found from the User App Share linked below?"
                      To confirm, yes I am. It is written by Ninja's PaulH, not a third-party.

                      "If you are finding that the imported Repeater indicator is able to reproduce the behavior when tested in a new blank workspace with all other workspaces closed on a new chart with no other indicators, then this script should be further debugged.

                      May I confirm that you are able to reproduce this behavior with the Repeater indicator in a new workspace with all other workspaces closed?"
                      No. You have sufficient information to act upon, should you be minded to do so to improve your product.

                      Kind regards,

                      Comment


                        #12
                        Hello novaknexgen,

                        If you are attempting to access another thread in the code you would need to use Dislatcher.InvokeAsync() specifically to prevent threading errors.
                        Below are links to examples that modify the chart and use Dispatcher.InvokeAsync().
                        Hello All, Moving forward this will be maintained in the help guide reference samples and no longer maintained on the forum. Creating Chart WPF (UI) Modifications from an Indicator - https://ninjatrader.com/support/help...ui)-modifi.htm (https://ninjatrader.com/support/helpGuides/nt8/creating-chart-wpf-(ui)-modifi.htm) I've



                        brucerobinson,

                        If the Repeater indicator can reproducibly cause an issue when used in a workspace by itself with no other indicators, I will send an message to NinjaTrader_PaulH there is a reproducible issue and to take a look at his personally created and community shared script if he would like to.
                        Chelsea B.NinjaTrader Customer Service

                        Comment


                          #13
                          OK I HAVE SOLUTIONS ( WE THINK !!!) >>> they come at the end of 2 LONG LONG LONG LONG WEEKS OF SUFFERING! nothing like hundreds & hundreds of clients suffering through migration from Ninja 7 -8 !! Having ninja 8 crash every day 1-5 times per day... all sending in Ninja Support log files and all of them receiving the same answer .. it was Nexgen's indicators check with them. Fortunately we have a lot of VERY tech savy and smart clients and so far, ( cannot guarantee this works for all and always 100% ) but so far , this has been the fix to what we now call , "SPONTANEOUS SHUTDOWN" .. sounds better than "crash" .

                          First some basics, Nexgen.dll is the same C++ dll we run on TradeStation ( with zero crashes ) Ninja 7 with a rare crash and Ninja 8 with 1-5 crashes per day. https://www.screencast.com/t/UfpYKmaYOMY so to be clear.. same software on all 3 platforms.

                          After analyzing 1000 "spontaneous shutdown" from clients we all agree they stem from the drawing mechanisms most of the time in NT8.

                          attn: chelseaB--- maybe some prep-work for the NinjaTrader 8 installer may be needed before putting it on a dirty copy of windows???

                          We have prepared this "GUIDE" for setting up your computer right and hopefully eliminating crashes. If you have a laptop this is important.

                          Ninja Trader 8 Computer Prep & Trouble Shooting Guide
                          1. Ninja Trader 8 is sensitive to many things. Setting up your computer properly before you waste time chasing “spontaneous shutdowns” please follow these steps.
                          2. If you run a laptop- you must alter your power settings, so your CPU does not run at less than 100% by changing your power plan. Search power plan https://www.screencast.com/t/1sEziUW02zMo select change advanced and activate high performance plan https://www.screencast.com/t/1gSCHmaUz9y failure to do this in a laptop will result in your CPU using only 5% of its power making Ninja 8 unusable. If you do not need full power you can easily switch it back https://www.screencast.com/t/no2ExPXr
                          3. NT8 graphics relies heavily on Windows Direct X and .Net framework. Graphics and faulty drivers appear to cause most “spontaneous shutdowns” and to circumvent this you must clean up your copy of Windows.
                            1. This is the page to follow from MICROSOFT as you get into it please NOTICE “RUN AS ADMIN” for command prompt by right clicking on it. https://www.screencast.com/t/Va92QCYReZ If you fail to run as admin this will not work. Follow this page https://support.microsoft.com/en-us/...rrupted-system
                            2. John Novak CEO of Nexgen’s main computer had issues and this is what it looks like at completion https://www.screencast.com/t/4PV8DCqJW
                            3. REBOOT YOUR COMPUTER NOW! Before Step 3
                          4. Outdated Drivers on your computer will also be a challenge for Ninja Trader 8. Visit https://en.softonic.com/download/dri...-post-download ( you may use a different program but this one is very effective) And download driver Booster. Run program and check reboot PC option
                          • YOUR COMPUTER WILL REBOOT.
                          1. Then you must do is check and apply any Windows Updates to make sure you are on correct revisions- download install updates and then reboot the computer when updates are complete https://www.screencast.com/t/qARTL3Qq
                          2. OPTIONAL https://bitsum.com/ this program allows you to control your CPU and Prioritize Ninja Trader 8 you can add this in later if you wish ( setting ) https://www.screencast.com/t/yYBninahkSp
                          3. Norton Utilities optional but very highly recommended. This program will clean up your old internet trash files and registry and will help keep your computer running clean https://us.norton.com/norton-utilities ( we also use bleachbit but leaving out of this as it is a great tool, but its still bleach and bleach is dangerous)
                          4. NOW FINALLY TO NINJA 8 - DATA IS VERY (VERY) IMPORTANT PART OF NINJA 8 SUCCESSFULLY RUNNING. The data or missing data will cause 99% of your issues if you do not have it loaded correctly prior to your indicators running.
                            1. ALWAYS MAKE A BACKUP WORKSPACE ONCE YOU HAVE YOUR SPACE THE WAY YOU LIKE IT- YOU WILL NEED IT. To make it https://www.screencast.com/t/DJJkKSqpa
                            2. SETUP PROPERLY : Make sure the tools options market data tab has “do not merge ( Nexgen's policy) ” and show tick replay checked or you will not get any SYNTHETIC FIBS OR TRIGGERS to plot https://www.screencast.com/t/TfHSp5tg5hNP
                            3. YOU MUST “correctly” download more historical data days than you are going to chart, or your software will give you errors. If you run 10 days of data on your charts you will need to pre-download 12 days
                            4. To download data properly https://www.screencast.com/t/RlBOR76ziX
                            5. If you forget or data missing it will look like this DO NOT PANIC, many times you can recover by right clicking on the chart and reloading historical data https://www.screencast.com/t/GtP8mkfnS
                            6. If a chart comes up but is not plotting all indicators correctly, right click reload all historical data.
                          5. WHEN NINJA TRADER 8 has a “spontaneous shutdown” closing itself unexpectedly:
                            1. If you are in a trade with ninja trader as your broker, your stops and targets remain active at the exchange. Call your trade desk and manage your trade first.
                            2. Relax, explore to Documents Ninja Trader 8 workspace folder. DELETE these two files. https://www.screencast.com/t/M6G1o0Y5u then reopen your ninja8
                          1. If for some reason there is a workspace that opens immediately, VERY QUICKLY AND IMMEDIATELY close that workspace before it populates https://www.screencast.com/t/8LKAAGgJkBec
                          2. OPEN YOUR BACKUP WORKSPACE THAT YOU HAVE SAVED FOR YOURSELF> https://www.screencast.com/t/DJJkKSqpa now ninja 8 will be stable again.
                          3. FILE SAVE AS your workspace back to original name so you can run the original and retain your backup. https://www.screencast.com/t/IsJn2znUqiaq
                          1. IF nothing goes right and you are unable to open the platform successfully and want to have a cleaner data and workspace install.
                            1. WITH NINJA CLOSED- delete all your existing data by exploring to the documents, ninja trader 8, DB folder. Delete all files except Ninja Trader SQL file. https://www.screencast.com/t/aM5UUbECLIKL
                            2. DELETE ALL WORKSPACE FILES - https://www.screencast.com/t/o2esfh1ivS yes all of them we will replace it by downloading the file from the Nexgen Website to repopulate those files. https://nexgent3.com/resources/ make sure you unblock and run file as admin.
                            3. Once you have re-installed workspaces. You must then open ninja without a workspace running and pre-download the tick bid ask data for your markets prior to opening workspaces. Please download properly https://www.screencast.com/t/RlBOR76ziX
                          2. Ninja trader should be very solid with these protocols and fixes - at least they are so for us at this current moment in time.
                          Hopefully this will HELP all of you who struggle daily with NT8!

                          Comment


                            #14
                            Hello novaknexgen,

                            I appreciate you taking the time to find some workarounds, but this is not getting to the issue.

                            What specific lines of code are causing the error?

                            Does the error only happen when calling code in that referenced C++ dll?

                            You have mentioned:
                            "maybe some prep-work for the NinjaTrader 8 installer may be needed before putting it on a dirty copy of windows???"

                            What prep work?

                            Is there specific documented supported code that when used can reproduce a crash? If so, we need to get together a reduced test script that only has the necessary code to reproduce and then report this to our development.

                            Is the issue when rendering in OnRender()?

                            Below is a link to a test script on rendering, can the behavior be reproduced with this test script?

                            (a script that uses this approach to render - https://ninjatraderecosystem.com/use...ad/dvaluearea/)

                            Chelsea B.NinjaTrader Customer Service

                            Comment


                              #15
                              Thank you working on this now to see if this will solve issues . https://ninjatrader.com/support/foru...e-optimization

                              Comment

                              Latest Posts

                              Collapse

                              Topics Statistics Last Post
                              Started by Jimmyk, 01-26-2018, 05:19 AM
                              6 responses
                              835 views
                              0 likes
                              Last Post emuns
                              by emuns
                               
                              Started by jxs_xrj, 01-12-2020, 09:49 AM
                              6 responses
                              3,291 views
                              1 like
                              Last Post jgualdronc  
                              Started by Touch-Ups, Today, 10:36 AM
                              0 responses
                              10 views
                              0 likes
                              Last Post Touch-Ups  
                              Started by geddyisodin, 04-25-2024, 05:20 AM
                              11 responses
                              62 views
                              0 likes
                              Last Post halgo_boulder  
                              Started by Option Whisperer, Today, 09:55 AM
                              0 responses
                              9 views
                              0 likes
                              Last Post Option Whisperer  
                              Working...
                              X