- ago
I populate the Quotes window in the premarket. Once the market opens, numerous trigger values get stuck at 100 and remain stuck throughout the trading day. Strangely, there are a few trigger values that work as expected (as in WL6). See the screenshot for examples.



I "think" there's a design flaw that's not allowing the trigger values to operate autonomously from other WPF events. If the trigger value code is made autonomous (as it should), this interference problem should disappear.

The Auto-Sort of the trigger values becomes useless because many trigger values are stuck at 100. This makes the Quotes window useless as intended. Is anyone even using the Quotes window in this malfunctioning condition?
0
393
Solved
14 Replies

Reply

Bookmark

Sort
Glitch8
 ( 6.11% )
- ago
#1
This is just how it's designed. If something triggers, we lock the value at 100 even if things go down afterward.
0
- ago
#2
So can I have the Concierge service fit it so it works like WL6 Pro? Why did you change it? WL6 did it right.
0
Glitch8
 ( 6.11% )
- ago
#3
I changed it because I wanted to retain the fact that the item triggered. Once something triggers, the action has been taken, so I felt it was more important to keep the 100%. It's "right" in my opinion so no, there's no need for a concierge request.
0
- ago
#4
I trade using a buy-high strategy part of the time. So if a stock drops at all, I don't want it. I need to Quotes window that's geared around buy-high and go higher strategies. I can pay for a special Quotes window that works like WL6.

Weak stocks that fall I avoid!

Maybe the Quotes window could have two modes for trading. One for buy-low strategies and the other for buy-high strategies.
0
Cone8
 ( 2.67% )
- ago
#5
Already discussed here:
https://www.wealth-lab.com/Discussion/IQFeed-Streaming-updates-issue-in-Quotes-and-Price-Triggers-Solved-10232#post48

Summary:
There's one one specific condition that locks it at 100.0, otherwise it will follow the price. My guess is that you're entering a trade trigger right at the current price. That's not what this is designed for.
0
- ago
#6
QUOTE:
My guess is that you're entering a trade trigger right at the current price. That's not what this is designed for.

I don't follow the reasoning in the cited article. I'm simply posting premarket Stop Buy orders in all cases. And the Quotes window gets stuck at 100 80% of the time, which is a lot. If double precision was involved, it would rarely get stuck. What's the point of it getting stuck for anything?

I just need the trigger value to not get stuck on strategy Stop Buy orders placed during the premarket. Please explain how I can do that? If you can add a special check box to prevent sticking, that would fit everything. I just want a workaround.

