How to code? - page 125

 
:: what is wrong with it? Only for EURUSD? It looks the same like the other one? mmmm
LazyForex:
Ha.. Can you use the same key on your keyboard to make this work as well? Cheers!
 
IN10TION:
:: what is wrong with it? Only for EURUSD? It looks the same like the other one? mmmm

Its the same problem. Works on backtest but not forward test. No trades execeuted... Can you help?

 
IN10TION:
:: it was also set to only work on EURUSD, I've switched that of to & the other restriction... yep... same key...

btw I have to change the other one... I saw something else I can do... yep... same key...

share what the result are ok? (or pm me) like to know

IN10TION

Your Keyboard for sale?

Thanks a million pips. Will keep you posted..

 
:: did use some more keys for this one... but u can use it for other currencies also, was only set for EURUSD... don't know why, you will know better I hope
 
:: it was also set to only work on EURUSD, I've switched that off & the other restriction... yep... same key...

btw I have to change the other one... I saw something else I can do... yep... same key...

share what the result are ok? (or pm me) like to know

IN10TION

LazyForex:
Its the same problem. Works on backtest but not forward test. No trades execeuted... Can you help?
 

Thanks a lot for advice. I found out that there is a tick recieved in the start of the newest bar in most of situations (maybe in all situations?) so I can trade with open price. It isn't ideal but (as it was told above) there is quite small differece between close and open price.

 

What value returns the function iTime? Is it start date of a bar? There is written only "Returns Time value for the bar of indicated symbol with timeframe and shift." in the manual.

Thanks for reply in advance.

 
:: yes, start of the bar
mellda:
What value returns the function iTime? Is it start date of a bar? There is written only "Returns Time value for the bar of indicated symbol with timeframe and shift." in the manual. Thanks for reply in advance.
 
IN10TION:
:: did use some more keys for this one... but u can use it for other currencies also, was only set for EURUSD... don't know why, you will know better I hope

Hi IN10TION,

Sent you a PM...

 

Need EA to close ALL orders once profit is hit

Hello, just wondering if one of you great coders can just add in the code to close ALL orders once g_MinProfit and f_MinProfit is hit. What I find is when profit is hit there are left over Buy/Sell Stop/Limit order stragglers and would just like them ALL deleted once profit min is triggered.

Thank you

extern bool g_CLOSE_ALL=false;

extern bool g_RESTART=true;

extern int g_Step=120;

extern double g_FirstLot=0.1;

extern double g_IncLot=0;

extern double g_MinProfit=450;

extern int g_Magic = 2008;

extern string g_comment="Win";

extern bool f_CLOSE_ALL=false;

extern bool f_RESTART=true;

extern int f_Step=120;

extern double f_FirstLot=0.1;

extern double f_IncLot=0;

extern double f_MinProfit=450;

extern int f_Magic = 2009;

extern string f_comment="REV";

int GOrder_Buy=0;

int GOrder_Sell=0;

double GLotSell=0;

double GLotBuy=0;

double gLotSell=0;

double gLotBuy=0;

double gLSP,gLBP;

double gCurrentProfit;

int FOrder_Buy=0;

int FOrder_Sell=0;

double FLotSell=0;

double FLotBuy=0;

double fLotSell=0;

double fLotBuy=0;

double fLSP,fLBP;

double fCurrentProfit;

double max_dd;

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int init()

{

Comment("Waddah Attar Win TradeBalancer 1");

if(!GlobalVariableCheck("max_DD")) GlobalVariableSet("max_DD",0);

return(0);

}

int deinit()

