Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 72

 
//+------------------------------------------------------------------+
//| shetchik_barov.mq4 |
//| Copyright © 2012, FOX.RM |
//| fox.rm@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, FOX.RM"
#property link "http://www.niochem.net"

extern int LimitBar = 10;

double col_bar;
datetime ctat_SB=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Dell();
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+

int start() {
Dell();
string name_1;
int limit, i=0;
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
if(ctat_SB==0) ctat_SB=Time[0];
if(limit>0) limit=0;
for(i=limit; i>=0; i--)
{
col_bar = iBarShift(NULL,0,ctat_SB)-iBarShift(NULL,0,Time[i]); //-- считаем кол-во баров
if(iBarShift(NULL,0,ctat_SB)-iBarShift(NULL,0,Time[i])>=LimitBar) //-- ограничение по заданному числу баров
{
ctat_SB=Time[i]; //--обнуляем счетчик
}
//---- вешаем на график
name_1 = "shetchik_barov";
SetText1(name_1,DoubleToStr(col_bar,0),Blue,14);
}
return(0);
}

//----
void Dell(string name_n = "shetchik_barov")
{
string vName;
for(int i=ObjectsTotal()-1; i>=0;i--)
{
vName = ObjectName(i);
if (StringFind(vName,name_n) !=-1) ObjectDelete(vName);
}
}
void SetText1(string name,string text, color c, int size)
{
ObjectCreate(name,OBJ_LABEL,0,0,0,0,0);
ObjectSet(name, OBJPROP_XDISTANCE, 1100);
ObjectSet(name, OBJPROP_YDISTANCE, 20);
ObjectSetText(name,text,8,"Arial Black",c);

}

вот пожалуйста плата одмину или дань незнаю зачем ему это

но прошууу помогите напишите мне несколько строк кода

условие при открыти нового бара вывести алерт новый бар

мне не нужно считать их ненужно умножать делить ненужен такой сложный код

 
sannin:

//--------------------------------------------------------------------
// newbar.mq4  
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------

bool New_Bar=false;                             // Флаг нового бара
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
   
//--------------------------------------------------------------------
   Fun_New_Bar();                               // Обращение к ф-ии
   if (New_Bar)                                 // Новый бар
      {
    //Ваши действия
      }
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------
void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time=0;                  // Время текущего бара
   New_Bar=false;                               // Нового бара нет
   if(New_Time!=Time[0])                        // Сравниваем время
     {
      New_Time=Time[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }
//--------------------------------------------------------------------
Читаем учебник.
 
r772ra:
Читаем учебник.


величайшее спасибо почести слава и благодарность

я чесно сидел искал целый день

 
if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());

подскажите пожалуста можно вот из этой строки как нибуть в нее добавит чтоб она закрывала ордера только с определенным магиком

 
sannin:
if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());

подскажите пожалуста можно вот из этой строки как нибуть в нее добавит чтоб она закрывала ордера только с определенным магиком

if (OrderType()==OP_BUYSTOP ) if (OrderMagicNumber()==MagicNumber ) OrderDelete(OrderTicket());
 
PapaYozh:


ТОЧНО МОГ БЫ САМ ДОГАДАТЬСЯ...

СПАСИБО ОГРОМНОЙЕ

 

ребята помогите надо код закрыть как это сделать ну пожалуйста

подскажите где инфу взять!!!!!

 
laveosa:

ребята помогите надо код закрыть как это сделать ну пожалуйста

подскажите где инфу взять!!!!!


Если вы написали код, то значит вы сможете самостоятельно поставить на него ограничения.
 
Добрый день. Как можно расчитать единый Stop Loss для серии ордеров с указанием точных magic номеров, чтобы эта серия ордеров могла закрыться в безубыток. Например, открыто 3 ордера: 1 Buy лот 1.3320 с magic 1, 1 Buy лот 1.3345 с magic 2 и 1 Buy лот 1.3360 с magic 3. Как расчитать для всех ордеров общий Stop Loss, чтобы при движении против цены ордера закрылись в безубыток?
 

Уважаемые Гуру! Столкнулся с проблемой зацикливания советника. Добавил в код переменную «t»,

static datetime t;


if (MA_1_t >= 1.00035)
      {
      Opn_B = true; 
      t=Time[0];
      }
if(MA_2_t >= 1.0002)
  {
    if(Time[0]>t)
      {                                      
      Cls_B=true;                 
      }
   }

для выхода из позиции после бара на котором открыта позиция. Теперь возникла проблема, выход осуществляется спустя два бара после сигнала. Подскажите в чем проблема?