помогите новичку - страница 2

 
NewTraderForex писал(а) >>

еще вопрос

MA1_0=iMA(NULL,0, 21, 0, MODE_SMA, PRICE_CLOSE, 0);

при каждом поступающем тике я получаю по этой операции значение средней для данного тика

как мне узнать значение средней за прошлый час?

Вам нужно разобраться с технологией индексирования баров.

Например, для часового ТФ это будет значение на баре с индексом 1. А на М30 - это знаение на одном из баров 1,2,3 - зависит от текущего времени и времени бара, на котором интересующее значение. Прошлый час в М30 представлен двумя барами. Час в М1 представлен 60-ю барами.

Для начала посмотрите здесь https://book.mql4.com/ru/samples/indicators и здесь https://book.mql4.com/ru/samples/icustom.

 

Ну вот хоть ты тресни!

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


Ну не получается элементарная операция.! Нужно, чтобы он открывал на пересечении МАшек сделки и закрывал их на обратном пересечении. Пока написал только часть кода для продажных сделок, для покупки уж спотом соображу, но посмотрите пожалуйста, что неправильно делаю? При тесте открывает на первом пересечении МАшек 4 сделки(как и планируется) и не закрывает их до конца теста.

Тестирую на промежутке с 1 января по сегодня, на пареевро-доллар. Так как за это время курс упал, то и показывает прибыль с этих четырёх сделок.


На команду закрытия не реагирует

extern double lot=0.01;// размер лота
extern double maxord=3;//максимальное количество сделок
extern double per1=3;// период МА
extern double per2=15;// период МА

//--------------------------------------------------------------------
int start()                        
  {int total=OrdersTotal();
 
   double MA1; // короткая МА-шка
   double MA2; // длинная МА-шка
                             
   MA1=iMA(NULL,0,per1,0,MODE_SMA,PRICE_MEDIAN,0); // МАшки вычисляет. 
    MA2=iMA(NULL,0,per2,0,MODE_SMA,PRICE_MEDIAN,0);
//--------------------------------------------------------------------

 
 if(total>maxord) return;//максимальное количество ордеров можно регулировать во входных
       int ticket;
if (MA1<MA2){ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0);}//проверяет - если короткая МАшка ниже длинной - начинаем продавать.

else {OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);OrderClose(ticket,lot,Ask,3,Violet);}// если длинная выше короткой - закрываем ордер.


  return;}

и такую же ошибку говорит - 4051.


А вот здесь я погорячился. Ошибку он не выдаёт, просто не замечает команду на закрытие сделок.

 

ну что? никто не подскажет?

я тут помалу разбираюсь, двигаю строчку то вверх, то вниз, не пойму - где она должна стоять: если в начале, то он после открытия определённого количества сделок не пропускает программу к закрытию ордеров. Если в конце - то ордера закрывает, но ошибки сыплет, типа, неопознанный номер ордера, ошибка 4051

if(total>maxord) return;
 
Товарищи трейдеры помогите пожалуста бедалаги.Проблема в том что я нимогу воспользаватся СОВЕТНИКОМ,тоисть инструкции следовал прекрипил к графику,справа верху ресунок улыбаются но на графике зделки бай сел неотображаются,может я чот неправильно делаю?Заципил фаил чтобы вы посмотрели что нефига невыходит.ПОМОГИТЕ)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
Причина обращения: