[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 756

 
ToLik_SRGV:

Илья, сейчас гляну, только вот не совсем понял, зачем массивы имеют тип string?

это пока рабочий вариант :)

в действительности, я бы хотел уточнить:

есть ли в mql подобие "структуры", как в Си.

в данный массив мне нужно запоминать данные разных типов - и дату+время образования экстремума, и значение самого экстремума...

Соответственно, хотел уточнить - есть ли стандартная функция преобразования строки в дату+время... или как эту ситуацию можно обойти?

 

возмите этот ЗЗ и не мучайтесь

Файлы:
zigzag2_r_.mq4  10 kb
 
Morzh09:

Прошу прощения, что повторяюсь, но очень бы хотелось разобраться...


Вот что сразу бросилось в глаза, у вас массив Number_of_extremum[] нигде не инициализирован, соответственно в нем нет ячеек для хранения данных, а вы пытаетесь в него записать min/max (по этому естественно всегда в итоге 0), предлагаю такой вариант, динамически изменять размер массива в зависимости от переменной К:

        
   }
   
//====================================================  

   ArrayResize(Number_of_extremum, k);
   
   for (int u=0;u<k;u++)//
   {
      if (StrToDouble(TimeSave1[u+1][1])<=StrToDouble(TimeSave1[u][1]))
      {
         Number_of_extremum[u]=1;// значит под номером u - нашли min
      }
      else
      if (StrToDouble(TimeSave1[u+1][1])>=StrToDouble(TimeSave1[u][1]))
      {
         Number_of_extremum[u]=2;// значит под номером u - нашли max
      }
   }
   
//====================================================   

Вроде начинает работать, хотя по мойму где то в логике все таки есть баг, иногда номера начинают идти не по очереди, а разве может быть два подряд максимума?

 
ToLik_SRGV:

А чего вы в итоге хотели добится?

Если я правильно подсчитал:
1000*60*(240+1)*1000 = 14 460 000 секунд.

Вы хотите чтобы тестер останавливался на каждом тике на 167 дней ?

Про приостановку процессов, я уже говорил несколько страниц назад.

Спасибо, примерно понятно - Sleep в тестере не работает. Такую невозможно большую задержку я поставил чтобы проверить работает ли sleep вообще.
 

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

спасибо

 
Swetten:

А какое максимальное количество окон в МТ4?

Мне надо было открыть 3х19 окон, а он на 54 (вроде) подвис и всё.

Т.е. окно рисуется, но в нём скриншот предыдущих (которые на заднем плане) окон.

И всё.

Такое бывает, когда видео-памяти не хватает...
 

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

Буду очень благодарен за ответ

 

Коллеги! Подскажите, есть ли такой индикатор, состоящий из трех параллельных горизонтальных линий, то есть, своеобразный канал. Например, берём обычную горизонтальную линию, ставим её на какой-либо уровень, и уже от данной линии через определенное (заданное) количество пунктов идет прорисовка остальных, параллельных ей линий. Заранее благодарю.

 

Советник в тестере за выбранный период открывает 5 ордеров.

Если в строке OrderSend(Symbol(),OP_BUY, Lots,Ask,3,Ask-10*Point,0,"", 0,0,Blue); заменить 10 на 15, то из 5-ти ордеров будет открыты 4, а если вместо 10 поставить 20, то откроются только 3. Причем

пропускаются только убыточные ордера, которые закрываются по Стоплосс. Никаких сообщений об ошибке не выдается. В чем может быть причина, подскажите пожалуйста?

Причем, такое ощущение, что он даже не попадает в эту ветку.

if (OrdersTotal()!=0) {
   if (OrderType()==OP_BUY && stochMain0<stochSIGNAL0) CLOSEORDER("Buy");     
   if (OrderType()==OP_SELL && stochMain0>stochSIGNAL0) CLOSEORDER("Sell");  
}
else {
   double MA0 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,0);   
   double MA1 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,Shift);   
   double MA2 = iMA(NULL,timeframe,Period_MA,0,MODE_SMA, PRICE_OPEN,Shift*2); 
   if (MA0>MA1-razn1 && MA1>MA2-razn1 && MA0<Ask)    
      if(stochMain0>stochSIGNAL0 && stochMain_1>stochSIGNAL_1 && stochMain_4<stochSIGNAL_4) {
         //OPENORDER ("Buy");
         OrderSend(Symbol(),OP_BUY, Lots,Ask,3,Ask-10*Point,0,"", 0,0,Blue);
      }
   else if (MA0+razn1<MA1 && MA1+razn1<MA2 && MA0>Bid)     
      if(stochMain0<stochSIGNAL0 && stochMain_1<stochSIGNAL_1 && stochMain_4>stochSIGNAL_4)  //   
         {OPENORDER ("Sell");  }
}     
Файлы:
stoch_1.mq4  7 kb
 
profitinvesting:

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

Буду очень благодарен за ответ

Вам нужен профит общий - всех открытых позиций или на каждую ставить свой стоп при достижении 20 пп прибыли?
Причина обращения: