пробую писать советника не поможете немного с кодом?

 

требуеться код на открытие позицию на новом баре с фильтром в пп (допустим индикатор показывает бай .на след баре открываем позицию бай с фильторм в 10пп..наоборот если селл.) Заранее спасибо

 
Сначала нужно объявить пользовательские пременные, которые понадобятся в дальнейшей работе. Затем по заранее составленному алгоритму пишем код советника. Как правило он состоит из следующих частей:
 - блок формирования/отслеживания торговых сигналов
 - блок открытия ордеров при наличии сигнала
 - блок сопровождения открытых ордеров
 - блок принудительного закрытия позиций (в случае надобности)

За открытие ордеров отвечает функция OrderSend()
Вы бы выложили свой код - так было бы проще.
 

Спасибо за расширенный ответ но OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, 0, Blue);//покупаем,или,OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, 0, Blue);//продаём
я это знаю....положим что новый бар ценой открытия подтвердил наличие сделки мне нужен кусок кода который на текущем баре откроет позицию с фильтром в 10пп . Заранее спасибо тем кто может помочь..

 
Ок. Что такое "фильтр в 10 пунктов"? Или вообще, что в Вашем понимании такое "Фильтр в икс пунктов"?
 
drknn писал(а) >>
Ок. Что такое "фильтр в 10 пунктов"? Или вообще, что в Вашем понимании такое "Фильтр в икс пунктов"?


сорри забыл добавить...фильтр в 10пп от чены открытия..

 
Хорошо - поставим вопрос иначе. Есть цена открытия свечи. Есть движение цены = 10 пунктам вверх от открытия и вниз от открытия. Итого имеем коридор = 20 пунктам. Как советник должен себя вести в этом ценовом коридоре и как должен действовать, если цена преодолеет верхнюю границу коридора? А нижнюю?
 
drknn >>:
Хорошо - поставим вопрос иначе. Есть цена открытия свечи. Есть движение цены = 10 пунктам вверх от открытия и вниз от открытия. Итого имеем коридор = 20 пунктам. Как советник должен себя вести в этом ценовом коридоре и как должен действовать, если цена преодолеет верхнюю границу коридора? А нижнюю?

я кунечно, дико извиняюсь...

Но если люди ушли.. можно к своему топику вернутся? и резюмировать.

а то -> сгинет бесславно.

А тема правильная (как по мне) была.

-----

в ценовом коридоре...

;)

 

открываем ордер бай при цене опен бар +10 пп .селл при опенбар - 10пп

 
kaas2968 >>:

открываем ордер бай при цене опен бар +10 пп .селл при опенбар - 10пп


Ни проще ли поставить на стенки этого коридора отложенные ордера?
 
avatara >>:

я кунечно, дико извиняюсь...

Но если люди ушли.. можно к своему топику вернутся? и резюмировать.

а то -> сгинет бесславно.

А тема правильная (как по мне) была.


Не понял о чём речь. О средней стоимости советника?
 
Вобщем, я понял в чём сложность - в определении точки возникновения нового бара.

extern int MAGIC=456892154687;// у ордеров, открытых вручную MAGIC равен нулю

int OldBars=0,TicketBuy,TicketSell;
double MyBid,MyAsk;
string SMB;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init(){
 OldBars=Bars;
 SMB=Symbol();
 return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit(){

   return(0);
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){
  
  if(OldBars<Bars){//пришёл новый бар, запоминаем цену его открытия
    OldBars=Bars;
    MyBid=Bid;
    MyAsk=Ask;
  }
  if(SchBuy(MAGIC)==0){// лонгов в рынке нет
    if(Ask-MyAsk>=10*Point){// цена прошла 10 пунктов вверх
      TicketBuy=OrderSend(/*тут вписываем параметры открытия Бай-ордера*/);
    }
  }
  if(SchSell(MAGIC)==0){// шортов в рынке нет
    if(MyBid-Bid>=10*Point){// цена прошла 10 пунктов вниз
      TicketSell=OrderSend(/*тут вписываем параметры открытия Селл-ордера*/);
    }
  }

  return(0);
}

// ================ Пользовательские подпрограммы =======================

// =================================================================================================
// ************************* Счётчики ордеров ******************************************************
// =================================================================================================

//=========== SchBuy()  ===============================
//  Функция возвращает количество Buy-ордеров
//   SchBuy      - счётчик Buy ордеров
//-----------------------------------------------------------
int SchBuy(int MAGIC){
  string NameFunction="SchBuy()";
        string SMB=Symbol();
  int SchBuy=0;
  int i;
  for (i=OrdersTotal()-1;i>=0;i--) {
    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
                        //WriteError(i);
                        Print(" ============== ",NameFunction," ============== ");
                }
    else {
      if(OrderSymbol()!= SMB || OrderMagicNumber()!= MAGIC){ continue;}
      if(OrderType()==OP_BUY){ 
        SchBuy++;
      }  
    }
  }
  return(SchBuy);
}                  
//==================================================================================================


//=========== SchSell()  ===============================
//  Функция возвращает количество Sell-ордеров
//  SchSell  - счётчик Sell ордеров
//-----------------------------------------------------------
int SchSell(int MAGIC){
  string NameFunction="SchSell()";
        string SMB=Symbol();
  int SchSell=0;
  int i;
  for (i=OrdersTotal()-1;i>=0;i--){
    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
                        //WriteError(i);
                        Print(" ============== ",NameFunction," ============== ");
                }
    else {
      if(OrderSymbol()!=SMB || OrderMagicNumber()!=MAGIC){ continue;} 
      if(OrderType()==OP_SELL){
        SchSell++;
      }
    }
  }
 return(SchSell);     
}                  
//==================================================================================================
//+------------------------------------------------------------------+
Причина обращения: