Jump to content
Medved Trader Forums

Mike Medved

Administrators
  • Posts

    1,542
  • Joined

  • Last visited

  • Days Won

    124

Everything posted by Mike Medved

  1. Jack, you don't need to know how to program. What you need can be done in a "Simple" scan mode, with two rules. The first one would check if the Close is greater than SMA8 and if not, stop. The second one would check if the Close one candle ago is greater or less than SMA8. Have you seen our youtube tutorials for scanning: this is part 1 is
  2. In advanced code... will be able do something like: if (Any(1,5, Close>Open && Close>Close[1])) ... do something which would mean if any of the candles from 1 back to 5 back are positive and close higher than previous one.... of course, if the condition doesn't fit exactly into an expression, can also do full code like this: if (Close.Any(1, 5, (i, x) => { if (Close<=Open) return false; return (Close>Close[i+1]); } );) ... do something but that is more complex.
  3. We cannot implement something from visuals. Need to know how it works - formula/algorithm. Since they are selling this (and not cheap), I don't expect they'd share it.
  4. That's a bit vague. How to combine them? In what proportions? If you have a link to an article discussing this, please post. Also, you can - today - create a paintbar that can use any combination of indicators, use their values in whatever formula you like, and plot the line on the chart.
  5. Give a link to formula/examples?
  6. Oh btw. The easiest way to check that it switches direction is to do Crosses (or, if you want to know what switch it is, red to green or vice versa, CrossesUp or CrossesDown) on 0 for the Direction value. Not Value as you have it in the above screenshot.
  7. This was an omission. Will be fixed in next release, hopefully today. It will have Value and Direction. Value obviously the height of the bar and Direction is either 1 or -1 for positive and negative. You would check whether there was a switch by comparing Value[0] to Value[1] and what kind of switch by checking the Direction.
  8. Maybe they were doing some maintenance at night.
  9. If the box size is based on the % of the price at the start of the Renko "candle", and doesn't change while the candle is being built, then there is no retro-changing of the box size. And yes, the exact break points will not match between candles - that is, if there is an X tall green candle followed by X tall red candle, the close of the second candle will not match the open of the first candle. Can't be helped if you base your box size on % and not on an absolute number.
  10. I just sent this to one of the clients, posting it here as an example: /// Note that some functions are empty as is the PaintbarState - that's because they /// are automatically put in by the Advanced paintbar generators and are just /// placeholders if they are not needed FIFOQueue SavedCandleHigh; FIFOQueue CandleHigh; /// <summary> /// Is called at start of paintbar calculation, should be used to initialize anything needed for the paintbar. /// </summary> private void PaintbarInitialize() { } /// <summary> /// Holds paintbar state - fill with variables needed to be preserved for next paintbar calc /// </summary> private struct PaintbarState { } /// <summary> /// Holds current PB state - use to calc PB, changes to it carry over to next PB calc /// </summary> private PaintbarState CurrentState; /// <summary> /// Holds saved PB state - internal /// </summary> private PaintbarState SavedState; /// <summary> /// Is called at start of paintbar calculation, should be used to clear the paintbar state /// </summary> private void PaintbarClearState() { CurrentState = new PaintbarState(); SavedCandleHigh = new FIFOQueue(15); CandleHigh = new FIFOQueue(15); } /// <summary> /// Saves paintbar state (called internally). /// </summary> private void PaintbarSaveState() { SavedState = CurrentState; CandleHigh.CopyTo(SavedCandleHigh); } /// <summary> /// Restores paintbar state (called internally). /// </summary> private void PaintbarRestoreState() { CurrentState = SavedState; SavedCandleHigh.CopyTo(CandleHigh); } public void MainCalculation() { CandleHigh.Add(High); double high, low; CandleHigh.GetHighLow(out high, out low); // Can instead do if (High >= high) depending on what functionality you want if (Close >= high) // if current candle's close is at 15-candle high. { SetColor(SysColor.MainIndicator); TriggerAlert("at 15 candle high", "15 hi"); SetScanResult(true); } }
  11. As you may know, we do have a Youtube channel: https://www.youtube.com/channel/UCD9KD0V7T62Y29i1YYw9-jQ I'd like to entertain suggestions on the videos you think should be added to it. Ranging from beginners' to experts', but with emphasis on beginners, since experts usually take care of themselves
  12. Yes, that's correct. There is really no other way to do that, since the indicators are set up and calculated prior to any scan/paintbar code being executed.
  13. I don't know what you mean by doesn't have this as a feature when code is produced. If you are talking about Advanced mode, In the Param column if you click on it, it shows the bid only/ask only param and remembers it if you set it, no? It may not show it in that column, but that's because it is not shown on the chart legend either (the chart legend is what is shown in the column).
  14. https://www.investopedia.com/ask/answers/05/062405.asp That's a good resource. Some traders find that this indicator is too responsive to price changes, which ultimately leads to being taken out of positions prematurely. To solve this problem, the slow stochastic was invented by applying a three-period moving average to the %K of the fast calculation. Taking a three-period moving average of the fast stochastic's %K has proved to be an effective way to increase the quality of transaction signals; it also reduces the number of false crossovers. After the first moving average is applied to the fast stochastic's %K, an additional three-period moving average is then applied - making what is known as the slow stochastic's %D. Close inspection will reveal that the %K of the slow stochastic is the same as the %D (signal line) on the fast stochastic.
  15. Jason, all that stuff can be done using the advanced code with tracking session-variables as we did in other examples on this forum before. You can look at session info, any time you get new session, record the price as "open" (for both the core symbol and compare-to symbol), then for all subsequent values you can get percentage from open as (Close-SessionOpen)*100/SessionOpen, and compare them. Same with session high/lows - we discussed this before.
  16. I know right? But out of almost 7.5 billion of people on the planet so relatively few know that!
  17. Ok it will be in next beta (Jerry will email you to get the pre-beta install so you could try it now).
  18. Like this (it's 252 because there are 252 trading days a year)?
  19. Ok so - indicator that would take a period, and would track a rolling high and low of the period - would suffice?
  20. I guess I could make a rolling 52 week high indicator. Wouldn't be a horizontal line. Or you could do it with a paintbar if you wanted. Do you know enough about advanced paintbars to try?
  21. Live data feed is usually tick-data or close to it.
  22. VWAP is a tick indicator - that is, it is calculated from tick data, not from candle data. So, if your chart is backfilled with OHLC data, its VWAP calculation will not exactly match someone else's calculation that uses true tick data. Especially if you specify the minimum trade size (which for OHLC would almost always be satisfied, vs tick data).
  23. Ok, the problem is that the line if (Timestamp <= SessionInformation.SessionStart.AddMinutes(5)) should be if (Timestamp < SessionInformation.SessionStart.AddMinutes(5))
  24. "CrossUp" means previous candle's EMA is lower than the current candle's high and the current candle's EMA is higher than the high. Is that what you meant to do? If you remove the "crossUp" - do you see a stretch in the chart where the paintbar's condition is satisfied? If there is, and you add the CrossUp, and the CrossUp condition is within that stretch, it should work.
×
×
  • Create New...