пересечение не так описывается, нужно сравнивать значения индикаторов на первом баре, а затем на нулевом, к примеру
double per_0=iMA(NULL,0,14,-15,MODE_SMMA,0,0); double per1_0=iMA(NULL,0,24,0,MODE_SMMA,0,0); double per_1=iMA(NULL,0,14,-15,MODE_SMMA,0,1); double per1_1=iMA(NULL,0,24,0,MODE_SMMA,0,1); if(per_1<per1_1 && per_0>per1_0) { ......... }
А почему кстати нельзя просто приравнять переменные? При пересечении ведь индикаторы равны..
Aristotel писал(а) >>
А почему кстати нельзя просто приравнять переменные? При пересечении ведь индикаторы равны..
А почему кстати нельзя просто приравнять переменные? При пересечении ведь индикаторы равны..
Что бы исключить касание, касание ведь не есть пересечение? Правда?
____
А я вот хотел спросить у советчиков, а как Вы вообще смотрите пересечение машки со сдвигом -15 баров на 1 или 2 баре?
а как угадать где она пересечется? Если сдвиг на 15 баров она может пересечся и на 14 и на 16 (в зависимости от волантильности)
Я не прав?
Вопрос в том что стоит знак минус, это означает что они никогда не пересекутся.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот требуется написать (точнее подсказать) как поправить код советника.
Нужно чтоб открывались два противоположных отложеных ордера при пересечении двух МА с разными параметрами.
вот...........
так ли я сделал?
double per=iMA(NULL,0,14,-15,MODE_SMMA,0,0);
double per1=iMA(NULL,0,24,0,MODE_SMMA,0,0);
if(OrdersTotal()==0)
{
if(per==per1)
{
ticket1=OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-Uroven*Point,10,Bid-Uroven*Point+(StopLose+spred)*Point,Bid-Uroven*Point-(TakeProfit+spred)*Point,"My order #",0,0,Red);
if(ticket1<0)Print("OrderSend селлстоп. ошибка #",GetLastError());
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Uroven*Point,10,Ask+Uroven*Point-(StopLose+spred)*Point,Ask+Uroven*Point+(TakeProfit+spred)*Point,"My order #",0,0,Green);
if(ticket<0) Print("OrderSend байстоп.ошибка #",GetLastError());
}
}