Any rookie question, so as not to clutter up the forum. Professionals, don't pass by. Nowhere without you - 6. - page 512
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
Close buy order at Bid price, sell at Ask price.
Simple condition in init function
Metals, stocks and raw materials don't count.
Thanks. Can you tell me the easiest way. Need to understand if there are open positions on this pair or not. Whether there are sell orders and whether there are buy orders. It means that we need to get
0 - if there are no open orders
1-I have sell orders but no buy orders.
2-there are buy orders but no sell orders
3-there are both...
https://docs.mql4.com/ru/series
if(DayOfWeek()==1,2..... && Hour()==1,2....)
{
double hi=iHigh(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//define high
double low=iLow(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//define low.
/////////////////////////////////////////////////////////////////////////////////////////////////
double op=iOpen(NULL,0,iBarShift(NULL,0,iTime(NULL,PERIOD_D1,0));//define opening.
Thank you!
Thanks. Can you tell me the easiest way. Need to understand if there are open positions on this pair or not. Whether there are sell orders and whether there are buy orders. It means that we need to get
0 - if there are no open orders
1-I have sell orders but no buy orders.
2-there are buy orders but no sell orders
3-there are both.
For example like this:
int i_buy=0;
int i_sell=0;
//--- получим количество открытых и отложенных ордеров
int total=OrdersTotal();
for(int i=0;i<total;i++)
{
//--- выберем i-й ордер из списка торговли
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
//--- если ордер открыт по текущему финансовому инструменту
if(OrderSymbol()==Symbol())
{
switch(OrderType())
{
//--- Бай ордер
case OP_BUY:
i_buy++;
break;
//--- Селл ордер
case OP_SELL:
i_sell++;
break;
case OP_BUYSTOP:
case OP_BUYLIMIT:
case OP_SELLSTOP:
case OP_SELLLIMIT:
//--- пробойники, лимитники
break;
}
}
}
}
if(i_buy==0 && i_sell==0)
{
//--- нет открытых ордеров
}
if(i_buy>0 && i_sell==0)
{
//--- открыты баи
}
if(i_buy==0 && i_sell>0)
{
//--- открыты селы
}
if(i_buy>0 && i_sell>0)
{
//--- открыты и баи и селы
}
For example, like this:
Thank you very much. My understanding is that asc is the current price. I open an order when there are no open orders. The loop goes from the first to the last open order? How can I transmit into a variable the lot of the last open order and its price?
Thank you very much. My understanding is that asc is the current price. I open an order when there are no open orders. The loop goes from the first to the last open order? How can I set the lot of the last open order and its price into a variable?
https://docs.mql4.com/ru/trading/orderselecthttps://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots
double z; //declare a variable "z".
double y; //declare the "y" variable
if(OrderSelect(10,SELECT_BY_POS)==true) //if the order (by ticket) is already selected
{
OrderLots()=z //assign the lot for this order to the "z" variable
OrderOpenPrice()=y //assign the open price to the "y" variable
}
try this
https://docs.mql4.com/ru/trading/orderselecthttps://docs.mql4.com/ru/trading/orderopenprice https://docs.mql4.com/ru/trading/orderlots
double z; //declare the "z" variable
double y; //declare the "y" variable
if(OrderSelect(10,SELECT_BY_POS)==true) //if the order (by ticket) is already selected
{
OrderLots()=z //assign the lot for this order to the "z" variable
OrderOpenPrice()=y //assign the open price to the "y" variable
}
try this
y = OrderOpenPrice();
Oops, got it, just don't understand. if((i_buy==0 && i_sell==0) || y > Step). Should open another order if distance from last open order is more than 5 pips. But it doesn't work, question.
for(int i=0;i<total;i++) It goes from the first order opened to the last? That is, I should eventually get the price of the last order opened.
y = OrderOpenPrice();
I don't understand if((i_buy==0 && i_sell==0) || y > Step). Should open another order if distance from last open order is more than 5 pips. But it doesn't work, question.
for(int i=0;i<total;i++) It goes from the first order opened to the last? In otherwords, i should get the price of the last order opened.
I don't know, I haven't come across it.
Hello. I saw a post on https://forum.mql4.com/ru/51490/page2 where there is a script that opens the EA settings window:
This one brings up the EA settings window:
Is it possible to make the script open the EA settings window at 1 second intervals and immediately confirm it (press ok button) and so on?
Am I doing it right.
y = OrderOpenPrice()-Ask;
I subtract the current price from the price of the last open order?
int i_buy=0; int i_sell=0;
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderSymbol()==Symbol()){
switch(OrderType()){// Есть ли открыте ордера
case OP_BUY:
i_buy++;
break;
case OP_SELL:
i_sell++;
break;
}
y = OrderOpenPrice()-Ask;
}
}
if((i_buy==0 && i_sell==0) || y > Step) //--- нет открытых ордеров, открываем или расстояние от последнего ордера до текущей цены. Больше step
OrderSend(Symbol(), OP_BUY,StartLot,Ask,Slippage,0,Ask+TakeProfit*Point(),WindowExpertName()+" "+(string)0,0,0,clrBlue);