[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 464

 

Коллеги помогите !!! очень нужен индикатор АМА который штатный в МТ5, но только для МТ4 ПОЖАЛУЙСТА!!!

 
Здравствуйте! Подскажите пожалуйста. Хочу добавить индикатор ZigZag в советник. Как мне сравнить цены пиков 0, 1 и 2.
 
// в модуле extern int ExtDepth = 12; extern int ExtDeviation = 5; extern int ExtBackstep = 3; extern int ShiftBars = 2; // в функции double y3=0, y2=0, y1=0, zz; // экстремумы Зиг-Зага int x3, x2, x1, sh=ShiftBars;// номера баров // Берём три экстремума Зиг-Зага while (y3==0) { zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh); if (zz!=0 && zz!=EMPTY_VALUE) { if (y1==0) { x1=sh; y1=zz; } else if (y2==0) { x2=sh; y2=zz; } else if (y3==0) { x3=sh; y3=zz; } } sh++; }
спасиба KimIV'у
 

как такое может быть:

покупаю по рынку,

Ask:1.05310000, Bid:1.05280000, price:1.05310000, sl:1.05251000, tp:0.00000000

выдает ошибку 130.

sl перед передачей нормализую.

MODE_STOPLEVEL==0

 
beruk:
спасиба KimIV'у
Спасибо.
 

Почему... демо счет:

Утро: Анализ рынка..новости на сегодня,уровни...стакан оанды и других % открытых сделок, никаких индикаторов.. входим в сделки..по многим парам,с большими СЛ и ТП, ТП больше сл раза в 2,устанавливаются по уровням поддержки и сопротивления,....ухожу от монитора до вечера.

Вечер: в прибыли около 55 -60% сделок, эквити в прибыли.. закрываю практически все... некоторые оставляю и усредняю по уровням...

Почему... реал счет:Делаю УТРО - после которого такого вечера как на демо нету.....ухожу на час на два... как увижу прибыль закрываю.. потом жестоко усредняю.... потом как в запое .. жду закрытия серии усреднения.. хотя прибыль на демо больше в процентах от депо...даже без усреднения..

Понимаю что психологический фактор мне мешает...жадность.. страх даже 300 р потерять.. Что делать?... забыть что реал счет?..

 
demlin:
Эксперт торгует несколькими инструментами одновременно
///// Есть некий массив торгуемых инстурментов
string symbolfotrade[] = {"EURUSD", .........}
///// Массив флагов
bool isTradedClosed[] = {false, .....}
bool isTradedOpen[]   = {false, .....}
//// Общая переменная
bool isAllTraded = false;
int  isTradedCount = 0;
start()
  {
   symbfotradeCount = ArraySize(symbolfotrade);
   вначале перебор закрытых ордеров. С конца в начало
   if (!isAllTraded)
     {
      
      Перебор массива торгуемых инструментов
        {
          if (isTradedClosed[i]) continue;


           Перебор закрытых ордеров  с конца в начало
             { 

              Если (символ равен symbolfotrade[i]) то {isTradedClosed[i] = true; isTradedCount++; break}
             {
        }
      Если isTradedCount==symbfotradeCount то  isAllTraded = true; ///// Чтобы не лазать по массивам
     }
   /// ОБнуляем
   ArrayInicialized(isTradedOpen, false);
   Потом перебор по открытым ордерам
     {
       Если (симвло равен symbolfotrade[i]) то isTradedOpen[i] = true;
     }   

   Все теперь если (isTradedOpen[i] = труе и isTradedClosed[i] = труе) то ордер открыт, при этом было закрытие по этому инструменту symbolfotrade[i] ранее.
  

   Только после остальные расчеты

   

  }
 
butthead:

... забыть что реал счет?..


вот и ответ
 
Помогите разобраться с кодом. Как описать правильно условие я не знаю.

Вот кусок советника.


total=OrdersTotal();

if(total<1)

{

while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}

while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);

}
}
}
}
Подскажите как это правильно оформить?
 
extralifes:

Помогите разобраться с кодом. Как описать правильно условие я не знаю.

Вот кусок советника.
Подскажите как это правильно оформить?

Для начала прочитать https://book.mql4.com/ru/operators/if

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