I do not know what you are asking.
There is one issue that either Buy or Sell, need to place base upon current price movement not only open price.
Everyone has different ideas of how to interpret current price movement, you need to explain what YOU mean.
And also could you add that how to ignore same place order
This is gibberish. I don't understand.
ex) current order is Buy, then ignore next Buy signal but activate next Sell signal.
Check that there is not a buy trade currently open before opening a new buy trade
Currently, I am testing this EA.
There is one issue that either Buy or Sell, need to place base upon current price movement not only open price.
And also could you add that how to ignore same place order
ex) current order is Buy, then ignore next Buy signal but activate next Sell signal.
I will really appreciate that your help.
-Racoon.
does it compile ???
guess not ..... what testing result will you have ??
what i see here is that you don't know what you're doing how can we help ??
if you haven't learned the basics...
Thanks for your comments. I figured it out and updated.
It is simple strategy but, this EA needs some advice.
Because it does not open any trade.
Any ideas?
//+------------------------------------------------------------------+ //| Inquiry.mq4 | //| Copyright 2014, Yo | //| | //+------------------------------------------------------------------+ #property copyright "Copyright 2014, Yo" #property link "" extern double Lots = 0.05; extern double MA_PERIOD=15; //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { double So=iClose(Symbol(), PERIOD_H1,1); double Highbid=High[iHighest(NULL,0,MODE_HIGH,15,0)]; double Lowbid =Low [iLowest(NULL,0,MODE_LOW,15,0)]; double a=Highbid/Lowbid; double ExD=So*0.9+a; double ExU=So*1.1+a; double ask=MarketInfo(Symbol(),MODE_ASK); double bid=MarketInfo(Symbol(),MODE_BID); int cnt, ticket, total; if(Bars<100) { Print("bars less than 100"); return(0); } //---- total=OrdersTotal(); if(total<1) { if(AccountFreeMargin()<(1000*Lots)) { Print("We have insufficent fund.Free Margin=",AccountFreeMargin()); return(0); //Buy Order if(ExD>bid) { ticket=OrderSend(Symbol(),OP_BUY, Lots, Ask, 50,0,0,"Exp_UP",16384,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Buy order opened:",OrderOpenPrice()); } else Print("Error opening BUY order:",GetLastError()); return(0); //Sell Order if(ExU<ask) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,50,0,0,"Exp_DOWN",16384,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened:",OrderOpenPrice()); } else Print("Error opening Sell order:", GetLastError()); return(0); } } } //Close Buy order for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderType()<=OP_SELL &&OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) { if(ExU<MODE_ASK) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); return(0); } } } else{ if(ExD>MODE_BID) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); return(0); } } } } return(0); } //+------------------------------------------------------------------+
Oh, and also the purpose of EA is only for Gold trading.
Thanks.
I have difficulty following the logic of your code, does it actually compile without errors?
First of all
if(AccountFreeMargin()<(1000*Lots))
Why are you comparing a currency amount with a multiplication of lot size?
As your Extern Lots is 0.05, this will only be true if free margin is less than 50 units of the account currency.
Try to follow this section of your code
if(AccountFreeMargin()<(1000*Lots)) { Print("We have insufficent fund.Free Margin=",AccountFreeMargin()); return(0); // WHEN if(AccountFreeMargin()<(1000*Lots))IS TRUE, THE CODE WILL return(0) AND THE FOLLOWING CODE WILL BE IGNORED // WHEN if(AccountFreeMargin()<(1000*Lots))IS FALSE, THE FOLLOWING CODE WILL BE IGNORED UNTIL AFTER IT FINDS A } TO MATCH THE { //Buy Order if(ExD>bid) { ticket=OrderSend(Symbol(),OP_BUY, Lots, Ask, 50,0,0,"Exp_UP",16384,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Buy order opened:",OrderOpenPrice()); } else Print("Error opening BUY order:",GetLastError()); return(0);
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Currently, I am testing this EA.
There is one issue that either Buy or Sell, need to place base upon current price movement not only open price.
And also could you add that how to ignore same place order
ex) current order is Buy, then ignore next Buy signal but activate next Sell signal.
I will really appreciate that your help.
-Racoon.