// Step изначально задан в пунктах
op=MathMax(OrderOpenPrice()+Step*Point,Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point);
op=NormalizeDouble(op,Digits)
Можно ли в эту строчку по Close поставить условие по индюку, что бы он закрывал ордера допустим по
куда ее лучше вставить если это возможно, если да то правильно ли то что внизу?....
--
//----------------------------------------------------------------------for(int v=0; v<OrdersTotal(); v++){ //задаем перебор ордеров
if(OrderSelect(v, SELECT_BY_POS, MODE_TRADES)){//выбираем из откр. поз
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
//если символ соответствует графику
// и магик соответствует заданному
//----------------------------------------------------- if(OrderType()==OP_BUY){ //если это - позиция БАЙ
if( MA>Bid){OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);// закрываем позицию
// return(0);// выходим}}//--------------------------------------------------------if(OrderType()==OP_SELL){ //если это позиция СЕЛЛ
if(MA<Bid){OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);// закрываем позицию
// return(0);// выходим}}//------------------------------------------------------- }// Symbol() }// select}//total
//----------------------------------------------------------------------for(int v=0; v<OrdersTotal(); v++){//задаем перебор ордеров if(OrderSelect(v, SELECT_BY_POS, MODE_TRADES)){//выбираем из откр. поз if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){//если символ соответствует графику // и магик соответствует заданному //----------------------------------------------------- if(OrderType()==OP_BUY){//если это - позиция БАЙif( MA>Bid){OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);// закрываем позицию// return(0); // выходим}}//--------------------------------------------------------if(OrderType()==OP_SELL){//если это позиция СЕЛЛif(MA<Bid){OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);// закрываем позицию// return(0); // выходим}}//------------------------------------------------------- }// Symbol() }// select}//total
1) А как сделать ее отключаемой, через внешние переменные?
2) Можно там задать так, что бы закрывался по ОrderClose первый открытый ордер, а последующие ордера 2, 3 итд не закрывались? Допустим открыл ордер Бай - это первый ордер, далее открываю еще один ордер бай - второй ордер, итд., и вот из этой серии ордеров закрывался бы только 1-й ордер по ОrderClose ?
хочу чтоб эксперт у меня работал только по понедельникам. открывал только 1 ордер в понедельник если его закрыл то отключился до следуещего понедельника
у меня открылся новый бар в 9.00 в понедельник.
как определить цену открытия и запомнить в переменную? подскажите кому не лень
например так для байстоп:
Можно ли в эту строчку по Close поставить условие по индюку, что бы он закрывал ордера допустим по
MA>Bidкуда ее лучше вставить если это возможно, если да то правильно ли то что внизу?....
Как найти максимум/минимум предыдущего дня?
что тут не правильно подскажите
//+------------------------------------------------------------------+
//| RSI+MA.mq4 |
//| Evgenio |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Evgenio"
#property link "http://www.metaquotes.net"
#property indicator_separate_window
#property indicator_minimum 20
#property indicator_maximum 80
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 MediumOrchid
//---- input parameters
extern int per_rsi=6;
extern int per_ma=24;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}
int start()
{
int d;
int counted_bars=IndicatorCounted();
//----
for (d=0; d==Bars-counted_bars-1; d++)
{
double ExtMapBuffer1[d]=iRSI(Symbol(),PERIOD_H1,per_rsi,PRICE_CLOSE,0);
}
for (d=0; d==Bars-counted_bars-1; d++)
{
double ExtMapBuffer2[d]=iMAOnArray(ExtMapBuffer1,0,per_ma,0,MODE_EMA,0);
}
//----
return(0);
}
//+------------------------------------------------------------------+
вот лог компилятора не нравятся индексы и скобки посему ???
'd' - integer number expected C:\Program Files\MetaTrader - Alpari\experts\indicators\RSI+MA.mq4 (42, 25)
']' - comma or semicolon expected C:\Program Files\MetaTrader - Alpari\experts\indicators\RSI+MA.mq4 (42, 26)
'd' - integer number expected C:\Program Files\MetaTrader - Alpari\experts\indicators\RSI+MA.mq4 (46, 25)
']' - comma or semicolon expected C:\Program Files\MetaTrader - Alpari\experts\indicators\RSI+MA.mq4 (46, 26)
уже нашел ошибку спасибо за внимание
Можно ли в эту строчку по Close поставить условие по индюку, что бы он закрывал ордера допустим по
куда ее лучше вставить если это возможно, если да то правильно ли то что внизу?....
--
--
rid! Спасибо, за помощь)
--
1) А как сделать ее отключаемой, через внешние переменные?
2) Можно там задать так, что бы закрывался по ОrderClose первый открытый ордер, а последующие ордера 2, 3 итд не закрывались? Допустим открыл ордер Бай - это первый ордер, далее открываю еще один ордер бай - второй ордер, итд., и вот из этой серии ордеров закрывался бы только 1-й ордер по ОrderClose ?
привет, всем )))
Помогите.
mql4 только начал програмировать.
пишу эксперта..возник такой вопросик
как сделать так.
хочу чтоб эксперт у меня работал только по понедельникам. открывал только 1 ордер в понедельник если его закрыл то отключился до следуещего понедельника
у меня открылся новый бар в 9.00 в понедельник.
как определить цену открытия и запомнить в переменную? подскажите кому не лень