You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
stevenpun You say buy have 0.1 lot + 0.2 lot and the sell should be 0.4 lots. Would you mind clarifying it?
Hello mladen , sorry for late reply .
Because have sick for few days .
I have make a picture
For example when the buy have 2 open order (0.1 Lot + 0.2 Lot ) , but suddenly the train have change to sell .
The ea will open a sell by 0.1 Lot , but i want it open for 0.4 Lot .
Is that possible to modify it ?
Hello once again,
I tried using the above with a comment but it was displaying the Max only. Can you help with maybe two functions . One displaying the immediate lineprice above Bid and the second the line below Bid . Thank you.
Here's the code.
//+------------------------------------------------------------------+
//| SimpleGrid.mq4+
//+------------------------------------------------------------------+
#include
#include
#property strict
// exported variables
extern string GridStartingPrice = " Start Price to Place Lines ";
extern double GSP = 0.0;
extern int GR = 5;
extern double GridStep = 5;
extern color CGL = Gold;
extern color BGL = Green;
extern color SGL = Red;
extern bool ClearAllObjects = False;
// local variables
double PipValue=1; // this variable is here to support 5-digit brokers
bool Terminated = false;
string LF = "\n"; // use this in custom or utility blocks where you need line feeds
int NDigits = 4; // used mostly for NormalizeDouble in Flex type blocks
int ObjCount = 0; // count of all objects created on the chart, allows creation of objects with unique names
int current = 0;
int init()
{
NDigits = Digits;
if (false) ObjectsDeleteAll(); // clear the chart
Comment(""); // clear the chart
return(0);
}
// Expert start
int start()
{
if (Bars < 10)
{
Comment("Not enough bars");
return (0);
}
if (Terminated == true)
{
Comment("EA Terminated.");
return (0);
}
OnEveryTick7();
return (0);
}
void OnEveryTick7()
{
PipValue = 1;
if (NDigits == 3 || NDigits == 5) PipValue = 10;
CentreGridLine();
}
void CentreGridLine()
{ if (ObjectFind("CGL") == (-1) )
{
{
string objName = "CGL" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0],GSP);
ObjectSet(objName, OBJPROP_PRICE1, GSP);
ObjectSet(objName, OBJPROP_COLOR,CGL);
}
TradeLine();
UprBnd();
LwrBnd();
}
}
void TradeLine()
{
int i;
double GridStep1= (GridStep*2);
double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;
double SGSP= (GSP-((GridStep/2)*PipValue*Point));
double BBGSP= (BGSP-((GridStep*(GR))*PipValue*Point)) ;
double SSGSP= (SGSP+((GridStep*(GR))*PipValue*Point));
{
for(i=0; i<GR;i++)
{
SGL("Sell"+i,BBGSP+GridStep1*i*PipValue*Point);
}
}
{
for(i=0; i<GR;i++)
{
BGL("Buy"+i,SSGSP-GridStep1*i*PipValue*Point);
}
}
}
void BGL(string objName, double price)
{
ObjectCreate(objName, OBJ_HLINE, 0, 0, price);
ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(objName, OBJPROP_WIDTH, 1);
ObjectSet(objName, OBJPROP_COLOR, BGL);
}
void SGL(string objName, double price)
{
ObjectCreate(objName, OBJ_HLINE, 0, 0, price);
ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(objName, OBJPROP_WIDTH, 1);
ObjectSet(objName, OBJPROP_COLOR, SGL);
}
void UprBnd()
{ if (ObjectFind("UPRBND") == (-1) )
{
double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;
double price= (BGSP+((GridStep*(GR))*PipValue*Point)) ;
string objName = "UPRBND" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0], price );
ObjectSet(objName, OBJPROP_PRICE1,price);
ObjectSet(objName, OBJPROP_COLOR, DodgerBlue);
ObjectSet(objName, OBJPROP_WIDTH,3);
}
}
void LwrBnd()
{ if (ObjectFind("LWRBND") == (-1) )
{
double SGSP= (GSP-((GridStep/2)*PipValue*Point));
double price= (SGSP-((GridStep*(GR))*PipValue*Point));
string objName = "LWRBND" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0], price );
ObjectSet(objName, OBJPROP_PRICE1,price);
ObjectSet(objName, OBJPROP_COLOR, Tomato);
ObjectSet(objName, OBJPROP_WIDTH, 3);
}
}
int deinit()
{
if (ClearAllObjects) ObjectsDeleteAll();
return (0);
}
//+------------------------------------------------------------------+Hermes
Can you attach the mq4 file?
Hermes Can you attach the mq4 file?
Here it is. Thanks
Hi,
i need help with an Ea i have made, it is related on 2 Moving average and 2 different timeframes to filter trend, i would like to add an RSI indicator in order to filter the trades, setup for example RSI period 8 level 50, if higher than RSI level 50 at crossing we open only sell market order, if lower than RSI level 50 at crossing we open only buy market orders. I attach the Ea, at first was realted to keltnerchannels, but now i want only to be used as Ma1 and Ma2.
Can some body help me with this changes?
Thank you
Here it is. Thanks
Hermes
Try this out : simpleg_1.mq4
Hi,
i need help with an Ea i have made, it is related on 2 Moving average and 2 different timeframes to filter trend, i would like to add an RSI indicator in order to filter the trades, setup for example RSI period 8 level 50, if higher than RSI level 50 at crossing we open only sell market order, if lower than RSI level 50 at crossing we open only buy market orders. I attach the Ea, at first was realted to keltnerchannels, but now i want only to be used as Ma1 and Ma2.
Can some body help me with this changes?
Thank youdaniel1983
It is almost sure that you will never get crosses of mas and rsis at the same time (meaning - you will almost never get signals). Try it out : make a simple indicator that does what you describe and you shall see how rare those conditions happen at the same time
daniel1983 It is almost sure that you will never get crosses of mas and rsis at the same time (meaning - you will almost never get signals). Try it out : make a simple indicator that does what you describe and you shall see how rare those conditions happen at the same time
Hi Mladen,
I Mean
- at any level between 0 and 50 only sell
- at any level between 50 and 100 only buy,
not at this same intersection point, crossing can be at any level (43, 41, 18, 25) for buy market orders, confirming with higher time frame trend. I have tested this and about 80% of orders opened looks like with this filter will not open in the opposite direction.
Right now the Ea opens buy order when the crossing is beginning a down trend, with this filter in 80% of the cases it will filter this crossing without entering the order at this point. where those Ma crosses.
In this Ea i have input highertimeframe, but i have made test with better results using lower time frame for filtering trend.
I attach a picture of an example of a test configurated:
For EURUSD
In this case i am using EMA 2 and EMA 67, and RSI (8) timeframe 1min and Hitimeframe 5min, in this case you have a buy market order that is unprofitable, this buy market order happens at the crossing of EMa's but with RSI at a level below 50.
THen you have a sell market order that opens at the crossings but with RSI below 50, and this order is the correct market order i want to filter from all the signals.
Is it possible to do this?
Thank you
Daniel
Hermes Try this out : simpleg_1.mq4
Hello Mladen,
Its finally working using this . Thank You
void LoopBS()
{
double max =(ObjectGet("UPRBND",OBJPROP_PRICE1));
double min =(ObjectGet("LWRBND",OBJPROP_PRICE1));
for (int i =ObjectsTotal()-1; i>=0; i--)
{
string name = ObjectName(i);
if (StringSubstr(name,0,3)=="Buy")
{
double BS=ObjectGet(name,OBJPROP_PRICE1);
if ((Ask<BS) && (BSmin))
{
max = ObjectGet(name,OBJPROP_PRICE1);
{
Comment(DoubleToStr(BS,Digits)," ");
}
}
}
}
}
Inaccurate signals
Inaccurate signals
Dear,craftsmen! Could you signal better to do. M1, M5, M15
Inaccurate signals Dear,craftsmen! Could you signal better to do. M1, M5, M15
It is simply showing is the last 3 closes are greater or smaller than the last 3 opens. Nothing to improve in that