If you try to reproduce this sticking problem, it happens 80% of the time when crossing 100 following market open--very reproducible. (It may be we aren't seeing double precision because IQFeed is rounding to the nearest one cent.)
0
Cone8
 ( 2.67% )
- ago
#7
I'll take a look at the Stop case.
0
- ago
#8
QUOTE:
I'll take a look at the Stop case.

Thanks for investigating. I think IQFeed is rounding to the nearest one cent, so double precision matching is not involved.

Just create a checkbox to disable the sticking at 100. I'm not sure why anyone would want such a sticking feature in the first place.
0
Cone8
 ( 2.67% )
- ago
#9
Here's my take. The percentage for the Quotes tool is not the actual % to or from a particular price. We define 100% as the amount required to move from a reference price to the order price. By default, the reference price is the previous day's close.

You're setting stop order prices precisely to the previous close - precisely. A 100% move cannot be defined for that scenario. Once triggered, it's locked in because a move can't be defined.

However, in a Buy/Cover at Stop scenario where the order price equals the previous close, if the first price received doesn't trigger the order (price is lower than the ref/order price), we adjust the reference price to be 99% of the first price received so that the percentage move to the target can be calculated.

A work-around depends on what you're really looking for, but you're not using the tool for the purpose it was designed.
1
Best Answer
- ago
#10
QUOTE:
You're setting stop order prices precisely to the previous close - precisely. A 100% move cannot be defined for that scenario.

Interesting. Thanks for that analysis.

Below is the code used to compute all Stop Buy orders. The stop price is computed from
CODE:
double stopPrice = bars.Close[bar] + atr15[bar]*atrFactor;
where atr15 is the ATR(15) for the stock and atrFactor is either 0.32 or 0.24, so we are slightly above the previous Close price. Are you saying this is too close to the previous Close? Is there some kind of minimum "safe value" I need to check for? Is the stock price doing something weird (e.g. zig-zagging) on market open that confuses the Quotes window? (This lockup is only a problem at market open, but at no other times.)

CODE:
      void PlaceBuy(BarHistory bars2, int bar, double atrFactor, string signalMsg)       {          double peakLatest = GetPeakValue(bar);          sigMsg.Desc = (peakLatest*22.0).ToString("0.0") + "%/mo; " +             decorrelatedBuyStrength[bar].ToString("0.00") + "%/bar" +             RSquared.Value(bar, decorrelated, 4).ToString(" .00r²") + " ¼ATRstop";          Transaction t = PlaceTrade(bars2, TransactionType.Buy, OrderType.Stop, bars2.Close[bar] + atr15[bar]*atrFactor, sigMsg.Title(signalMsg));          if (bar == bars2.Count-1)          {             t.SetPositionMetric("sharpe ratio", sharpeRatioVal.LastBar(true));             t.Weight = sharpeRatioVal.LastBar();             t.SignalName = sharpeRatioVal.ConsecWins("0 ") + t.SignalName;             //WriteToDebugLog(sharpeRatioVal.LastBar());          }          else             t.Weight = peakLatest;       }
QUOTE:
A work-around depends on what you're really looking for,

I'm looking to buy the stock when its price is slightly higher than the previous Close so I know it's going up. The atrFactor was experimentally set on WL6 to maximize profit.
0
Cone8
 ( 2.67% )
- ago
#11
See your image and compare the previous close (12 March) to your order prices... they're the same.

Conclusion:
Either atr15[bar] is 0 and/or atrFactor is 0.
My guess is that you have a problem with the instance variable atr15.
0
- ago
#12
QUOTE:
your image and compare the previous close (12 March) to your order prices... they're the same.

I'm not seeing what you're talking about. Can you give me a screenshot of precisely what numbers are the same because we are clearly talking about different numbers.

The numbers I'm looking at are the Close for the final bar (idx=bars.Count-1 =1499) of the Chart, bars.Close[idx], and the computed Stop Buy price for the off-the-Chart bar. I appreciate you are referencing different numbers. Which numbers are those?



I did go through several stocks just to confirm the above screenshot is not a fluke. Sorry this problem is so mysterious, but we are talking about different numbers ... somehow. I need to know what you're seeing that's breaking the Quotes window, which I'm clearly missing.

If we are talking about the same numbers (I doubt it), then try reproducing the problem with a Stop Buy buy-high strategy using the Quotes window.

---
After you described the process the Quotes window employs to compute the trigger progress bars in Post #9, it occurred to me that the zig-zag behavior of the opening price may be confusing the Quotes algorithm. If so, I would recompute the progress bars after the market opens based on the first 30 seconds of the median price. That should give you a more robust solution. BTW, this was never a problem with the WL6 Quotes window (using the same buy-high strategy).

Do you think there's something about buy-high strategies the WL8 Quotes window doesn't like?
0
Cone8
 ( 2.67% )
- ago
#13
Screenshot is your starter post.
Every single one of the price triggers (Order Price column) is the Closing price for March 12. Are you disagreeing with that?
0
- ago
#14
QUOTE:
Every single one of the price triggers (Order Price column) is the Closing price for March 12. Are you disagreeing with that?

You are correct. Apparently, I got two separate strategies mixed up. The strategy in the first post is for the Voss Predictor (A buy-low strategy), and it does have an entry point that employs the previous Close for the Stop Buy price of the following bar.

So that's a problem with the WL8 Quotes window, but not the WL6 Quotes window--interesting. So what's the safe Stop Buy price to use relative to the previous Close in WL8?

All the other posts were referencing the Bull Run strategy (A buy-high strategy). I "think" it was having the same trigger-value sticking problem, but I want to wait until after Monday's open to confirm that. Sorry I was mixing two separate strategies up; my mistake. Too much going on. Thanks for pointing this out!
1

Reply

Bookmark

Sort