Phoenix 6 Expert vs Simple

 

We have a lot of great ideas expressed on this forum. The great ideas turn into code and settings, offering more and more options to users. So many options, most are simply turned off by how much information is present and how confusing the system appears.

Phoenix has a lot of ideas that have turned to settings. Some people like them and some people don't. Phoenix 6 is built around a very extensible code base, with lots of places to insert other more complex strategies present in some commercial EA. Many of these code extensions aren't really useful for Phoenix, and I plan to trim them out. (Phoenix doesn't use any pending trades for example.)

A simple EA lacks the features that many experts desire. I want things like delayed trailing stops and delayed protection of winning trades. Months ago, I made a post about creating an EA that only did one thing: manage exit strategies. I'd like to incorporate many useful aspects of that design into Phoenix 6 over time. In Phoenix 5, the exit logic was married to magic numbers and modes. In Phoenix 6, I'm separating them clearly but still keeping magic number tracking. In Phoenix 5, we really lacked the ability to monitor what was going on. In Phoenix 6, we have signal debugging separate from code debugging (for programmers vs optimizers). All of these options create a formidable wall to new users.

Phoenix in the contest brought many people over to the idea that automated trading could be viable. Phoenix as an experts system is a horrible way to introduce it. Phoenix as a simple system doesn't meet my needs, and I imagine many others as well.

Here is my proposal: fork development into two versions. A simple system has only a single trade, only the most basic common exit strategies, but full signal use. (If nothing else, a fast and lightweight EA useful for signal optimization.) The expert system would use the complete template, but not all possible functions are programmed at release. Settings similar to mode 3 will be available, multiple simultaneous trades, confirmation signals to adjust lot size based on signal data, etc.

Both expert and simple systems will come with optimized by default settings for a single currency. PhoenixSimple would be mostly compatible with PhoenixExpert for settings, but Expert would have more settings available. We should have tools to convert between one and the other, but performance will be different with some expert settings (changing the exit definitely changes the performance).

I have been thinking of "how do I satisfy as many users as possible?" and I think this is the best way. I'm interested in any and all reactions to this separation. I welcome flames and constructive suggestions.

 

Here is an early alpha. Most of the neat features are still "TODO", and there are many TODO comments in the file. Right now it is very similar to Phoenix 5.7 but done in the new style. It still has a lot of extra unused stuff inside it slowing the EA down as well. After I add a few more indicators I'll gut it to make a much faster "Phoenix 6 Simple" as a beta version.

One reason to use this file is to learn how Phoenix signals work, and look at all of the debugging signal information. Don't have debug turned on with backtest, 1 month of data = 10MB or so. 1000 test on 3 months data would be about 30G of data.

Files:
 

Extra Signal for Phoenix

I would like to add extra signals from EASY (see Malone EASY document) to Phoenix. When I try to add the Price Action Channel, the result is exclusively sell transactions. Can you suggest why this might be happening? See the code below.

Perhaps these signals could be included in Phoenix 6.

bool BuySignal6=false, SellSignal6=false;

double HighPAC1 = iMA(NULL,0,P_PACPer,P_PACShift,MODE_SMMA,PRICE_HIGH,0);

double LowPAC1 = iMA(NULL,0,P_PACPer,P_PACShift,MODE_SMMA,PRICE_LOW,0);

double haClose1 = (PRICE_OPEN + PRICE_HIGH + PRICE_LOW + PRICE_CLOSE)*(0.25);

if(U_UseSig6)

{

if(haClose1 > HighPAC1) {BuySignal6 = true;}

if(haClose1 < LowPAC1) {SellSignal6 = true;}

}

else

{

SellSignal6=true;

BuySignal6 =true;

 

Another "hat off " to you Darak

I suggest that you, we have to "organize" the test of P6. And strongly organized like

- 10 guys

- 1 brooker

- same settings for one week to see eventual bugs

- TF 15

-24/24, 5/5

- full auto, no touch

One guy staying on P570 to compare trades...

Any "irregularities" reported immediatly to you (wth all sttuf : reports, alert, etc...)

At beginning If everybody goes everywhere with no rules it will be very, very, confusing..

After one week (or more) ok guys : test what you want to test but note precsily what you have done...

I am here waiting instructions...

 

Structured testing

Great Idea Bert. I suggest that you organize the testing campaign. I and my friends can run 5 or 6 brokers.

 

Daraknor,I will forward test Phoenix 6 Alpha.Oh,I saw the code:extern string U_Trade_CURRENCY = "USDCHF".Could I change it to "USDCHFm"?The reason is that now I forward test Phoenix 5.7.2a in a IBFX Demo mini account,and want to test Phoenix 6 in this account.

 
autumnleaves:
Great Idea Bert. I suggest that you organize the testing campaign. I and my friends can run 5 or 6 brokers.

Thks Autunm

Let's see what Darak want to do...

If we want a strong and valuable test, we need to have strong rules

Then XX guys have to agree that we are not here to make pips (or loose them) but to improve a new motor = we don't care about speed but about parameters to at least... increase speed ... = pips

a/ First part : test P6Alpha during x weeks to see stability, bugs etc...

b/ Second part : after these first week(s) : open fields but with rules : X guy(s) testing one setting, Y guy(s) testing another one and so on...

To see methodically where we can go...

c/ Z guy(s) do some backstesting with good data base (alpari ? FXDD ?) You ?

d/ All info have to go back to Darak (or Pcountour if he want)

After opinion of Darak, ten (or more) have to show up to be "Official Testers (Hu ! Hu !) and fully agree with that rules. Perhaps Darak and/or other people have any ideas ?

For my part I don't care to be the "trailing guy" on P570 to be the "base"

 
daraknor:

Here is an early alpha.

Here is probably typo, should be 'case 240:', right?

case 2400:

W_Trade_PERIOD="H4";

break;

As of Simple Phoenix - I think this is excellent idea!

I had a problem trying to find better settings on latest versions. Probably too much parameters and not enough experience.

Modifying simple Phoenix will mean, modifying signals only. Great! Signals should be the most important and main focus with combination of one trade (mode1). Simple and clean! Also optimization process will be faster. Cool!

Once we have signals optimized, some more experienced can play with advanced settings and fine tune it further.

I'm sure this way will allow us, less experienced to again participate with optimization process. Great!

About alfa, quick question, is it OK, that can't be attached to the chart (stays gray)? Compiling shows no errors.

I like Authumleaves idea, to see the signals and buy/sell points if this is possible.

I also agree with Bertbin.

Mario

 

I am waiting for intruction too...

this is the "WAY", one team, one thing.

Thank you Daka for a lot and sorry for so less.

 
alamanjani:
Here is probably typo, should be 'case 240:', right?

case 2400:

W_Trade_PERIOD="H4";

break;

As of Simple Phoenix - I think this is excellent idea!

I had a problem trying to find better settings on latest versions. Probably too much parameters and not enough experience.

Modifying simple Phoenix will mean, modifying signals only. Great! Signals should be the most important and main focus with combination of one trade (mode1). Simple and clean! Also optimization process will be faster. Cool!

Once we have signals optimized, some more experienced can play with advanced settings and fine tune it further.

I'm sure this way will allow us, less experienced to again participate with optimization process. Great!

About alfa, quick question, is it OK, that can't be attached to the chart (stays gray)? Compiling shows no errors.

I like Authumleaves idea, to see the signals and buy/sell points if this is possible.

I also agree with Bertbin.

Mario

Kudos for catching the first bug! Excellent What do you think of the new trade execution style? I wrote many pieces with the idea that less duplicate but similar lines of code = easier to debug and easier to change.

I was able to attach Phoenix 6 Alpha to a chart, USDCHF M15 as the settings say. I changed settings and did backtesting on USDJPY M15 as well, but I haven't checked other timeframes or currencies beyond that.

 
bertbin:
Let's see what Darak want to do...

After opinion of Darak, ten (or more) have to show up to be "Official Testers (Hu ! Hu !) and fully agree with that rules. Perhaps Darak and/or other people have any ideas ?

For my part I don't care to be the "trailing guy" on P570 to be the "base"

I'd be happy to let Bertbin manage the testing process with whomever he likes. The two systems are supposed to be similar between Phoenix 6 Alpha and Phoenix 5.7.0. I made so many minor changes I don't know if they can "synchronize" at all, but I want to know what the answer is if possible.

I think a priority to figure out among testers would be why alamanjani can't attach Phoenix to a chart. I'm handing it off to you guys for testing, I'll fix bugs and make different versions of Phoenix rapidly.