Phoenix - Development+Suggestions - MQ4 in Post#1 - page 29

 

Price Action Channel, etc.

Hi Daraknor,

Thank you for your kind and thoughtful response. I'll deal with the issues one by one.

1. Price Action Channel may be a name concocted by Malone for a simple combination of moving averages. See the explanation of EASY method for details at http://www.compassfx.com/comp/Dean_Malone_E.A.S.Y._Trading_Method.pdf

Simply put it is a channel made up of two smoothed MAs, with a period of 5 and shift of 0, applied to the high and low price. In the reading I have done, Envelope is used most often as a limit, not as a breakout. Given the low values of the Envelope percent Phoenix is using, it seems to be a breakout, but the limits are far too narrow to make any sense to me.

I have coded Signal 1 in Phoenix as a Price Action Channel, as follows:

double HighEnvelope1 = iEnvelopes(NULL,0,P_EnvPeriod,MODE_SMMA,0,PRICE_MEDIAN,P_Percent,MODE_UPPER,0);

double LowEnvelope1 = iEnvelopes(NULL,0,P_EnvPeriod,MODE_SMMA,0,PRICE_MEDIAN,P_Percent,MODE_LOWER,0);

double CloseBar1 = iClose(NULL,0,1);

if(U_UseSig1)

{

if(CloseBar1 > HighEnvelope1) {BuySignal1 = true;}

if(CloseBar1 < LowEnvelope1) {SellSignal1 = true;}

You can see that I am using Phoenix to a trend-following EA by switching Buy and Sell signals on all Signal types. I hope that this is achieving the desired result, but not sure so far. I am not convinced that countertrending is the most sensible approach to trading, since (if I understand correctly) the signals are all predicated on momentum, but apparently in the wrong direction. It is therefore not surprising that a very high SL is used, with the consequence that losses are also very large. I would prefer to catch the trend as it builds momentum and come in when it has been established.

On the attached chart6, PAC is the pair of yellow lines, while Envelopes is black. Pink and aquamarine are Signal 2 indicators, while OSMA is at the bottom. The EASY indicators are the PAC, and the Traders Dynamic index.

In EASY method, you buy when price is above the PAC and the green line in TDI goes above 50 and the red and gold lines (see explanations in Malone document), add another buy if it crosses upper blue. In Phoenix, I would like to use PAC, and tune Signals 2 and 3 to correspond to the TDI triggers. Right now, in Phoenix I should get a buy signal when aquamarine (MA period 5, shift 1) goes above pink (MA, period 5, shift 5), but I'm not sure how to set OSMA values.

A more sensible implementation of Envelopes might look like the black line in chart7 (approximate only), where a touch by the price line indicates a change in direction.

2. Will take a closer look at OSMA and try to come back with concrete questions. It is not clear to me whether the peaks or crossing zero generate trade signals. I suppose it should be the peaks. Is that correct.

3. My programming skills are nil, so someone else will probably have to cobble the indicators together so they load with the EA if there is an interest in doing so. The template I have prepared is not perfect yet, and will require more work, Perhaps that is where things will stay.

4. For the time being I will try to optimize without signal 4 until I can figure out its role. I am afraid I don't get the picture after reading your notes.

5. Final question: how (if at all) does Phoenix make allowance for trading volume? Is there any EA or method that actually does this?

My general impression is that there should be no need to customize inputs for each currency pair. If we get the model right in its general design, the numbers will apply pretty much across the board.

 
autumnleaves:
Hi Daraknor,

Thank you for your kind and thoughtful response. I'll deal with the issues one by one.

1. Price Action Channel may be a name concocted by Malone for a simple combination of moving averages. See the explanation of EASY method for details at http://www.compassfx.com/comp/Dean_Malone_E.A.S.Y._Trading_Method.pdf

Simply put it is a channel made up of two smoothed MAs, with a period of 5 and shift of 0, applied to the high and low price. In the reading I have done, Envelope is used most often as a limit, not as a breakout. Given the low values of the Envelope percent Phoenix is using, it seems to be a breakout, but the limits are far too narrow to make any sense to me.

thanks for the reference (again) I will look at it in depth soon.

You can see that I am using Phoenix to a trend-following EA by switching Buy and Sell signals on all Signal types. I hope that this is achieving the desired result, but not sure so far. I am not convinced that countertrending is the most sensible approach to trading, since (if I understand correctly) the signals are all predicated on momentum, but apparently in the wrong direction. It is therefore not surprising that a very high SL is used, with the consequence that losses are also very large. I would prefer to catch the trend as it builds momentum and come in when it has been established.

Not all trades are based on momentum, no. Some are based on a slowdown in acceleration. Remember my post about the hammer, the pendulum and the wave? I think you're confusing actions of the hammer in reverse for actions of the wave. Basic premise is to look for slowdowns in the current market to predict reversals. Your premise is to look for slowdowns in price as the sign of an upward trend.

2. Will take a closer look at OSMA and try to come back with concrete questions. It is not clear to me whether the peaks or crossing zero generate trade signals. I suppose it should be the peaks. Is that correct.

Neither are true. It is the rate of change, the slope on OSMA, the second derivative at an instance of price.

4. For the time being I will try to optimize without signal 4 until I can figure out its role. I am afraid I don't get the picture after reading your notes.

think about hill crest detection algorithms and it might make more sense.

5. Final question: how (if at all) does Phoenix make allowance for trading volume? Is there any EA or method that actually does this?

No allowance. I'm not a good person to ask about all EA, I have only read a couple dozen other EA source code. I know volume is a decent indicator, but from watching the Level 2 signal data I wouldn't filter out slowdowns in volume for trend reversal (indecision at top of the hill). Please also keep in mind that you're looking at broker prices, broker volume. Strongest influence of broker price is island price (Level 2) but volume is mostly influenced by time of day. I suspect that broker volume is a statistically insignificant indicator to consolidation and breakout, but level 2 volume is a moderately strong indicator when the market is monitored closely. (e.g. people need to be staring at L2 data for L2 volume to matter.) I suspect this because the price would find little hills, you would see a few seconds of consolidation, no trades for several seconds, and then a flurry of trades followed by a few pip price change. Phrased another way, I would say that channel detection can be found with volume, but each time you zoom out on price action you need to zoom out on volume action. (15 min time frame may require getting all MQ4 broker data collected, etc.)

My general impression is that there should be no need to customize inputs for each currency pair. If we get the model right in its general design, the numbers will apply pretty much across the board.

I have thought about this very much, it is a design goal for Phoenix 7 to have automatic signal generation. Patterns manifest with different parameters for different currencies. Even if you do pattern recognition for all currencies and find they have the same behavior, the actual price data used to recognize the pattern varies by currency. Also, USDJPY has very 'tight' action, while GPBUSD has very 'loose' action. I think that means you need to ignore a lot of what the sterling tells you. (hammer is twitchy and misses nail)

 

Signal 4 difference

My Signal 4 looks as below. What happened? Why the difference?

double diverge;

bool BuySignal4=false,SellSignal4=false;

diverge = Z_S4_Divergence(P_Fast_Period, P_Slow_Period, P_Fast_Price, P_Slow_Price,0);

if(U_UseSig4)

{

if(diverge >= P_DVBuySell && diverge <= P_DVStayOut)

{BuySignal4 = true;}

if(diverge = (P_DVStayOut*(-1)))

{SellSignal4 = true;}

}

else

{

SellSignal4=true;

BuySignal4 =true;

}

 

Divergence or MACD

I found a note from Hendrik when he was considering replacing the divergence function with a MACD. Do you know what became of that? Would it simplify the code and cut down on CPU time? See below.

Actually I was looking for an explanation of "mypos". What would that be?

maF2 = iMA(Symbol(), 0, F_Period, 0, MODE_SMA, F_Price, mypos + 1);

maS2 = iMA(Symbol(), 0, S_Period, 0, MODE_SMA, S_Price, mypos + 1);

return(maF2-maS2);

If it can be replaced by a MACD? Could be. Will test this. Thanks for your contribution!

....

. And dv2 is simply MACD(fast,slow,mypos+1)

So all divergence function could be replaced by one iMACD(...) value.

... just a notice...

1. dv1 -dv2 != dv2 !!! but dv1 - dv2 = maF2 - maS2 !!!!!

 

I'm not certain which of the fundamental perspectives you present I should reply to.

#1 Z_S4_Divergence is a function written in Phoenix Code.

#2 You seem to have found the section of code I'm referring to.

#3 I was not aware of the MACD replacement concepts.

#4 mypos always equals zero, but the actual indicator uses the previous bar. (possibly as a hack to get a full bar but it may not be as accurate this way)

If someone can do Fast-Slow calculations and get identical results (as a number) by doing a single function I will replace it. I can do this work after Phoenix 6 is released, but I don't think it is worth the delay right now. I honestly don't know if the 1 bar lag is intended or not - I'd like to run tests both ways. Using 15 minute bars with no control points in backtesting is a way to confirm the intent.

 

Scalable Trailing Stop

PContour, I'm trying to figure out how to activate your variable trailing stop, but I find it difficult to fathom the meaning of your initial instructions.

"Make a TP an equal number of pips above current price as TS is below point. This is so that if your computer loses it's connection to your broker,the trade will close itself once it hits the TS or the TP."

Could you explain what you mean by "make a TP an equal number of pips above current price as TS is below point", or perhaps give a numerical example? Sorry to seem obtuse. Maybe it's the lack of sleep and late hours...

 

Trend or Countertrend

After watching the curves play out all day, and comparing Phoenix's performance with EASY indicators, I am more convinced than ever that countertrending is counter productive. I strongly suggest that we convert Phoenix to a trending system, for the following reasons.

1. In countertrending, trades are entered with the expectation of a long drift into negative numbers before the trade will turn around. Therefore a large Trailing Stop is needed, and when a trade hits its TS, the loss is large.

2. Trades are held for a long time in negative numbers, trades last are active for long periods, thus preventing other potentially positive trades from engaging (depends to some extent on MaxTrades, but generally true).

3. Overall yield on trades is lower than it could be, because positive numbers only appear when the trade returns to the entry price and moves into the black. A trending system would potentially have greater yield per trade.

See attached as illustration of the problem. Buy was engaged at 116.36, but travelled as far south as 115.52 before going out on SL. If a sell had been initiated then, it would have been profitable, doubling the yield on the buy that followed.

Comment please. Thank you all for your hard work, suggestions, and encouragement, as well as criticism.

 

In countertrending, I haven't had a loosing trade in several days with some new settings. Countertrending is probably more signal dependent because you enter trades moving against you initially. I plan to run both Phoenix for countertrend and another system for trending.

Exit strategies vary widely, and trailing stops are useful. I don't see any reason why trailing stops *must* be used, I consider them a tool. Each tool has a certain fitness, and trailing stops aren't as important for some trading strategies, like countertrending small changes (within daily range, etc). If we were doing trending outside the daily range, trailing stop becomes much more powerful. Working inside the daily range, trailing stops cause you to automatically loose some or most of the profit. Delayed tight trailing stops are even more useful, in more situations.

No, I'm not intending to make Phoenix a "trending" system. Phoenix has performed rather well as a "countertrending" system, and that performance is what attracted us.

Most currencies probably need severe updates to settings, but there is a fundamental disconnect between code sharing and settings sharing. I have been thinking deeply about this...

 

Trailing Stop or Stop Loss

Sorry, I meant to say Stop Loss, not Trailing Stop, in the note on Countertrending. This was written when I was rather tired...

I have been running 5.7.0 in mode 3 on different platforms and had losses in the past few days, although overall the result is very positive. The point is that these losses could either be eliminated or drastically reduced in a trending system, while the trades that could have been entered and were not would contribute further to the upside, making for an overall better performance.

 
autumnleaves:
Sorry, I meant to say Stop Loss, not Trailing Stop, in the note on Countertrending. This was written when I was rather tired... I have been running 5.7.0 in mode 3 on different platforms and had losses in the past few days, although overall the result is very positive. The point is that these losses could either be eliminated or drastically reduced in a trending system, while the trades that could have been entered and were not would contribute further to the upside, making for an overall better performance.

Hi Autunm

That's the point Autunm: how to reduce loss(es) ?

Perhaps in P6...

BTW, at the end up to now :P570 is a profitable EA.

All to need is : patience, patience, patience...

(as said a lot of time before )

Reason: