Phoenix is here! - page 13

 
AZBOfin:
wow, it gets more confusing my the minute

i propose the following:

1) all calculations made are based on the servers time and not the local time

2) all time-setups in the EA should be made in GMT

3) introduction of a new variable called ServerOffset

this variable reflects an offset from GMT timezone to the servers timezone

my local time is not relevant. today i am here at GMT-7, tomorrow i could be GMT-4, next week at GMT+2

but my trading server is always at the same place. and this should be the basis for all calculations.

just my 2cents - hendrick you're the man, what do you think?

AZBOfin

I was thinking of something along those same lines...keep it simple for the time shift challenged like me...I second the motion for a ServerOffset variable..I wish I knew how to do it myself. I'm not that far yet coding...the only thing better would be to have the code detect what it needs to and adjust automatically so the user doesn't have to mess it up.

 
 
Hendrick:
I need some help. The BUY and SELL signals of Phoenix are generated by the following piece of code:

MA =iMA(NULL,MA_Timeframe,MA_Length,0,MODE_SMA,PRICE_OPEN,0);

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

.

Hendrick, I still seem to follow you on these boards.

Firebird v63g had a trend code in it, but wasn't used. I use it in a modiifed Firebird and it seems to work in stopping trades during trends.

extern int DVLimit = 10; // included by Renato

int TrendUp=0, Trenddown=0;

double iFXAnalyser(int FXA_Period, int mode, int shift)// Made local function by MrPip

if ( (iFXAnalyser(0,MODE_DIV,0)>DVLimit*Point && iFXAnalyser(0,MODE_SLOPE,0)>0 )) Trendup=1;

if ( (iFXAnalyser(0,MODE_DIV,0)<-DVLimit*Point && iFXAnalyser(0,MODE_SLOPE,0)<0 )) TrendDown=1;

Then pur "&& TrendUp !=1" following DealTime==1 in SELL trigger. And "&& TrendDown !=1" following DealTime==1 in BUY trigger.

Another method is to put a controlling factor for RV! to regulate trading activity.

extern double RVI_Factor =50; // 0-200 factor added to RVI value to regulate trading activity

Then in SELL and BUY triggers change RVI codes to "RVI(0+(RVI_Factor*Point))" respectifully.

Another method is to put a second larger iMA envelope to tighten the active trading area to encourage trading during non-trending periods.

extern double PercentLimit = 0.15; // 2nd higher envelope (band) that stops trading.

int Safe2=0;

if ( myMA*(1+(PercentLimit/100))=Ask) Safe2=1;

Put "&& Safe2==1" in SELL and BUY triggers. You can attached a 2nd Firebird type Indicator set to PercentLimit to see active trading area.

I use one Firebird with all three filters and it averages ~50% less trades with ~90% win rate. The problem I have is the effect news has on the market. I've reported to this thread, that the last 4 Fridays had a big negative effect because of carry over open trades from Thursday. I am testing eliminating trading days and/or times to see if I can better manage the historic group loses.

Hendrick, this would be a further development of your trading time results chart and it would be a lot of work. But, I would like to have an EA that is 6/24 trading time programable and can survey its history, determine bad trading times & stop trading during these times, while maintaining a ghost trade history for these times. When historic ghost trades are again profitable, these times are re-established as good trading times. Wishful thinking, but I'm going to try to work on this or see if a coder can make this work. Right now, I use yor type of chart and try to do this manually.

Way too much typing. Well, this is what happens when you drink wine while on a thread. If all of this doesn't make sense, it's the wine's fault.

Wackena

 
Hendrick:
I need some help. The BUY and SELL signals of Phoenix are generated by the following piece of code:

MA =iMA(NULL,MA_Timeframe,MA_Length,0,MODE_SMA,PRICE_OPEN,0);

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

Someone over at the Firebird thread suggested the following change:

instead of yours:

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

They changed it to:

RVI=iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,0)-iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,1);

They claimed it gave less false signals. Does that help?

 

Additional signal

Hi Hendrick,

when preparing to trade, I always look to a higher TF to see the trend forming.

Perhaps adding an additonal signal to Phoenix on the same 15 minutes TF is to limited?

Please have a look at the Multi-Time-Frame indicator XO.

You can have it set to any TF you like, but for Phoenix working on the M15 I

would have it set to H4 or maybe even D1.

Maybe it's most flexible to have it's TF setting in the inputs panel of the EA so it can be optimized along the way.

See attched picture with the indicator loaded twice; one for M15 and the other one for H4.

Regards,

Herbert

PS, I did change Firebird's iRVI to iMACD like Holyguy7 reminded today, but although it increased Firebird's speed in backtesting as a side-effect , I was under the impression that it did not remove the false signals.

Files:
 
holyguy7:
Someone over at the Firebird thread suggested the following change:

instead of yours:

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

They changed it to:

RVI=iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,0)-iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,1);

They claimed it gave less false signals. Does that help?

Hey Holyguy,

For Phoenix version 2 I'm now using a SMA 120 and SMA 12 on a 15M chart. The main purpose is to prevent that Phoenix is placing trades against the trend. So far it seems to work OK.

 
HerbertH:
Hi Hendrick,

when preparing to trade, I always look to a higher TF to see the trend forming.

Perhaps adding an additonal signal to Phoenix on the same 15 minutes TF is to limited?

Please have a look at the Multi-Time-Frame indicator XO.

You can have it set to any TF you like, but for Phoenix working on the M15 I

would have it set to H4 or maybe even D1.

Maybe it's most flexible to have it's TF setting in the inputs panel of the EA so it can be optimized along the way.

See attched picture with the indicator loaded twice; one for M15 and the other one for H4.

Regards,

Herbert

PS, I did change Firebird's iRVI to iMACD like Holyguy7 reminded today, but although it increased Firebird's speed in backtesting as a side-effect , I was under the impression that it did not remove the false signals.

Hey Herberth,

See my previous answer to Holyguy.

 

Phoenix v2

Phoenix version 2.

Changes:

removed divergence (I think its of no use)

removed Surf-orders (performance was not good)

replaced RVI by this piece of code:

AdMA=(iMA(NULL,PERIOD_M15,120,0,0,3,1) - iMA(NULL,PERIOD_M15,12,0,0,3,1));

if(Point==0.0001) {AdMA=AdMA*1000;}

if(Point==0.01) {AdMA=AdMA*10;}

if(AdMA > 1)

{

AdSELLSignal = true;

SortOrder = "SELLSignal";

}

if(AdMA < -1)

{

AdBUYSignal = true;

SortOrder = "BUYSignal";

}

if((AdMA > -1) && (AdMA < 1))

{

AdBUYSELLSignal = true;

SortOrder = "BUYSELLSignal";

}

The purpose of this code is to prevent that Phoenix is placing trades against the trend.

For testing:

Use the settings from the file. TF=15. All available pairs.

Files:
 
Hendrick:
Phoenix version 2.

Changes:

removed divergence (I think its of no use)

removed Surf-orders (performance was not good)

replaced RVI by this piece of code:

AdMA=(iMA(NULL,PERIOD_M15,120,0,0,3,1) - iMA(NULL,PERIOD_M15,12,0,0,3,1));

if(Point==0.0001) {AdMA=AdMA*1000;}

if(Point==0.01) {AdMA=AdMA*10;}

if(AdMA > 1)

{

AdSELLSignal = true;

SortOrder = "SELLSignal";

}

if(AdMA < -1)

{

AdBUYSignal = true;

SortOrder = "BUYSignal";

}

if((AdMA > -1) && (AdMA < 1))

{

AdBUYSELLSignal = true;

SortOrder = "BUYSELLSignal";

}

The purpose of this code is to prevent that Phoenix is placing trades against the trend.

For testing:

Use the settings from the file. TF=15. All available pairs.

Thanks, put on charts.

are u make any backtest?

 
Yauhen:
Thanks, put on charts. are u make any backtest?

Hi,

No backtest, only forward testing.

Reason: