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

 

EA version6

Has anyone tried using version 6 of the EA that is present on https://www.mql5.com/en/forum/175560

I have downloaded it and it doesn't seem to trade at all!

USDCHF M15 and all setting is as default but no trading

Could someone respond and clarify this issue

Do I need to do any thing to the settings?

 
alkhal4:
Has anyone tried using version 6 of the EA that is present on https://www.mql5.com/en/forum/175560

I have downloaded it and it doesn't seem to trade at all!

USDCHF M15 and all setting is as default but no trading

Could someone respond and clarify this issue

Do I need to do any thing to the settings?

I have the same problem. but I could run it on Omnivest-Omnivest Trading System but when I tried ODL it doesn't trade at all. With the Omnivest broker it was working. And so far I don't know how Phonenix was performing lately.

 

Phoenix - bugs

Hello Alkhal4, Togu and all,

The Phoenix 6 Released doesn't work to you because originally extern variable "F_ATR" is set up on value 0.6 and it should be around 0.0001. But then when you run it you will find in a Journal a lot of "Ordermodify errors Nr.130". It is because there are bugs in functions "X1_ManageExit" and "X9_ModifySL". I have found two solutions not to display them :

1) Set up variable E_BE_SL=0 . But then you can not trade break even.

2) Replace these two functions "X1_ManageExit" and "X9_ModifySL" with my scripts in a source mq4 file. See below.

If you want and if you are not able to do it alone, I can send you this EA without these bugs but I don't want to upload EA here because it is in violation of Hendrick's wish -

You can the change the code of Phoenix if you want to, but please don’t post it in this thread!

- see first post in https://www.mql5.com/en/forum/175245 .

This problem must have also others and I please a man who cares about source code of Phoenix (it was Hendrick, now daraknor ? - I don't know I have red only a couple of messages ) for debugging and putting correct version in the first post.

repared code of function "X1_ManageExit" :

//********** Exit Strategies & Trailing Stops **********************************//

void X1_ManageExit(int myticket)

{ //Contains all of the exit strategies and trade management routines. Listed in priority.

minStop=MarketInfo(Symbol(),MODE_STOPLEVEL); //updated every tick in case of news SL movement

if(E_GraceHours !=0 ||E_ForceHours !=0)

X1_ForceClose_or_GraceModify(myticket);

if(E_RecrossMax!=0)

{

double price;

if (OrderType() == OP_BUY) price=Bid;

if (OrderType() == OP_SELL) price=Ask;

if(Bars>bcRecross)

{ //Bar hasn't been counted yet

if(OrderOpenPrice()>price-1 && OrderOpenPrice()<price+1)

{

recrosscount++;

bcRecross=Bars;

if (recrosscount>=E_RecrossMax)

if(!OrderClose(myticket,OrderLots(),price,AcceptSlip,Red))

L4_WriteError();

}

}

}

//TODO StealthExit

if(E_BE_SL>0)

{ // BreakEven SL @target

if(E_BE_SL<E_BE_Profit+minStop) E_BE_Profit=E_BE_SL-minStop; //keeps trade safe all of the time

if (OrderType() == OP_BUY && Bid-OrderOpenPrice()>=Point*E_BE_SL && OrderStopLoss()-Point*E_BE_Profit=minStop*Point)

X9_ModifySL(OrderOpenPrice()+E_BE_Profit*Point,myticket);

if (OrderType() == OP_SELL && OrderOpenPrice()-Ask>=Point*E_BE_SL+MarketInfo(Symbol(),MODE_SPREAD)*Point && OrderStopLoss()+Point*E_BE_Profit+MarketInfo(Symbol(),MODE_SPREAD)*Point>OrderOpenPrice() && OrderOpenPrice()+E_BE_Profit*Point+MarketInfo(Symbol(),MODE_SPREAD)*Point-Ask>=minStop*Point)

X9_ModifySL(OrderOpenPrice()-E_BE_Profit*Point-MarketInfo(Symbol(),MODE_SPREAD)*Point,myticket);

}[/CODE]

repared code of function "X9_ModifySL" :

[CODE]bool X9_ModifySL(double sl, int ticket)

{

double MoveTP;

if(E_MoveTPonTS !=0)

{

if (OrderType() == OP_SELL)

{

MoveTP=E_MoveTPonTS*(-1)*Point;

if(Ask-OrderTakeProfit()+MoveTP=minStop*Point)

MoveTP=minStop*Point*(-1)+Ask-OrderTakeProfit(); //Set the new distance to minimum safe point, -OTP() cancels OTP() // repared error 4051

}

else

{

MoveTP=E_MoveTPonTS*Point;

if(OrderTakeProfit()-Bid+MoveTP=minStop*Point)

MoveTP=minStop*Point-Bid+OrderTakeProfit(); //Set the new distance to minimum safe point, -OTP() cancels OTP()

}

}

if(U_WriteDebug) L3_WriteDebug("MODIFY Ticket:"+ticket+" OpenPrice:"+OrderOpenPrice()+" SL:"+sl+" TP:"+(OrderTakeProfit()+MoveTP*Point));

if(NormalizeDouble(sl/Point,0)==NormalizeDouble(OrderStopLoss()/Point,0)) return(true);

if(OrderModify ( ticket, OrderOpenPrice(), sl,

OrderTakeProfit()+MoveTP,

0, Red) ==(-1))

return(false);

else return(true);

}
 

Hello to all...

Which version of "Phoenix" is better?

"Hendrik's Phoenix" or "daraknor's Phoenix" ?

please tell me one...thanks

 

Hello globus2008,

Could you send me a private message, with your "Phoenix 6 Released" running version ?

Thanks,

yoyo

globus2008:
Hello Alkhal4, Togu and all,

The Phoenix 6 Released doesn't work to you because originally extern variable "F_ATR" is set up on value 0.6 and it should be around 0.0001. But then when you run it you will find in a Journal a lot of "Ordermodify errors Nr.130". It is because there are bugs in functions "X1_ManageExit" and "X9_ModifySL". I have found two solutions not to display them :

1) Set up variable E_BE_SL=0 . But then you can not trade break even.

2) Replace these two functions "X1_ManageExit" and "X9_ModifySL" with my scripts in a source mq4 file. See below.

If you want and if you are not able to do it alone, I can send you this EA without these bugs but I don't want to upload EA here because it is in violation of Hendrick's wish - - see first post in https://www.mql5.com/en/forum/175245 .

This problem must have also others and I please a man who cares about source code of Phoenix (it was Hendrick, now daraknor ? - I don't know I have red only a couple of messages ) for debugging and putting correct version in the first post.

repared code of function "X1_ManageExit" :

//********** Exit Strategies & Trailing Stops **********************************//

void X1_ManageExit(int myticket)

{ //Contains all of the exit strategies and trade management routines. Listed in priority.

minStop=MarketInfo(Symbol(),MODE_STOPLEVEL); //updated every tick in case of news SL movement

if(E_GraceHours !=0 ||E_ForceHours !=0)

X1_ForceClose_or_GraceModify(myticket);

if(E_RecrossMax!=0)

{

double price;

if (OrderType() == OP_BUY) price=Bid;

if (OrderType() == OP_SELL) price=Ask;

if(Bars>bcRecross)

{ //Bar hasn't been counted yet

if(OrderOpenPrice()>price-1 && OrderOpenPrice()<price+1)

{

recrosscount++;

bcRecross=Bars;

if (recrosscount>=E_RecrossMax)

if(!OrderClose(myticket,OrderLots(),price,AcceptSlip,Red))

L4_WriteError();

}

}

}

//TODO StealthExit

if(E_BE_SL>0)

{ // BreakEven SL @target

if(E_BE_SL<E_BE_Profit+minStop) E_BE_Profit=E_BE_SL-minStop; //keeps trade safe all of the time

if (OrderType() == OP_BUY && Bid-OrderOpenPrice()>=Point*E_BE_SL && OrderStopLoss()-Point*E_BE_Profit=minStop*Point)

X9_ModifySL(OrderOpenPrice()+E_BE_Profit*Point,myticket);

if (OrderType() == OP_SELL && OrderOpenPrice()-Ask>=Point*E_BE_SL+MarketInfo(Symbol(),MODE_SPREAD)*Point && OrderStopLoss()+Point*E_BE_Profit+MarketInfo(Symbol(),MODE_SPREAD)*Point>OrderOpenPrice() && OrderOpenPrice()+E_BE_Profit*Point+MarketInfo(Symbol(),MODE_SPREAD)*Point-Ask>=minStop*Point)

X9_ModifySL(OrderOpenPrice()-E_BE_Profit*Point-MarketInfo(Symbol(),MODE_SPREAD)*Point,myticket);

}[/CODE]

repared code of function "X9_ModifySL" :

[CODE]bool X9_ModifySL(double sl, int ticket)

{

double MoveTP;

if(E_MoveTPonTS !=0)

{

if (OrderType() == OP_SELL)

{

MoveTP=E_MoveTPonTS*(-1)*Point;

if(Ask-OrderTakeProfit()+MoveTP=minStop*Point)

MoveTP=minStop*Point*(-1)+Ask-OrderTakeProfit(); //Set the new distance to minimum safe point, -OTP() cancels OTP() // repared error 4051

}

else

{

MoveTP=E_MoveTPonTS*Point;

if(OrderTakeProfit()-Bid+MoveTP=minStop*Point)

MoveTP=minStop*Point-Bid+OrderTakeProfit(); //Set the new distance to minimum safe point, -OTP() cancels OTP()

}

}

if(U_WriteDebug) L3_WriteDebug("MODIFY Ticket:"+ticket+" OpenPrice:"+OrderOpenPrice()+" SL:"+sl+" TP:"+(OrderTakeProfit()+MoveTP*Point));

if(NormalizeDouble(sl/Point,0)==NormalizeDouble(OrderStopLoss()/Point,0)) return(true);

if(OrderModify ( ticket, OrderOpenPrice(), sl,

OrderTakeProfit()+MoveTP,

0, Red) ==(-1))

return(false);

else return(true);

}
 

Hello Glogus2008,

Could you send me a "private messade" with your "Phoenix 6 Released" running version ?

Thanks,

yoyo

globus2008:
Hello Alkhal4, Togu and all,

The Phoenix 6 Released doesn't work to you because originally extern variable "F_ATR" is set up on value 0.6 and it should be around 0.0001. But then when you run it you will find in a Journal a lot of "Ordermodify errors Nr.130". It is because there are bugs in functions "X1_ManageExit" and "X9_ModifySL". I have found two solutions not to display them :

1) Set up variable E_BE_SL=0 . But then you can not trade break even.

2) Replace these two functions "X1_ManageExit" and "X9_ModifySL" with my scripts in a source mq4 file. See below.

If you want and if you are not able to do it alone, I can send you this EA without these bugs but I don't want to upload EA here because it is in violation of Hendrick's wish - - see first post in https://www.mql5.com/en/forum/175245 .

This problem must have also others and I please a man who cares about source code of Phoenix (it was Hendrick, now daraknor ? - I don't know I have red only a couple of messages ) for debugging and putting correct version in the first post.

repared code of function "X1_ManageExit" :

//********** Exit Strategies & Trailing Stops **********************************//

void X1_ManageExit(int myticket)

{ //Contains all of the exit strategies and trade management routines. Listed in priority.

minStop=MarketInfo(Symbol(),MODE_STOPLEVEL); //updated every tick in case of news SL movement

if(E_GraceHours !=0 ||E_ForceHours !=0)

X1_ForceClose_or_GraceModify(myticket);

if(E_RecrossMax!=0)

{

double price;

if (OrderType() == OP_BUY) price=Bid;

if (OrderType() == OP_SELL) price=Ask;

if(Bars>bcRecross)

{ //Bar hasn't been counted yet

if(OrderOpenPrice()>price-1 && OrderOpenPrice()<price+1)

{

recrosscount++;

bcRecross=Bars;

if (recrosscount>=E_RecrossMax)

if(!OrderClose(myticket,OrderLots(),price,AcceptSlip,Red))

L4_WriteError();

}

}

}

//TODO StealthExit

if(E_BE_SL>0)

{ // BreakEven SL @target

if(E_BE_SL<E_BE_Profit+minStop) E_BE_Profit=E_BE_SL-minStop; //keeps trade safe all of the time

if (OrderType() == OP_BUY && Bid-OrderOpenPrice()>=Point*E_BE_SL && OrderStopLoss()-Point*E_BE_Profit=minStop*Point)

X9_ModifySL(OrderOpenPrice()+E_BE_Profit*Point,myticket);

if (OrderType() == OP_SELL && OrderOpenPrice()-Ask>=Point*E_BE_SL+MarketInfo(Symbol(),MODE_SPREAD)*Point && OrderStopLoss()+Point*E_BE_Profit+MarketInfo(Symbol(),MODE_SPREAD)*Point>OrderOpenPrice() && OrderOpenPrice()+E_BE_Profit*Point+MarketInfo(Symbol(),MODE_SPREAD)*Point-Ask>=minStop*Point)

X9_ModifySL(OrderOpenPrice()-E_BE_Profit*Point-MarketInfo(Symbol(),MODE_SPREAD)*Point,myticket);

}[/CODE]

repared code of function "X9_ModifySL" :

[CODE]bool X9_ModifySL(double sl, int ticket)

{

double MoveTP;

if(E_MoveTPonTS !=0)

{

if (OrderType() == OP_SELL)

{

MoveTP=E_MoveTPonTS*(-1)*Point;

if(Ask-OrderTakeProfit()+MoveTP=minStop*Point)

MoveTP=minStop*Point*(-1)+Ask-OrderTakeProfit(); //Set the new distance to minimum safe point, -OTP() cancels OTP() // repared error 4051

}

else

{

MoveTP=E_MoveTPonTS*Point;

if(OrderTakeProfit()-Bid+MoveTP=minStop*Point)

MoveTP=minStop*Point-Bid+OrderTakeProfit(); //Set the new distance to minimum safe point, -OTP() cancels OTP()

}

}

if(U_WriteDebug) L3_WriteDebug("MODIFY Ticket:"+ticket+" OpenPrice:"+OrderOpenPrice()+" SL:"+sl+" TP:"+(OrderTakeProfit()+MoveTP*Point));

if(NormalizeDouble(sl/Point,0)==NormalizeDouble(OrderStopLoss()/Point,0)) return(true);

if(OrderModify ( ticket, OrderOpenPrice(), sl,

OrderTakeProfit()+MoveTP,

0, Red) ==(-1))

return(false);

else return(true);

}
 

How to find - Best Version of Phoenix

Behzad2008:
Hello to all...

Which version of "Phoenix" is better?

"Hendrik's Phoenix" or "daraknor's Phoenix" ?

please tell me one...thanks

How to find what I consider to be best working copy of Phoenix.

  1. Click on the Search menu item at the very top (for the whole forum - not for this thread)
  2. Paste the "Best Version of Phoenix" including the "
  3. Select Show Posts.
  4. Press GO
  5. Find that phrase in the subject, and click that one from the list of Posts
  6. Find that post on the page that comes up.
  7. Read that whole post - the documentation is at the bottom and there is a link to the code.
 

Installation IBFX MT4

Downloaded Phoenix 5.6.3, installed in experts last night, compiled, placed in price chart: in upper right. No trades placed overnight, this AM there was an x. I tried to compile again, blue icon in experts...removed it from price window, double click, and smiley briefly appears, then switches to x. What is going on? Thanks for help.

 

Hello

Thanks for your response, I tried to do what you suggested below,

I replaced the codes but when compiling I get an error - probably because I don't know how to do step 1 - could you send the correct code.

Thanks

globus2008:
Hello Alkhal4, Togu and all,

The Phoenix 6 Released doesn't work to you because originally extern variable "F_ATR" is set up on value 0.6 and it should be around 0.0001. But then when you run it you will find in a Journal a lot of "Ordermodify errors Nr.130". It is because there are bugs in functions "X1_ManageExit" and "X9_ModifySL". I have found two solutions not to display them :

1) Set up variable E_BE_SL=0 . But then you can not trade break even.

2) Replace these two functions "X1_ManageExit" and "X9_ModifySL" with my scripts in a source mq4 file. See below.

If you want and if you are not able to do it alone, I can send you this EA without these bugs but I don't want to upload EA here because it is in violation of Hendrick's wish - - see first post in https://www.mql5.com/en/forum/175245 .

This problem must have also others and I please a man who cares about source code of Phoenix (it was Hendrick, now daraknor ? - I don't know I have red only a couple of messages ) for debugging and putting correct version in the first post.

repared code of function "X1_ManageExit" :

//********** Exit Strategies & Trailing Stops **********************************//

void X1_ManageExit(int myticket)

{ //Contains all of the exit strategies and trade management routines. Listed in priority.

minStop=MarketInfo(Symbol(),MODE_STOPLEVEL); //updated every tick in case of news SL movement

if(E_GraceHours !=0 ||E_ForceHours !=0)

X1_ForceClose_or_GraceModify(myticket);

if(E_RecrossMax!=0)

{

double price;

if (OrderType() == OP_BUY) price=Bid;

if (OrderType() == OP_SELL) price=Ask;

if(Bars>bcRecross)

{ //Bar hasn't been counted yet

if(OrderOpenPrice()>price-1 && OrderOpenPrice()<price+1)

{

recrosscount++;

bcRecross=Bars;

if (recrosscount>=E_RecrossMax)

if(!OrderClose(myticket,OrderLots(),price,AcceptSlip,Red))

L4_WriteError();

}

}

}

//TODO StealthExit

if(E_BE_SL>0)

{ // BreakEven SL @target

if(E_BE_SL<E_BE_Profit+minStop) E_BE_Profit=E_BE_SL-minStop; //keeps trade safe all of the time

if (OrderType() == OP_BUY && Bid-OrderOpenPrice()>=Point*E_BE_SL && OrderStopLoss()-Point*E_BE_Profit=minStop*Point)

X9_ModifySL(OrderOpenPrice()+E_BE_Profit*Point,myticket);

if (OrderType() == OP_SELL && OrderOpenPrice()-Ask>=Point*E_BE_SL+MarketInfo(Symbol(),MODE_SPREAD)*Point && OrderStopLoss()+Point*E_BE_Profit+MarketInfo(Symbol(),MODE_SPREAD)*Point>OrderOpenPrice() && OrderOpenPrice()+E_BE_Profit*Point+MarketInfo(Symbol(),MODE_SPREAD)*Point-Ask>=minStop*Point)

X9_ModifySL(OrderOpenPrice()-E_BE_Profit*Point-MarketInfo(Symbol(),MODE_SPREAD)*Point,myticket);

}[/CODE]

repared code of function "X9_ModifySL" :

[CODE]bool X9_ModifySL(double sl, int ticket)

{

double MoveTP;

if(E_MoveTPonTS !=0)

{

if (OrderType() == OP_SELL)

{

MoveTP=E_MoveTPonTS*(-1)*Point;

if(Ask-OrderTakeProfit()+MoveTP=minStop*Point)

MoveTP=minStop*Point*(-1)+Ask-OrderTakeProfit(); //Set the new distance to minimum safe point, -OTP() cancels OTP() // repared error 4051

}

else

{

MoveTP=E_MoveTPonTS*Point;

if(OrderTakeProfit()-Bid+MoveTP=minStop*Point)

MoveTP=minStop*Point-Bid+OrderTakeProfit(); //Set the new distance to minimum safe point, -OTP() cancels OTP()

}

}

if(U_WriteDebug) L3_WriteDebug("MODIFY Ticket:"+ticket+" OpenPrice:"+OrderOpenPrice()+" SL:"+sl+" TP:"+(OrderTakeProfit()+MoveTP*Point));

if(NormalizeDouble(sl/Point,0)==NormalizeDouble(OrderStopLoss()/Point,0)) return(true);

if(OrderModify ( ticket, OrderOpenPrice(), sl,

OrderTakeProfit()+MoveTP,

0, Red) ==(-1))

return(false);

else return(true);

}
 

p6

Hi, globus2008,

could you, please, send me lastest working p6 version? Original as well as your notes to modify the code are not working on alpari metatrader testing

Reason: