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
I ask for help in writing a simple trading robot based on i-Regr indicator. If done well, I guarantee reasonable payment.
If anyone is interested please write to ma.gog@mail.ru
The general idea is the following:
1. The expert advisor should place pending stop and limit orders on fractals (buy stop, sell stop, buy limit, sell limit), the expiry time of orders should be set (hours, minutes).
2. Order types should be switchable (either stop and limit orders together; or separately: stop orders only, limit orders only),
3. The distance from the order being placed to the fractal should be set in pips, and for stop orders separately, and for limit orders separately.
4. StopLoss and TakeProfit are fixed, set immediately.
5. You want to have a trailing stop from one pip and disable it.
6. Lot should be fixed. But it's also possible to create a money management.
7. Spread should be taken into account in orders: (buy order + spread, sell order - spread)
For contact: Cashinroman@yandex.ru
Can anyone understand this code, why in the tester pound USD H4 works great
And on the demo and on the real only pours something to change it sps maybe he looks in the history
extern double Init_line1 = 1.9620;
extern double Init_line2 = 1.9630;
extern double Init_line3 = 1.9640;
extern double Init_line4 = 1.9650;
extern int Step_line = 40;
extern double Lots = 1;
extern int ColUr = 2;
int i, j;
int a[4][4];//1-buy, 2-sell, 3-buystop, 4-sellstop
double minlot;
datetime LastWork;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
//********************************************************************
//verify whether there are open positions,
//presses numbers of open positions into array a[4][4].
bool Pred()
{
int NL; //which rows are in the array
for (i=0; i<=4; i++)
for (j=0; j<=4; j++)
a[i][j]=-1;//all in -1
for (i=0; i<OrdersTotal(); i++) //reverse all the orders
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)//select order if not possible
break;
if (OrderSymbol()==Symbol())//there are positions for this symbol
if (OrderComment()=="a1")//is there a mark?
NL=0;
else if (OrderComment()=="a2")//is our label?
NL=1;
else if (OrderComment()=="a3")//is our label?
NL=2;
else if (OrderComment()=="a4")//is our tag?
NL=3;
else
continue;//no? then continue search
//we have our orders, let's deal with them
if (OrderType()==OP_BUY)//if the position is BUY
a[NL][0]=OrderTicket();//remember its number
else if (OrderType()==OP_SELL)//if the position is on sell
a[NL][1]=OrderTicket();//remember its number
else if(OrderType()==OP_BUYSTOP)//if the position is pending buy
a[NL][2]=OrderTicket();//remember its number
else if (OrderType()==OP_SELLSTOP)//if the position is pending sell
a[NL][3]=OrderTicket();//remember its number
}//end of the loop
}
//********************************************************************
//Example:
//control level 1.9420, current price 1.9277 or 1.9537 find near bottom level
//а)|1.9420-1.9277|*10000/40=3.575
//3.575-3=0.575; 0.575*40=23; 1.9277-0.0023=1.9255 closest top level
//б)|1.9420-1.9537|*10000/40=2.925
// 2.925-2=0.925; 0.925*40=37; 1.9537-0.0037=1.9500 Nearest low level
int init()
{
LastWork = -1;
}
//********************************************************************
int deinit()
{
return(0);
}
//********************************************************************
int start()
{
if (CurTime() - LastWork < 5)
return(0); // no more than once every 5 seconds
LastWork = CurTime();
Pred();//all collected
Comment("a[1][1]=",a[0][0]," a[0][2]=",a[0][1]," a[1][3]=",a[0][2]," a[1][4]=",a[0][3],"\n",
"a[2][1]=",a[1][0], "a[2][2]=",a[1][1], "a[2][3]=",a[1][2], "a[2][4]=",a[1][3],"\n"
"a[3][1]=",a[2][0]," a[3][2]=",a[2][1], "a[3][3]=",a[2][2], "a[3][4]=",a[2][3],"\n"
"a[4][1]=",a[3][0]," a[4][2]=",a[3][1]," a[4][3]=",a[3][2]," a[4][4]=",a[3][3],"\n")
string coment;
double Init_line,qw,qw1,uo,w, sl, op;
for(i=0;i<ColUr;i++)//run the array a[4][4]
{
//needed further
coment=";
if (i==0)
{
coment="a1";
Init_line=Init_line1;
}
else if(i==1)
{
coment="a2";
Init_line=Init_line2;
}
else if(i==2)
{
coment="a3";
Init_line=Init_line3;
}
else if(i==3)
{
coment="a4";
Init_line=Init_line4;
}
//seek the nearest level
w=(MathAbs(Bid-Init_line)*1/Point)/Step_line;//coefficient
if (Bid>=Init_line)
qw=Step_line*(w-MathFloor(w));//number of points down to the nearest level
else
qw=Step_line-Step_line*(w-MathFloor(w));//number of points down to the nearest level
qw1=Step_line-qw;//number of points up to the nearest level
// Comment("Line1 ",Init_line," w=",((Bid-Init_line)*1/Point)/Step_line," qw=",qw," NewLine",Bid-(qw)*Point);
if ((a[i][0]==-1)&&(a[i][1]==-1)&&(a[i][2]==-1)&&(a[i][3]==-1))//нету открытых
{
//place orders
if (qw+4>=15)// we can place a wait for sell
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw)*Point,0,Bid-Point*(qw-2*Step_line),0,0,CLR_NONE);
else //set the next level down
OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-Point*(qw+Step_line),0,Bid-Point*(qw+Step_line-2*Step_line),0,coment,0,0,CLR_NONE);
if (qw1>=15)//can put a wait for Buy
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4)*Point,0,Ask+Point*(qw1-4-2*Step_line),0,coment,0,0,CLR_NONE);
else// put it to the next level up
OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+Point*(qw1-4+Step_line),0,Ask+Point*(qw1-4+Step_line-2*Step_line),0,coment,0,0,CLR_NONE);
}
//!!!!!!!!!!!!!
else if (a[i][0]!=-1)// worth buy
{//open buy
OrderSelect(a[i][0],SELECT_BY_TICKET, MODE_TRADES);//select open order
uo=OrderOpenPrice();//its open price - level
op=uo;
if (uo<(Ask-(qw-4)*Point))//open price is lower than the current low
//check SL open, if necessary modify
if (OrderStopLoss()<(Ask-Point*(qw+4+2*Step_line))//SL is lower than 2 levels down from the current price
OrderModify(a[i][0],NULL,Ask-Point*(qw+4+2*Step_line),NULL,NULL,CLR_NONE);
sl=OrderStopLoss();
//decide on the pending
if (a[i][3]!=-1)//stands sellstop
{
OrderSelect(a[i][3],SELECT_BY_TICKET, MODE_TRADES);//position on pending
uo=OrderOpenPrice();//open price - level
if(uo!=sl)//(Bid-Point*(qw+2*Step_line)))//the open level is equal to the BUY stop
OrderModify(a[i][3],sl, sl+Point*(2*Step_line),NULL,NULL,CLR_NONE)
// OrderModify(a[i][3],Bid-Point*(qw-2*Step_line),Bid+qw*Point,NULL,NULL,NULL);
}
else if (a[i][3]==-1)//turn to buy has been opened, sellstop should be set
OrderSend(Symbol(), OP_SELLSTOP, Lots, sl,0,sl+Point*(2*Step_line),NULL,coment,0,0,CLR_NONE);
// OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-(qw+2*Step_line)*Point,0,Bid-Point*(qw),NULL,coment,0,0,0);
}
//!!!!!!!!!!!!!
else if (a[i][1]!=-1)//stand sell
{
OrderSelect(a[i][1],SELECT_BY_TICKET, MODE_TRADES);//select the open order
uo=OrderOpenPrice();//open price - level
op=uo;
if (uo>(Bid+(qw1)*Point))//open price is higher than the current top level
//check SL open, if necessary modify
if (OrderStopLoss()>(Bid+Point*(qw1+2*Step_line)))//SL is higher than 2 levels up from the current price
OrderModify(a[i][1],NULL,Bid+Point*(qw1+2*Step_line),NULL,NULL,CLR_NONE);
sl=OrderStopLoss();
//take a deferral
if (a[i][2]!=-1)// costs buystop
{
OrderSelect(a[i][2],SELECT_BY_TICKET, MODE_TRADES);//position on pending
uo=OrderOpenPrice();//open price - level
if (uo!=sl)//the open level is equal to the SELL stop
OrderModify(a[i][2],sl,sl-(2*Step_line)*Point,NULL,NULL,CLR_NONE);
// OrderModify(a[i][2],Ask+Point*(qw1-4+2*Step_line), Ask+(qw1-4)*Point,NULL,NULL,NULL);
}
else if (a[i][2]==-1)//turn to sell has been opened, we have to set buystop
OrderSend(Symbol(), OP_BUYSTOP, Lots, sl,0,sl-Point*(2*Step_line),NULL,0,0,CLR_NONE);
//OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+(qw1-4+2*Step_line)*Point,0,Ask+Point*(qw1-4),NULL,coment,0,0,0);
}
}
return (0);
}
Dear gentlemen programmers! I would like to ask for help in writing an EA. I do not speak MQL yet. If my EA is profitable, I am ready to share my profits with the person who has written it, or describe your conditions. I think it should be profitable.
About "share the prize" - that's worthy)
But it's more interesting to "describe the terms".
My terms: I'll write for the money now, I don't pretend to profit.
Contacts in the profile
Dear visitors to this site. A very simple Expert Advisor needs to be written. I have a suggestion. I give you a condition, you give me the Expert Advisor. You will also be able to use my simple strategy. I would appreciate if you could explain how to change the order volume in the EA, when this is needed. I will give the terms during personal correspondence or ICQ 300333834 or mail forexbmf@yandex.ru Andrew.
If you want to trade on it for free (preferably real or demo 1-2 months).
Otherwise, here https://www.mql5.com/ru/job
Однако выслушав условие вы поймёте, что действительно имеет смысл такая торговля.
october, you have no idea how many people before you have said pretty much the same words and bummed themselves out.
Dear site visitors. A very simple EA needs to be written.
See the online EA Wizard: http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
Russian language support available