{

Comment("");

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int start()

{

gCurrentProfit=GetOrdersProfit(g_Magic);

if (gCurrentProfit>=g_MinProfit || g_CLOSE_ALL)

{

DeletePendingOrders(g_Magic);

CloseOrders(g_Magic);

}

if (MyOrdersTotal(g_Magic)==0 && g_RESTART)

{

OrderSend(Symbol(),OP_BUYLIMIT,g_FirstLot,Ask-g_Step*Point,3,0,0,g_comment,g_Magic,0,Blue);

OrderSend(Symbol(),OP_SELLLIMIT,g_FirstLot,Bid+g_Step*Point,3,0,0,g_comment,g_Magic,0,Red);

}

gLSP=GetLastSellPrice(g_Magic);

gLBP=GetLastBuyPrice(g_Magic);

if((gLSP-Bid)<=5*Point)

{

OrderSend(Symbol(),OP_SELLLIMIT,gLotSell+g_IncLot,gLSP+g_Step*Point,3,0,0,g_comment,g_Magic,0,Red);

}

if((Ask-gLBP)<=5*Point)

{

OrderSend(Symbol(),OP_BUYLIMIT,gLotBuy+g_IncLot,gLBP-g_Step*Point,3,0,0,g_comment,g_Magic,0,Blue);

}

//--------------------------------------------------------------------------------------------

fCurrentProfit=GetOrdersProfit(f_Magic);

if (fCurrentProfit>=f_MinProfit || f_CLOSE_ALL)

{

DeletePendingOrders(f_Magic);

CloseOrders(f_Magic);

}

if (MyOrdersTotal(f_Magic)==0 && f_RESTART)

{

OrderSend(Symbol(),OP_BUYSTOP,f_FirstLot,Ask+f_Step*Point,3,0,0,f_comment,f_Magic,0,Blue);

OrderSend(Symbol(),OP_SELLSTOP,f_FirstLot,Bid-f_Step*Point,3,0,0,f_comment,f_Magic,0,Red);

}

fLSP=GetLastSellPrice(f_Magic);

fLBP=GetLastBuyPrice(f_Magic);

if((Bid-fLSP)<=5*Point)

{

OrderSend(Symbol(),OP_SELLSTOP,fLotSell+f_IncLot,fLSP-f_Step*Point,3,0,0,f_comment,f_Magic,0,Red);

}

if((fLBP-Ask)<=5*Point)

{

OrderSend(Symbol(),OP_BUYSTOP,fLotBuy+f_IncLot,fLBP+f_Step*Point,3,0,0,f_comment,f_Magic,0,Blue);

}

//--------------------------------------------------------------------------------------------

//max_dd=

//--------------------------------------------------------------------------------------------

Comment("Waddah Attar Win TradeBalancer 1",

"\n\n\n\n", " CurrentProfit = ", DoubleToStr(gCurrentProfit,2),

"\n\n", " Buy Lots = ", DoubleToStr(GLotBuy,2) + " / " + GOrder_Buy,

"\n\n", " Sell Lots = ", DoubleToStr(GLotSell,2) + " / " + GOrder_Sell,

"\n\n\n\n", " CurrentProfit = ", DoubleToStr(fCurrentProfit,2),

"\n\n", " Buy Lots = ", DoubleToStr(FLotBuy,2) + " / " + FOrder_Buy,

"\n\n", " Sell Lots = ", DoubleToStr(FLotSell,2) + " / " + FOrder_Sell);

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int DeletePendingOrders(int Magic)

{

int total = OrdersTotal();

for (int cnt = total-1 ; cnt >= 0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY && OrderType()!=OP_SELL))

{

OrderDelete(OrderTicket());

}

}

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int CloseOrders(int Magic)

{

int total = OrdersTotal();

for (int cnt = total-1 ; cnt >= 0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);

}

if (OrderType()==OP_SELL)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);

}

}

}

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

int MyOrdersTotal(int Magic)

{

int c=0;

int total = OrdersTotal();

if(Magic==g_Magic) { GLotBuy=0; GLotSell=0; GOrder_Buy=0; GOrder_Sell=0; }

if(Magic==f_Magic) { FLotBuy=0; FLotSell=0; FOrder_Buy=0; FOrder_Sell=0; }

for (int cnt = 0 ; cnt < total ; cnt++)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())

{

if(Magic==g_Magic)

{

if(OrderType()==OP_BUY) { GLotBuy=GLotBuy+OrderLots(); GOrder_Buy++; }

if(OrderType()==OP_SELL) { GLotSell=GLotSell+OrderLots(); GOrder_Sell++; }

}

if(Magic==f_Magic)

{

if(OrderType()==OP_BUY) { FLotBuy=FLotBuy+OrderLots(); FOrder_Buy++; }

if(OrderType()==OP_SELL) { FLotSell=FLotSell+OrderLots(); FOrder_Sell++; }

}

c++;

}

}

return(c);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

double GetLastBuyPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_BUY))

{

if(Magic==g_Magic) gLotBuy=OrderLots();

if(Magic==f_Magic) fLotBuy=OrderLots();

return(OrderOpenPrice());

}

}

return(0);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

double GetLastSellPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELL))

{

if(Magic==g_Magic) gLotSell=OrderLots();

if(Magic==f_Magic) fLotSell=OrderLots();

return(OrderOpenPrice());

}

}

return(100000);

}

//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------

double GetOrdersProfit(int Magic)

{

double eProfit=0;

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))

{

eProfit=eProfit+OrderProfit();

}

}

return(eProfit);

}

//--------------------------------------------------------------------------------------------