Помогите!! Не могу закрыть ордер . - страница 2

 
rid >>:


Простите пожалуйста, но что значит выражение  "int ExpertBars;//- это вставить в глобальные переменные"  


 

все-таки почитайте учебник, там все хорошо описано..

глобальные переменные объявляются перед всеми функциями/процедурами в начале кода

 

Вот  Примерная  заготовка  кода эксперта для работы по Ценам открытия-  

#property copyright "Copyright © 2009"
#property link        "http://www.юююююю ru/"

//Внешние параметры
extern int     Magic          =  112233;
extern int     Period_MA_1     =  8;
extern int     Period_MA_2     =  45;
extern int     SL              =  100;
extern int     TP              =  55;
extern double  Lots            = 0.1;
extern int     ma_shift        =  0;

//глобальные переменные эксперта
int     Slippage=3;
int     ticket;
static int prevtime = 0;
//-- Подключаемые модули --
#include <stdlib.mqh>
//-----------------------------

int start()
  {
 if(Time[0] == prevtime) //ждем появления нового бара
 return(0); prevtime = Time[0];//если появился новый бар, работаем -

//----задаем переменные-------------------------------------------
double MA_11=iMA(NULL,0,Period_MA_1,ma_shift,MODE_SMMA,PRICE_CLOSE,1);//1 МА на 1 баре
double MA_12=iMA(NULL,0,Period_MA_1,ma_shift,MODE_SMMA,PRICE_CLOSE,2);//1 МА на 2 баре
double MA_2=iMA(NULL,0,Period_MA_2,ma_shift,MODE_SMMA,PRICE_CLOSE,1);//2-я МА на 1 баре

//---------проверяем условие на покупку----------------------------
if (!ExpertOrder( Magic )){ //если  нет открытых  позиций 
 if (MA_12 <= MA_2 && MA_11 >MA_2)//если быстрая ма пересекаем медленную снизу
   { //покупаем
  ticket=OrderSend(Symbol(),0,Lots,Ask,Slippage,Bid-SL*Point,Ask+TP*Point,
                                               "хи-хи",Magic,0,CLR_NONE);
 if(ticket < 0)  { Sleep(10000); prevtime = Time[1]; }              
   }}

//--------проверяем условие на продажу------------------------------
if (!ExpertOrder(Magic) ) {//если  нет открытых  позиций 
 if (MA_12 >= MA_2 && MA_11 < MA_2)//если быстрая ма пересек. медленную сверху 
   { //продаем
 ticket=OrderSend(Symbol(),1,Lots,Bid,Slippage,Bid+SL*Point,Bid-TP*Point,
                                              "хи-хи",Magic,0,CLR_NONE);
  if(ticket < 0)  { Sleep(10000); prevtime = Time[1]; }
  }}
//--------------------------------------------------------------------
  return(0);
      }//конец функции СТАРТ
      
 //---- Функция проверки наличия ордеров эксперта ---------------------+
bool ExpertOrder (int VersionID){
bool result=false;
int  _OrdersTotal=OrdersTotal();
if (_OrdersTotal>0) {
    for (int v=0; v<_OrdersTotal; v++) {    
      if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES)) {
        if (OrderMagicNumber()==VersionID) 
           { result=true;  break; }//есть ордер
        else   { result=false; } } } }
else { result=false; } return(result);}
//----------------------------------------------------------------------+    
 
rid >>:

    

Вот  Примерная  заготовка  кода эксперта для работы по Ценам открытия-  


Спасибо, кое что начинаю понимать, а а как зарыть этот ордер, тут же вроде только открытие???

 

А закроются позиции по тейкпрофиту или (увы...) по стоплоссу.

А чтобы позиции закрыть ПРИНУДИТЕЛЬНО, надо набрать тему в поиске и посмотреть. Как это делается.

Например, вот здесь - 

Закрытие позиций. По сигналу индикатора.

Причина обращения: